什么决定了密码套件?

Posted

技术标签:

【中文标题】什么决定了密码套件?【英文标题】:What determines the cipher suite? 【发布时间】:2021-12-05 07:27:39 【问题描述】:

我在我的 TLS 应用程序上使用 mbedtls。我有一个关于密码套件的问题。 当我调试我的进程时,我从服务器端得到以下几行:

selected ciphersuite: TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256

选择这个CHACHA20-POLY1305密码的原因是什么?钥匙?或证书?还是别的什么?

如何将我的芯片套件更改为TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

【问题讨论】:

【参考方案1】:

选择这个CHACHA20-POLY1305密码的原因是什么

服务器和客户端支持的密码,包括他们的偏好。因此,它取决于客户端和服务器配置以及它们的 TLS 堆栈。

如何将我的芯片套件更改为 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256?

当前选择的密码套件中的RSA 表示使用 RSA 证书进行身份验证。您想要的密码中的 ECDSA 意味着服务器需要使用 ECDSA 证书,即您无法使用 RSA 证书来实现这一点。

有些服务器可以同时使用 RSA 和 ECDSA 证书,在这种情况下,证书的选择再次取决于客户端和服务器配置,包括支持的密码、偏好等。

【讨论】:

以上是关于什么决定了密码套件?的主要内容,如果未能解决你的问题,请参考以下文章

SSLHandshakeException:没有共同的密码套件(JAVA)[重复]

如何指定要在 SSL 会话中使用的密码套件

检查windows系统支持的密码套件

Liberty Websphere 上没有共同的密码套件

映射 SSL/TLS 密码套件及其 OpenSSL 等效项

使用 Openssl s_server 限制密码套件选择