如何查找支持特定密码的 SSL 证书

如何查找支持特定密码的 SSL 证书

我们有一个网站,需要连接到使用支持特定密码的系统的第三方服务。我试过 LetsEncrypt 和 Comodo,但都不起作用。

是否有资源可以帮助我找到哪个 SSL 证书颁发机构支持所需的密码,而无需进行安装和执行nmap --script ssl-enum-ciphers -p 443 example.org

以下是支持的密码:

Cipher#  0 : TLS_RSA_WITH_AES_256_CBC_SHA256 
Cipher#  1 : TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 
Cipher#  2 : TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 
Cipher#  3 : TLS_RSA_WITH_AES_256_CBC_SHA 
Cipher#  4 : TLS_DHE_RSA_WITH_AES_256_CBC_SHA 
Cipher#  5 : TLS_DHE_DSS_WITH_AES_256_CBC_SHA 
Cipher#  6 : TLS_RSA_WITH_AES_128_CBC_SHA256 
Cipher#  7 : TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 
Cipher#  8 : TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 
Cipher#  9 : TLS_RSA_WITH_AES_128_CBC_SHA 
Cipher#  10 : TLS_DHE_RSA_WITH_AES_128_CBC_SHA 
Cipher#  11 : TLS_DHE_DSS_WITH_AES_128_CBC_SHA 
Cipher#  12 : TLS_EMPTY_RENEGOTIATION_INFO_SCSV 
Cipher#  13 : TLS_DH_anon_WITH_AES_256_CBC_SHA256 
Cipher#  14 : TLS_DH_anon_WITH_AES_256_CBC_SHA 
Cipher#  15 : TLS_DH_anon_WITH_AES_128_CBC_SHA256 
Cipher#  16 : TLS_DH_anon_WITH_AES_128_CBC_SHA 
Cipher#  17 : SSL_RSA_WITH_DES_CBC_SHA 
Cipher#  18 : SSL_DHE_RSA_WITH_DES_CBC_SHA 
Cipher#  19 : SSL_DHE_DSS_WITH_DES_CBC_SHA 
Cipher#  20 : SSL_DH_anon_WITH_DES_CBC_SHA 
Cipher#  21 : TLS_RSA_WITH_NULL_SHA256 
Cipher#  22 : SSL_RSA_WITH_NULL_SHA 
Cipher#  23 : SSL_RSA_WITH_NULL_MD5 
Cipher#  24 : TLS_KRB5_WITH_DES_CBC_SHA 
Cipher#  25 : TLS_KRB5_WITH_DES_CBC_MD5

答案1

证书不会明确确定服务器可以使用哪些密码。这实际上是由密码字符串配置参数控制的(例如,在使用 OpenSSL 的应用服务器上),该参数允许服务器管理员启用或禁用特定密码或密码套件,或者选择特定的密码顺序。

这里有一些关于此内容的好的信息:https://www.owasp.org/index.php/TLS_Cipher_String_Cheat_Sheet

答案2

证书主要有两种,不同之处在于所使用的公钥类型:典型的是 RSA 证书,较少使用的则是 ECC 证书。第一种证书用于使用 RSA 认证的密码(即TLS_RSA_WITH_AES_256_CBC_SHA256TLS_DHE_RSA_WITH_AES_256_CBC_SHA256您列表中的 ...),而 ECC 证书用于使用 ECDSA 认证的密码(您列表中没有 ECDSA 密码)。

列表中的几种密码根本不使用证书,例如TLS_DH_anon_WITH_AES_256_CBC_SHATLS_KRB5_WITH_DES_CBC_SHA。列表中的其他密码根本不是真正的密码,而只是伪密码:TLS_EMPTY_RENEGOTIATION_INFO_SCSV。然后是 DSS 密码,它们需要 DSA 证书,而公共 CA 无论如何都不会颁发证书。

除此之外,此列表中的许多密码都非常不安全,例如SSL_RSA_WITH_NULL_MD5(根本没有加密)、SSL_RSA_WITH_DES_CBC_SHA(加密容易破解)或TLS_DH_anon_WITH_AES_256_CBC_SHA(由于没有对服务器进行身份验证,因此无法防范中间人攻击)。

我们有一个网站,需要连接到使用具有特定密码支持的系统的第三方服务。

如果您需要连接到第三方服务,则您是 TLS 客户端。TLS 客户端通常根本没有证书。如果需要相互认证,TLS 客户端可能需要(客户端)证书。在这种情况下,证书类型与密码完全无关 - 只有服务器证书才有这种关系。但服务器可能需要特定证书,例如由第三方证书颁发机构颁发的证书或具有特定属性的其他证书。证书需要具备哪些属性应由第三方服务记录。

相关内容