最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

为什么Node.js TLS支持的密码不对应openssl支持的密码?

运维笔记admin15浏览0评论

为什么Node.js TLS支持的密码不对应openssl支持的密码?

为什么Node.js TLS支持的密码不对应openssl支持的密码?

根据openssl,这些是它支持的密码:

 DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
 DHE-DSS-AES256-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA1
 AES256-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA1
 EDH-RSA-DES-CBC3-SHA    SSLv3 Kx=DH       Au=RSA  Enc=3DES(168) Mac=SHA1
 EDH-DSS-DES-CBC3-SHA    SSLv3 Kx=DH       Au=DSS  Enc=3DES(168) Mac=SHA1
 DES-CBC3-SHA            SSLv3 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=SHA1
 DES-CBC3-MD5            SSLv2 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=MD5 
 DHE-RSA-AES128-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1
 DHE-DSS-AES128-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(128)  Mac=SHA1
 AES128-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA1
 RC2-CBC-MD5             SSLv2 Kx=RSA      Au=RSA  Enc=RC2(128)  Mac=MD5 
 RC4-SHA                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=SHA1
 RC4-MD5                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=MD5 
 RC4-MD5                 SSLv2 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=MD5 
 EDH-RSA-DES-CBC-SHA     SSLv3 Kx=DH       Au=RSA  Enc=DES(56)   Mac=SHA1
 EDH-DSS-DES-CBC-SHA     SSLv3 Kx=DH       Au=DSS  Enc=DES(56)   Mac=SHA1
 DES-CBC-SHA             SSLv3 Kx=RSA      Au=RSA  Enc=DES(56)   Mac=SHA1
 DES-CBC-MD5             SSLv2 Kx=RSA      Au=RSA  Enc=DES(56)   Mac=MD5 
 EXP-EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH(512)  Au=RSA  Enc=DES(40)   Mac=SHA1 export
 EXP-EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH(512)  Au=DSS  Enc=DES(40)   Mac=SHA1 export
 EXP-DES-CBC-SHA         SSLv3 Kx=RSA(512) Au=RSA  Enc=DES(40)   Mac=SHA1 export
 EXP-RC2-CBC-MD5         SSLv3 Kx=RSA(512) Au=RSA  Enc=RC2(40)   Mac=MD5  export
 EXP-RC2-CBC-MD5         SSLv2 Kx=RSA(512) Au=RSA  Enc=RC2(40)   Mac=MD5  export
 EXP-RC4-MD5             SSLv3 Kx=RSA(512) Au=RSA  Enc=RC4(40)   Mac=MD5  export
 EXP-RC4-MD5             SSLv2 Kx=RSA(512) Au=RSA  Enc=RC4(40)   Mac=MD5  export

我在端口443上运行一个简单的node.js https服务器。当我运行sslscan时,以下是Accepted密码:

 Accepted  SSLv3  256 bits  AES256-SHA
 Accepted  SSLv3  128 bits  AES128-SHA
 Accepted  SSLv3  168 bits  DES-CBC3-SHA
 Accepted  SSLv3  128 bits  RC4-SHA
 Accepted  TLSv1  256 bits  AES256-SHA
 Accepted  TLSv1  128 bits  AES128-SHA
 Accepted  TLSv1  168 bits  DES-CBC3-SHA
 Accepted  TLSv1  128 bits  RC4-SHA

我不明白的是,为什么实际支持的密码列表要短得多?

什么更令人困惑,当在节点我得到支持的密码列表tls.getCiphers()我找到一个很长的列表:

[ “AES128-GCM-SHA256 '' AES128-SHA”, “AES128-SHA256 '' AES256-GCM-SHA384 '' AES256-SHA”, “AES256-SHA256 '' camellia128-SHA”,“camellia256-沙 “” DES-CBC-SHA “” DES-CBC3-SHA '并-DSS-AES128-GCM-SHA256',和-DSS-AES128-SHA '并-DSS-AES128-SHA256' '和-DSS-AES256-GCM-SHA384' 和-DSS-AES256-SHA '和-DSS-AES256-SHA256' 和-DSS-camellia128-SHA,“和-DSS-camellia256- SHA “” 种子和-DSS-SHA, '和-RSA-AES128-GCM-SHA256',和RSA-AES128-SHA '和-RSA-AES128-SHA256' 和-rsa- AES256-GCM-SHA384 '以及RSA-AES256-SHA' 和RSA-AES256-SHA256 '和RSA-camellia128-SHA' 和RSA-camellia256莎 '' 和 - RSA-种子-SHA “” ECDH-ECDSA-AES128-GCM-SHA256 '' ECDH-ECDSA-AES128-SHA “” ECDH-ECDSA-AES128-SHA256 '' ECDH-ECDSA-AES256-GCM-SHA384' 'ECDH-ECDSA-AES256-SHA “” ECDH-ECDSA-AES256-SHA384' ,' ECDH-ECDSA-DES-CBC3莎 “” ECDH-ECDSA-RC4-SHA “” ECDH-RSA-aes128- GCM-SHA256 '' ECDH-RSA-AES128-SHA “” ECDH-RSA-AES128-SHA256 '' ECDH-RSA-AES256-GCM-SHA384 '' ECDH-RSA-AES256-SHA “” ecdh- RSA-AES256-sha38 4 '' ECDH-RSA-DES-CBC3-SHA “” ECDH-RSA-RC4-SHA “” ecdhe-ECDSA-AES128-GCM-SHA256 '' ecdhe-ECDSA-AES128-SHA “” ecdhe- ECDSA-AES128-SHA256 '' ecdhe-ECDSA-AES256-GCM-SHA384 '' ecdhe-ECDSA-AES256-SHA “” ecdhe-ECDSA-AES256-SHA384 '' ecdhe-ECDSA-DES-CBC3-SHA“ , 'ecdhe-ECDSA-RC4-SHA “” ecdhe-RSA-AES128-GCM-SHA256' ,' ecdhe-RSA-AES128-SHA “” ecdhe-RSA-AES128-SHA256' ,“ecdhe-RSA-aes256- GCM-SHA384 '' ecdhe-RSA-AES256-SHA “” ecdhe-RSA-AES256-SHA384 '' ecdhe-RSA-DES-CBC3莎 “” ecdhe-RSA-RC4-SHA “” edh- DSS-DES-CBC-SHA “” ADH-DSS-DES-CBC3莎 “” ATH-RSA-DES-CBC-SHA “” ATH-RSA-DES-CBC3莎 “” EXP-沙漠CBC-SHA “” EXP-AZ-DSS-DES-CBC-SHA “” EXP-AZ-RSA-DES-CBC-SHA “” EXP-RC2-CBC-MD5 “” EXP-RC4,MD5“ “IDEA-CBC-SHA '' CSR 3DES-EDE-CBC-SHA '' CSR AES128-CBC-SHA '' CSR AES256-CBC-SHA '' CSR RC4-SHA '' RC4-MD5 “” RC4-SHA “” 种子莎 “” PRS-DSS埃德-3DES-CBC-SHA “” PRS DSS-AES-128-CBC-SHA “” PRS DSS AES-256-CBC-SHA “” PRS RSA-3DES-EDE-CBC-SHA “” PRS RSA-AES-128-CBC-SHA “” PRS RSA-AES-256-CBC-SHA' ]

回答如下:

第一个列表是SSLv3的所有密码。目前已经定义了TLS 1.0,TLS 1.1和TLS.2。所以这些是较旧的密码。

第二个列表是握手时客户端(sslscan)和服务器中可用的密码列表。

最后,最后一个似乎是NodeJS中存在的(但可能没有配置?)的完整密码列表。

请注意,OpenSSL文档非常稀疏且经常过时,而且NodeJS稍微好一些。

发布评论

评论列表(0)

  1. 暂无评论