GaussDB(DWS)安全测试之TLS协议
1. 协议安全机制
SSL/TLS协议是业界常用的加密通信协议,通过该协议可以完成通信双方身份认证,会话密钥协商,通信内容加密和完整性保护。SSL/TLS协议的算法套件包含4种算法:密钥交换、认证、加密、MAC算法。如TLS_DHE_RSA_WITH_AES_128_CBC_SHA256算法套件,DHE是密钥交换算法,RSA是认证算法,AES_128_CBC是对称加密算法,SHA256是做完整性保护的MAC算法。如果没有显示密钥交换算法和认证算法,那么这两者都是RSA算法,如:TLS _RSA_WITH_AES_128_CBC_SHA。如果套件中的有一种算法不安全,那么就应该禁用该算法套件。
SSL/TLS协议体系结构
SSL/TLS协议实现的安全机制包括:
- 密钥配送的安全性:利用密钥协商算法来保障密钥本身的安全性。
- 数据传输的机密性:利用对称密钥算法对传输的数据进行加密。
- 身份验证机制:基于证书利用数字签名方法对服务器和客户端进行身份验证,其中客户端的身份验证是可选的。
- 消息完整性验证:消息传输过程中使用MAC算法来检验消息的完整性。
上述四个部分构成了SSL/TLS加密套件。
例如TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,由协议名称TLS、密钥交换算法 KeyExchange(密钥协商)ECDHE、认证算法 Au (身份验证)RSA、对称加密算法 Enc (信息加密)AES_256_CBC和信息摘要 Mac(完整性校验)SHA384组成。
SSL/TLS协议组成
TLS/SSL的功能实现主要依赖于三类基本算法:非对称加密、对称加密和散列函数 Hash,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。
2. 测试关注点
- 协议版本
- SSL协议:SSL协议各版本均存在安全漏洞,因此禁止使用,包括0、2.0和3.0。
- TLS协议:禁止使用0、TLS1.1协议,荐使用TLS1.2或者TLS1.3。
- 密钥协商交换算法
在客户端和服务器开始交换TLS所保护的加密信息之前,他们必须安全地交换或协定加密密钥和加密数据时要使用的密码。DH/ECDH的密钥协商协议不能验证服务器或用户,易受中间人攻击因此不能使用,需要使用能提供前向保密能力的DHE/ECDHE算法,且禁止使用RSA作为密钥交换算法。
- 认证算法
目前主流的是RSA算法,需注意算法长度小于2048bits为不安全算法,推荐使用长度大于3072bits的安全算法。
- 加密算法
数据加密使用对称加密算法,常见的加密算法有 AES-CBC、3DES、AES-GCM等,注意使用安全的加密算法,对于已被认为不安全的算法应禁止使用。
分组加密场景,产品应优先选择GCM模式。TLS的算法套件的选择,是按照顺序从前到后逐个匹配的,需要把优选的套件放在前面,次选的放在后面。
- 完整性算法
为了避免网络中传输的数据被非法篡改,SSL/TLS利用基于MD5或SHA的MAC算法来保证消息的完整性。其中基于MD5的算法已被证明不安全,禁止使用,基于SHA的算法需使用安全的SHA3、SHA25或以上。
想了解GuassDB(DWS)更多信息,欢迎微信搜索“GaussDB DWS”关注微信公众号,和您分享最新最全的PB级数仓黑科技,后台还可获取众多学习资料哦~
- 点赞
- 收藏
- 关注作者
评论(0)