比较 SSL 密码套件符号
Comparing SSL Cipher Suite Notations
我们有一个客户,其支持的 TLS 1.2 密码套件被记录为这种格式...
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (0xc024)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (0xc023)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)
我们有服务器(我认为是 nginx?),其支持的列表采用这种表示法...
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM
客户端无法建立连接,所以我假设 client/server 不同意支持的密码。我有什么想法可以从缩写的服务器表示法中获取支持的密码列表吗?
我知道 EECDH 是 ECDHE 的别名,所以我假设这两个密码之一会匹配。
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
有什么想法吗?
如果您的服务器 public 仅可用,请前往 SSLLabs 并测试您的服务器是否支持密码套件。它会给你一个你需要的格式的列表。
如果您的服务器不是 public,您可以对 testssl.sh 执行相同的操作。
openssl ciphers -V 'EECDH+AESGCM:EDH+AESGCM'
为您提供 OpenSSL 表示法中的所有密码。要将其转换为 RFC 中的符号,请参阅 man ciphers 末尾的映射。执行此操作时,您将获得以下已正确识别的共享密码:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
但是,这些都是 ECDSA 密码,因此它们要求服务器具有 ECC 证书。我假设在您的情况下,服务器只有一个 RSA 证书(仍然更常见),因此基本上没有共享密码。相反,客户端需要提供这些密码:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA384
我们有一个客户,其支持的 TLS 1.2 密码套件被记录为这种格式...
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (0xc024)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (0xc023)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)
我们有服务器(我认为是 nginx?),其支持的列表采用这种表示法...
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM
客户端无法建立连接,所以我假设 client/server 不同意支持的密码。我有什么想法可以从缩写的服务器表示法中获取支持的密码列表吗?
我知道 EECDH 是 ECDHE 的别名,所以我假设这两个密码之一会匹配。
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
有什么想法吗?
如果您的服务器 public 仅可用,请前往 SSLLabs 并测试您的服务器是否支持密码套件。它会给你一个你需要的格式的列表。
如果您的服务器不是 public,您可以对 testssl.sh 执行相同的操作。
openssl ciphers -V 'EECDH+AESGCM:EDH+AESGCM'
为您提供 OpenSSL 表示法中的所有密码。要将其转换为 RFC 中的符号,请参阅 man ciphers 末尾的映射。执行此操作时,您将获得以下已正确识别的共享密码:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
但是,这些都是 ECDSA 密码,因此它们要求服务器具有 ECC 证书。我假设在您的情况下,服务器只有一个 RSA 证书(仍然更常见),因此基本上没有共享密码。相反,客户端需要提供这些密码:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA384