Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssl 支持版本上的握手失败_Ssl_Network Protocols_Scapy_Tls1.2 - Fatal编程技术网

Ssl 支持版本上的握手失败

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客户端支持比默认值更多或不同的算法,

我试图确定TLS_1_2是否在网站上受支持,即(portal.threatpulse.com,443)

即使支持此版本,也会导致握手失败。
除此之外,此代码正在正确运行

,因为今天的证书通常具有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
                )
            ])
        ]
    )