Python解密TLS流量

时间:2014-02-12 08:05:35

标签: python encryption tcp ssl-certificate

我尝试解码使用已知端口(TCP 5061)的SIP TLS v1.0流量。 我有权访问我的私钥来提取信息(TCP原始数据) 我已创建了访问TCP流量的代码,我现在可以读取该信息。

packet = socket.recv(sipLocatorConfig.NETWORK_TCP_MAX_SIZE)

我的目标是能够读取加密流量(我已经可以使用)并使用我的私钥对其进行解密,以便我可以在此之后对其进行分析。 如何将TLS转换为TCP /原始数据?我能够启动SSL服务器,但是如何使用SSL库解析原始数据。

import socket
from OpenSSL import SSL

context = SSL.Context(SSL.SSLv23_METHOD)
context.use_privatekey_file('key')
context.use_certificate_file('cert')

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s = SSL.Connection(context, s)
s.bind(('', 12345))
s.listen(5)

(connection, address) = s.accept()
while True:
    print repr(connection.recv(65535))

1 个答案:

答案 0 :(得分:0)

编写python脚本来解密原始捕获是一项艰巨的任务。我建议您尝试使用wireshark,它是一个图形网络分析器,当您拥有密钥时,它已经decrypt SSL / TLS

请记住:完美的前向保密可以防止wirehark和脚本中的解密。见Decrypting HTTPS traffic in Wireshark not working