TLS 1.2服务器/客户端只使用TLS_RSA_WITH_AES_128_CBC_SHA是否可行?

16

我正在将一款嵌入式TLS 1.0实现更新为TLS 1.2(适用于代码空间小于1MB且没有操作系统的设备)。目前,我已经使用SHA-1和SHA-256摘要算法实现了AES-128和AES-256 CBC密码。该库不能协商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_RSA_WITH_AES_128_CBC_SHA连接的TLS 1.2客户端/服务器?


取决于您如何定义“应付”。我不是安全专家。但我能闻到“AES_128_CBC”不够安全。也就是说,我会更喜欢像“AES_256_GCM”这样的东西。如果确实是这种情况,如果您是客户端,则存在密码无法被服务器支持的风险。如果您是服务器,则可以支持它。但您需要仔细考虑安全性。 - neurite
有许多电子邮件服务器无法正确支持TLS 1.2。 - fcnorman
2个回答

1
我不确定目前有多少服务器支持TLS,会在使用TLSv1.2时无法协商TLS_RSA_WITH_AES_128_CBC_SHA,因为它是TLSv1.2的强制密码套件。但需要注意以下几点:
- TLS_RSA_WITH_3DES_EDE_CBC_SHA是TLSv1.0和TLSv1.1的强制密码套件,但由于安全原因,不是每个服务器都支持它。 - Mozilla建议(并不是唯一的)优先选择AES128而不是AES256。 - 前向保密(PFS),由DHE或ECDHE允许,现在是必备功能。
所以,如果我可以为您提供4个密码套件(与您拥有的数量相同),我会说从最强到最弱的是这些:
  1. TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(使用ECDHE-RSA密钥交换、AES-128-GCM加密和SHA-256哈希算法的TLS密码套件)
  2. TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA(使用ECDHE-RSA密钥交换、AES-128-CBC加密和SHA哈希算法的TLS密码套件)
  3. TLS_RSA_WITH_AES_128_GCM_SHA256(使用RSA密钥交换、AES-128-GCM加密和SHA-256哈希算法的TLS密码套件)
  4. TLS_RSA_WITH_AES_128_CBC_SHA(使用RSA密钥交换、AES-128-CBC加密和SHA哈希算法的TLS密码套件)

我认为这四个密码套件足以保证与 TLSv1.2 服务器的安全性和兼容性。

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

附:之所以更喜欢 AES128 而不是 AES256 是因为有些人认为 AES256 增加的额外安全性目前是无用的,而且 AES128 似乎更抵抗定时攻击。


谢谢,这是我在寻找的答案类型。了解 TLS_RSA_WITH_3DES_EDE_CBC_SHA 在 TLS 1.0 和 1.1 中是强制要求的,但出于安全原因被禁用,这为 TLS 1.2 可能会发生的情况提供了一个很好的先例。 - tomlogic

1
"So my question is whether devices using our library will interoperate with modern web browsers (as a server) and modern https/smtps/pop servers (as a client). Are there TLS 1.2 clients/servers that fail to negotiate a TLS_RSA_WITH_AES_128_CBC_SHA connection?"
是的,有很多实现会失败。
最常见的有:
1.仍发送SSL2.0客户端Hello的客户端
2.仅支持PFS密码套件的客户端/服务器
3.仍不支持TLS 1.2的服务器
4.不再支持TLS 1.2的服务器-因为这些只支持TLS 1.3
我的建议是:
1.也支持TLS 1.3(实现并不难,我做到了)
2.也支持DHE
或使用类似https://www.ssllabs.com/ssltest/index.html的工具/网站测试您的服务器的兼容性/安全性,直到满足您的要求。

我看到TLS 1.3仍然是一个工作草案,但它肯定可以提供有关支持密码的指导,直到标准得到批准。如果客户端/服务器支持TLS 1.3但无法进行TLS 1.2连接以实现向后兼容性,那么这可能会让我感到惊讶,也许只能使用有限的密码支持。 - tomlogic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接