TLS 1.2服务器/客户端可以通过TLS_RSA_WITH_AES_128_CBC_SHA获取吗?

tom*_*gic 16 ssl tls1.2

我正在将嵌入式TLS 1.0实现更新到TLS 1.2(代码空间不超过1MB且没有操作系统的设备).此时,我使用AES-128和AES-256 CBC密码处理SHA-1和SHA-256摘要,以实现最小化.库无法协商SSLv2,SSLv3,TLS 1.0或TLS 1.1连接.

我觉得这就足够了,因为RFC 5246种状态,"TLS_RSA_WITH_AES_128_CBC_SHA现在是强制实现的加密套件."

然而,当我阅读安全博客上的各种帖子时,我看到的建议会让用户禁用该套件,并且(例如)仅允许ECDHE_RSA或DHE_RSA变体.

所以我的问题是使用我们的库的设备是否可以与现代Web浏览器(作为服务器)和现代https/smtps/pop服务器(作为客户端)互操作. 是否有TLS 1.2客户端/服务器无法协商TLS_RSA_WITH_AES_128_CBC_SHA连接?

Jyo*_*Lys 2

我不确定目前是否有许多支持 TLS 的服务器无法TLS_RSA_WITH_AES_128_CBC_SHA与TLS 协商TLSv1.2,因为它是TLSv1.2.

然而,有一些事情需要记住:

  • TLS_RSA_WITH_3DES_EDE_CBC_SHA是强制性的TLSv1.0TLSv1.1但由于安全原因,不再受到每个服务器的支持,
  • Mozilla 建议(而且它不是唯一的)赞成AES128而不是AES256
  • DHE 或 ECDHE 允许的完美前向保密 (PFS) 现在是必备功能。

因此,如果我可以为您提供 4 个密码套件(与您拥有的数量相同),我会按照从最强到最弱的顺序排列这些密码套件:

  1. TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  2. TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  3. TLS_RSA_WITH_AES_128_GCM_SHA256
  4. TLS_RSA_WITH_AES_128_CBC_SHA

我想说这 4 个密码套件带来了足够的安全性和与TLSv1.2服务器的兼容性。

现在仅支持的问题TLSv1.2是另一个问题,但如果您有足够的空间,我建议您也添加TLSv1.0TLSv1.1不提供额外的兼容性)。

PS:之所以AES128受到青睐而不是AES256因为有些人认为增加的额外安全性AES256(目前)毫无价值,而且AES128似乎更能抵抗定时攻击。