只有TLS_RSA_WITH_AES_128_CBC_SHA才能使用TLS 1.2服务器/客户端吗?

问题描述:

我更新嵌入式TLS 1.0实施TLS 1.2(设备用的码空间或更小,并且没有OS 1MB)。此时,我使用AES-128和AES-256 CBC密码来处理SHA-1和SHA-256摘要以实现最小程度的执行。该库无法协商SSLv2,SSLv3,TLS 1.0或TLS 1.1连接。只有TLS_RSA_WITH_AES_128_CBC_SHA才能使用TLS 1.2服务器/客户端吗?

我觉得这就足够了,因为RFC 5246种状态,“TLS_RSA_WITH_AES_128_CBC_SHA现在是强制实现的加密套件。”然而,当我阅读安全博客上的各种帖子时,我看到了会让用户禁用该套件的建议,并且(例如)只允许ECDHE_RSA或DHE_RSA变体。

所以我的问题是,是否使用我们的库设备将与现代网络浏览器(如服务器)和现代HTTPS/SMTPS/POP服务器(客户端)进行互操作。 是否存在无法协商TLS_RSA_WITH_AES_128_CBC_SHA连接的TLS 1.2客户端/服务器?

+0

取决于你定义的“get by”。我不是安全专家。但我可以闻到“AES_128_CBC”不够安全。也就是说,对于像“AES_256_GCM”这样的东西我会感觉更舒适。如果确实如此,如果您是客户端,那么服务器不支持密码。如果你是服务器,你可以支持它。但是你想要考虑安全问题。 – neurite

+0

有许多电子邮件服务器不能正确支持TLS 1.2。 – fcnorman

我不确定目前有很多服务器支持TLS,因此无法与协商​​,因为它是​​的强制密码套件。

但是有一些事情要记住:

  • 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.0TLSv1.1不提供额外的兼容性)。

PS:为什么AES128是有利的,而不是AES256的原因是,有些人认为通过AES256添加额外的安全性(现在)一无是处,AES128似乎是计时攻击更有抵抗力。

+0

谢谢,这是我正在寻找的答案。在TLS 1.0和1.1中知道“TLS_RSA_WITH_3DES_EDE_CBC_SHA”是强制性的,但由于安全原因而被禁用是TLS 1.2可能发生的一个很好的先例。 – tomlogic

“所以我的问题是,是否使用我们的库设备将与现代网络浏览器(如服务器)和现代HTTPS/SMTPS/POP服务器(客户端)的互操作。是否有TLS 1。2个客户端/未能协商TLS_RSA_WITH_AES_128_CBC_SHA连接服务器“

是出现未实现充足

最常见的:?

  1. 客户端仍然发送SSL2.0的客户您好
  2. 仅支持PFS密码套件的客户端/服务器
  3. 仍然不支持TLS 1.2的服务器
  4. 不再支持TLS的服务器1。 2 - 因为那些只支持TLS 1.3

我的建议是:

  • 也支持TLS 1.3(不是很难实现,我做到了)
  • 还支持DHE

或者使用像https://www.ssllabs.com/ssltest/index.html这样的工具/网站,并测试服务器的兼容性/安全性,直至满足您的需求。

+0

我发现TLS 1.3仍然是一个工作草案,但它肯定可以提供关于密码的指导,直到标准获得批准。如果客户机/服务器支持TLS 1.3,但我无法为了向后兼容而协商TLS 1.2连接,或许只能使用有限的密码支持,我会感到惊讶。 – tomlogic