Python请求在客户端Hello中发送TLS_EMPTY_RENEGOTIATION_INFO_SCSV?

时间:2018-02-07 12:34:49

标签: python ssl python-requests tls1.2

我在客户端上使用Python请求与服务器建立TLS连接。这是我正在使用的代码:

import ssl
import requests

from requests.adapters import HTTPAdapter
from requests.packages.urllib3.poolmanager import PoolManager
from requests.packages.urllib3.util import ssl_

CIPHERS = (
    'RSA+AES'
)

class TlsAdapter(HTTPAdapter):

    def __init__(self, ssl_options=0, **kwargs):
        self.ssl_options = ssl_options
        super(TlsAdapter, self).__init__(**kwargs)

    def init_poolmanager(self, *pool_args, **pool_kwargs):
        ctx = ssl_.create_urllib3_context(ciphers=CIPHERS, cert_reqs=ssl.CERT_REQUIRED, options=self.ssl_options)
        print(ssl.PROTOCOL_TLS)
        self.poolmanager = PoolManager(*pool_args,
                                       ssl_context=ctx,
                                       **pool_kwargs)

session = requests.session()
adapter = TlsAdapter(ssl.OP_NO_TLSv1 | ssl.OP_NO_TLSv1_1)
session.mount("https://", adapter)
r = session.request('GET', 'https://awesome.com', verify='/etc/ssl/certs/ca-certificates.crt')
print(r)

当我在Wireshark中检查客户端问候消息时,我在客户端提供的密码列表中看到另一个密码“TLS_EMPTY_RENEGOTIATION_INFO_SCSV”。

谁能告诉我这个密码是什么以及它有什么用?有没有办法从客户端问候消息中发送的密码列表中删除它?

我尝试查找此问题,但找不到合适的答案。

谢谢!

0 个答案:

没有答案