代码之家  ›  专栏  ›  技术社区  ›  tomlogic

TLS 1.2服务器/客户端仅使用TLS_RSA_with_AES_128_CBC_SHA就可以了吗?

  •  16
  • tomlogic  · 技术社区  · 10 年前

    我正在将嵌入式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变体。

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

    2 回复  |  直到 10 年前
        1
  •  1
  •   Jyo de Lys    10 年前

    我不确定目前是否有许多支持TLS的服务器会协商失败 TLS_RSA_WITH_AES_128_CBC_SHA 具有 TLSv1.2 因为它是 TLS 1.2版 .

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

    • TLS_RSA_WITH_3DES_EDE_CBC_SHA 对于是必需的 TLSv1.0 和 TLSv1.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个密码套件为 TLS 1.2版 服务器。

    现在的问题是只支持 TLS 1.2版 是另一个问题,但如果您有足够的空间,我建议您添加 TLS 1.0版 也是( TLS 1.1版 不提供额外的兼容性)。

    PS:原因 AES128型 被青睐而不是 AES256 有些人认为 AES256 (现在)一文不值 AES128型 似乎对定时攻击更有抵抗力。

        2
  •  1
  •   bebbo    10 年前

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

    是的,有很多实现失败了。

    最常见的:

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

    我的建议是:

    • 也支持TLS 1.3(实现起来不是那么困难,我做到了)
    • 也支持DHE

    或使用工具/站点,如 https://www.ssllabs.com/ssltest/index.html 并测试服务器的兼容性/安全性,直到它对您足够。

    推荐文章