据我所知,TLS使用对称加密和非对称加密来工作。非对称方案是用来交换密钥的,但是什么时候和什么时候使用对称方案?
发布于 2018-11-08 15:15:12
发布于 2018-11-08 18:52:07
是的你是对的。非对称算法通常比对称算法慢。但是,对称算法需要共享密钥来加密和解密消息。因此,TLS允许客户端和服务器使用非对称机制交换共享密钥。如果没有非对称算法,共享秘密就不可能以安全的方式在双方之间进行交换。一旦双方都拥有共享密钥,客户端和服务器之间的所有后续通信都使用对称算法加密,比非对称算法快得多。
在非常高的级别上,建立TLS连接的步骤如下所示:
在这里,服务器和客户端之间的所有后续通信都将使用对称算法进行加密。
具体的算法将由服务器和客户端支持的密码套件来决定。在连接设置期间,要使用的密码套件由客户端首选项决定。
典型的密码套件名称如下所示:
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
这里
ECDHE密钥交换算法
ECDSA -用于密钥签名的数字签名算法
AES_128_GCM - 128位密钥分组密码和模式
ECDHE是椭圆曲线Diffie的缩写。椭圆变体(第一个E)用于性能,而临时变体(最后一个E)用于前向保密。前向保密意味着,如果攻击者继续记录TLS上的所有通信,并在稍后的某个时间点以某种方式获取私钥,他/她就无法解密过去记录的通信。
ECDSA用于验证共享秘密的完整性。ECDSA比其他认证算法(如HMAC )更弱,速度更慢。然而,它被用于共享密钥身份验证,因为它不需要验证者知道用于创建身份验证标记的秘密密钥。服务器可以很好地使用其私钥来验证消息的完整性。
AES_128_GCM -一旦双方(通常是浏览器和web服务器)共享公共密钥,就会使用对称分组密码算法加密双方之间的消息交换。在这种情况下,采用128位密钥的分组密码AES和GCM认证模式。
如果在浏览器中打开HTTPS网站,可以看到使用浏览器实用程序使用的密码套件。对于e,g,在Firefox中,您可以在Page Info的Security选项卡下看到详细信息,如下所示:

https://stackoverflow.com/questions/53210452
复制相似问题