据我所知,TLS既可以使用对称加密也可以使用非对称加密。 非对称方案用于交换密钥,但是什么时候使用什么对称方案?
答案 0 :(得分:1)
答案 1 :(得分:0)
是的,您是对的。非对称算法通常比对称算法慢。但是,对称算法需要共享的密钥来加密和解密消息。因此,TLS允许客户端和服务器使用非对称机制交换共享密钥。如果没有非对称算法,则无法以安全的方式在两方之间交换共享机密。一旦双方都拥有共享密钥,就使用对称算法对客户端和服务器之间的所有后续通信进行加密,该算法比非对称算法快得多。
在非常高的级别上,建立TLS连接的步骤如下:
此后,将使用对称算法对服务器与客户端之间的所有后续通信进行加密。
将使用哪种特定算法由服务器和客户端支持的密码套件确定。在建立连接期间,要使用的密码套件由客户端首选项确定。
典型的密码套件名称如下:
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
这里
ECDHE -密钥交换算法
ECDSA -用于对密钥进行签名的数字签名算法
AES_128_GCM -具有128位密钥的分组密码和模式
ECDHE 代表“椭圆曲线Diffie Hellman短暂”。椭圆变体(第一个E)用于表演,而暂时性变体(最后一个E)用于向前保密。前向保密性意味着,如果攻击者继续通过TLS记录所有通信,并且在以后的某个时间点以某种方式获得了私钥,则他/她将无法解密过去记录的通信。
ECDSA 用于认证(验证)共享机密。 ECDSA比其他认证算法(例如HMAC)更弱和更慢。但是它用于共享密钥身份验证,因为它不需要验证者知道用于创建身份验证标签的秘密密钥。服务器可以很好地使用其私钥来验证消息的完整性。
AES_128_GCM -一旦双方(通常是浏览器和Web服务器)之间共享了公共密钥,就使用对称块密码算法对双方之间的消息交换进行加密。在这种特定情况下,将使用具有128位密钥和GCM身份验证模式的分组密码AES。
如果在浏览器中打开HTTPS网站,则可以使用浏览器实用程序查看使用的密码套件。例如,在Firefox中,您可以在页面信息的“安全性”标签下看到详细信息,如下所示: