Ssl 支持版本上的握手失败
我试图确定TLS_1_2是否在网站上受支持,即(portal.threatpulse.com,443) 即使支持此版本,也会导致握手失败。Ssl 支持版本上的握手失败,ssl,network-protocols,scapy,tls1.2,Ssl,Network Protocols,Scapy,Tls1.2,我试图确定TLS_1_2是否在网站上受支持,即(portal.threatpulse.com,443) 即使支持此版本,也会导致握手失败。 除此之外,此代码正在正确运行,因为今天的证书通常具有SHA-256签名。服务器要求客户端支持RSA/SHA-256作为签名/哈希算法。但此组合不包括在TLS 1.2新增的SignatureAndHashAlgorithmTLS扩展的默认集合中。此默认设置仅包括(带有RSA、DSA或ECDSA的SHA-1。如果TLS 1.2客户端支持比默认值更多或不同的算法,
除此之外,此代码正在正确运行,因为今天的证书通常具有SHA-256签名。服务器要求客户端支持RSA/SHA-256作为签名/哈希算法。但此组合不包括在TLS 1.2新增的
SignatureAndHashAlgorithm
TLS扩展的默认集合中。此默认设置仅包括(带有RSA、DSA或ECDSA的SHA-1。如果TLS 1.2客户端支持比默认值更多或不同的算法,则需要包括SignatureAndHashAlgorithm
扩展,并明确宣布支持此签名/哈希对。使用以下代码,此特定站点适用于我,但对于其他站点,您可能需要扩展这也包括ECDSA
pkt = TLSRecord(version = 'TLS_1_2') / \
TLSHandshake() / \
TLSClientHello(
version = 'TLS_1_2',
extensions=[ TLSExtension() / \
TLSExtSignatureAndHashAlgorithm( algorithms = [
TLSSignatureHashAlgorithm(
hash_algorithm = TLSHashAlgorithm.SHA256,
signature_algorithm = TLSSignatureAlgorithm.RSA
)
])
]
)
密码套件=[TLSCipherSuite.RSA_WITH_AES_128_CBC_SHA]我还试着使用这个密码套件,它是supportedit给我的KeyError:“hash_algorithm”@hassan_anwer:这正是最新版本的scapy_ssl_tls的工作原理,新安装了pip。这只是从我的工作测试程序中复制的。我也安装了pip的新版本,但仍然给我密钥错误。你能告诉我查看或运行这段小代码,它将对我有帮助@hassan_anwer:您的脚本在python 2.7.12、scapy 2.3.2、scapy_ssl_tls 1.2.2(即所有最新版本)上对我的工作方式不变
pkt = TLSRecord(version = 'TLS_1_2') / \
TLSHandshake() / \
TLSClientHello(
version = 'TLS_1_2',
extensions=[ TLSExtension() / \
TLSExtSignatureAndHashAlgorithm( algorithms = [
TLSSignatureHashAlgorithm(
hash_algorithm = TLSHashAlgorithm.SHA256,
signature_algorithm = TLSSignatureAlgorithm.RSA
)
])
]
)