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

时间:2016-01-22 23:56:40

标签: 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连接?

2 个答案:

答案 0 :(得分:2)

我不确定目前有多台支持TLS的服务器无法与TLS_RSA_WITH_AES_128_CBC_SHA协商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
  5. 我想说这4个密码套件可以为TLSv1.2服务器带来足够的安全性和兼容性。

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

    PS:AES128取代AES256而不是AES256的原因是有些人认为AES128添加的额外安全性(目前)毫无价值且app.UseStaticFiles("/Scripts"); 似乎更能抵抗时间攻击。

答案 1 :(得分:1)

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

是的,有很多实施失败。

最常见的是:

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

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

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