带你了解数仓安全测试的 TLS 协议
摘要:SSL/TLS 协议是业界常用的加密通信协议,通过该协议可以完成通信双方身份认证,会话密钥协商,通信内容加密和完整性保护。
本文分享自华为云社区《GaussDB(DWS)安全测试之TLS协议》,作者:ACBD 。
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 级数仓黑科技,后台还可获取众多学习资料哦~
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/4b75112d02636a274ba9eb0fc】。文章转载请联系作者。
评论