我有一个简单的脚本,该脚本在python中执行TLS握手的方式与在documentation中的以下方式类似:
import socket, ssl
context = ssl.SSLContext()
context.verify_mode = ssl.CERT_REQUIRED
context.check_hostname = True
context.load_default_certs()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = context.wrap_socket(s, server_hostname='www.verisign.com')
ssl_sock.connect(('www.verisign.com', 443))
我想测量TLS握手所需的时间。因此,我假设在
connect
函数之前启动一个计时器,并减去以下经过的时间即可完成这项工作:start = time.process_time()
sslSocket.connect((domainName, 443))
perfTime = time.process_time() - start
我查看了
connect
文档,它的意思是:我的问题是:我的代码中的
connect
函数是否执行TLS握手?这就是我要评估的性能:TLS握手。 connect是一个TCP级别,但是我将套接字包装在TLS上下文中。请向我说明如何在我的简单代码中衡量TLS握手性能? 最佳答案
试试这个:
ssl_sock = context.wrap_socket(s, do_handshake_on_connect=False)
然后,手动执行SSL握手:
...
ssl_sock.connect(('www.verisign.com', 443))
start = time.process_time()
ssl_sock.do_handshake()
perfTime = time.process_time() - start
print("Handshaking time " + perfTime)
关于python - 在python中测量TLS握手性能时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52697613/