【问题标题】:How to tell what SSL/TLS protocol version can be established using certain cipher suite如何判断使用某些密码套件可以建立什么 SSL/TLS 协议版本
【发布时间】:2019-02-11 23:46:23
【问题描述】:

反之亦然,如何找出哪些密码套件可用于某个版本的 SSL/TLS 协议?这两个问题都意味着存在限制,即任何密码套件都不适合任何协议版本。特别是,我想在 TLS 1.2 的合适密码的详尽列表中指出,如果有的话。

这个问题可以改写为密码套件和协议版本之间的兼容性。

【问题讨论】:

  • 这个问题太笼统了。

标签: ssl tls1.2


【解决方案1】:

这有点离题,与编程无关。但是为什么要关心 1.2 或 1.3 以外的其他版本呢?

TLS 1.3 有一个非常小的密码列表,与之前的所有密码分开:

本规范定义了以下密码套件,用于 TLS 1.3。

          +------------------------------+-------------+
          | Description                  | Value       |
          +------------------------------+-------------+
          | TLS_AES_128_GCM_SHA256       | {0x13,0x01} |
          |                              |             |
          | TLS_AES_256_GCM_SHA384       | {0x13,0x02} |
          |                              |             |
          | TLS_CHACHA20_POLY1305_SHA256 | {0x13,0x03} |
          |                              |             |
          | TLS_AES_128_CCM_SHA256       | {0x13,0x04} |
          |                              |             |
          | TLS_AES_128_CCM_8_SHA256     | {0x13,0x05} |
          +------------------------------+-------------+

对于其他版本,https://github.com/mozilla/cipherscan 之类的工具可以帮助它显示密码以及它们适用于哪个版本。

或者只是使用openssl ciphers 命令打开ssl,添加-s 参数,然后添加-tls1-tls1_1-tls1_2

如果您查看其手册,您也有列表,请查看https://www.openssl.org/docs/manmaster/man1/ciphers.html 的底部

在 TLSv1.2 中可以使用 很多 可能的密码,但并非所有密码都是好主意。有些人试图维护好的参数列表,例如参见https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurationshttps://weakdh.org/sysadmin.html

我还建议您查看定义“长期支持”TLSv1.2 的努力,它是当前 TLS 版本 1.2 之上的规范,适用于不会超过 1.3 的人们,它试图通过删除来提高安全性TLS v1.2 中的所有内容都被发现不是一个好主意,但仍然 100% 符合 TLS v1.2。

https://datatracker.ietf.org/doc/draft-gutmann-tls-lts/?include_text=1

本文档指定了 TLS 1.2 的更新,以便长期支持 具有多年甚至十年更新周期的系统, 一个尽可能包含已经部署的内容 TLS 1.2,但修复了安全漏洞和错误。

关于密码它有这样的说法:

TLS-LTS 限制了或多或少不受限制的 TLS 1.2 及其更多
三百多个密码套件,四十多个 ECC 参数集,以及
补充算法、参数和参数格式的动物园,
只有两个,一个传统的 DHE + AES-CBC + HMAC-SHA-256 +
RSA-SHA-256/PSK 和一个 ECC 一个 ECDHE-P256 + AES-GCM + HMAC-
带有未压缩点的 SHA-256 + ECDSA-P256-SHA-256/PSK:

o TLS-LTS 实现必须支持 TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_PSK_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 和 TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256。对于这些套件,SHA-256 用于协议中散列函数所在的所有位置 需要,特别是在 PRF 和每包 MAC 计算中 (如套件中的 _SHA256 所示)以及客户端中的 和 CertificateVerify 中的服务器签名和 ServerKeyExchange 消息。

   [Note: TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 is based on
    draft-ietf-tls-ecdhe-psk-aead, currently still
    progressing as an IETF draft, the reference will be
    updated to the full RFC once it's published].

【讨论】:

    猜你喜欢
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    相关资源
    最近更新 更多