SSL/TLS 中的对称加密会话密钥

信息安全 密码学 加密 tls 虚拟专用网
2021-08-13 07:26:32

这个问题涉及 SSL/TLS 协议中使用的会话发送和接收密钥。我的理解是这个密钥使用对称加密(DES、AES、BlowFish 等)钥匙也是?

这是现有问题的扩展:PKI 的安全性、证书、证书颁发机构、前向保密

3个回答

3个原因(现在):

  1. 非对称加密比对称加密要慢得多,要慢得多。慢几个数量级。
  2. 给定相同的密钥长度,非对称比对称的、逐位的要弱得多。因此,您需要更大的密钥来提供等效保护。这也导致了 1 中提到的缓慢。
  3. (根据@ThomasPornin 的评论:)非对称加密带来了输出大小的增加。例如,如果您使用 RSA,加密数据至少比明文大 10%。另一方面,对称加密具有固定大小的开销,即使在加密千兆字节的数据时也是如此。

非对称加密算法的效率远低于对称算法。因此,基本上所有通过非对称密钥加密的使用都涉及加密对称会话密钥,实际消息是用它加密的。

除了 AviD 关于密钥长度的有用说明外,请注意,如果量子计算攻击变得可行,它们将使所有主流公钥算法(以及 SSL/TLS)失效。但即使受到量子计算机攻击,直接的 AES-256 仍将保持强大。请参阅 密钥大小 - 量子计算攻击的影响 - 维基百科然后问题将回到如何交换这些密钥并建立对它们的信任。

这是一种标准方法,称为混合密码系统对称密码学和非对称密码学各有优缺点。特别是:

  • 非对称加密允许任何人加密只有一个参与者能够解密的消息,并允许任何人验证只有一个参与者可以签名的消息。
  • 对称密码学比非对称密码学快得多。真的,很多。

在对称和非对称密码学之间进行选择时,安全性并不是真正需要考虑的问题。非对称密码学解决了对称密码学无法解决的问题;对于其他一切,使用对称加密,因为它要快得多。

(由于速度更快,对称密码学确实往往具有更高的安全边际:通用密钥大小——128 位 AES——足够大,除非有一个全新的数学突破,否则地球上目前存在的所有计算机都可以工作很长时间由于宇宙已经存在,破解加密的机会很小。非对称密码学由于其性能不佳而运行在较小的边际上,并且偶尔会在破解方法上进行数学改进,使常用的密钥大小可以在几年内使用,但不一定几十年。但与功能/性能替代方案相比,这是次要问题。)

混合密码系统通过仅在需要的地方使用非对称密码来解决这个难题:

  • 为了验证消息的签名,消息被散列,并且非对称加密仅用于散列,而不是直接用于可变长度消息。
  • 为了加密某些数据,会生成一个对称会话密钥非对称加密用于在参与者(客户端和服务器)之间共享此对称密钥。使用此对称密钥对“真实”数据进行加密和验证。

在 Web 上常用的 HTTPS 中,服务器有一个公钥,但客户端没有——任何浏览器都可以联系服务器,服务器不关心客户端是谁。在有意义的地方使用客户端证书。)HTTPS 会话建立的一个非常高级且不完整的视图是:

  1. 服务器将其证书发送给客户端。该证书包含服务器的公钥,以及证书颁发机构对该公钥的签名客户端验证证书颁发机构是已知的(浏览器附带证书颁发机构的公钥列表)。
  2. 客户端和服务器安排选择一个对称密钥,这样攻击者将无法仅通过检查流量甚至修改它来重建密钥(或者至少会检测到一个活跃的攻击者并且客户端否则服务器将中止会话)。Diffie-Hellman 密钥交换加上服务器的签名(让客户端验证交换是与服务器进行的,而不是与中间人攻击者进行的)是生成对称密钥的一种可能性。也可以仅依赖服务器的私钥(以不确保前向保密为代价)。
  3. 所有后续通信都使用该对称密钥。

请注意,我在上面做了很多简化。有关更多详细信息,请阅读: