ssl - 使用 PyShark 解密 SSL 数据包

标签 ssl encryption packet-sniffers tshark pyshark

我可以使用私钥在 wireshark(GUI) 中解密 SSL 数据包。以相同的方式使用 PyShark(以编程方式)解密数据包。有没有其他方法可以使用任何不同的编程方法来完成相同的任务?

最佳答案

这没有经过测试,但 override_prefs 可以让您将自定义标志添加到 tshark 或覆盖一些:

.- 您可以将字典传递给 override_prefs 属性,例如

def create_ssl_override(ssl_key_path, server='127.0.0.1', port='443',
                        protocol='http', ssl_debug_file='ssl_debug.log'):

    ssh_key_info = '{server},{port},{protocol},{pem_path}'.format(
       server=server, port=port, protocol=protocol, pem_path=pem_path)

    return {
      'ssl.desegment_ssl_records': 'TRUE',
      'ssl.desegment_ssl_application_data': 'TRUE',
      'tcp.desegment_tcp_streams': 'TRUE',
      'ssl.keys_list': ssl_key_info,
      'ssl.debug_file': ssl_debug_file
    }

ssl_overrides = create_ssl_override('my_server_key_file.pem')

因此,在创建捕获对象时,将 override_prefs=ssl_overrides 作为参数之一传递。同样,我没有对此进行测试,我不确定 pyshark 是否能够使用 ssl xml 输出,但请尝试一下。

如果不是直接tshark(例子来自https://wiki.wireshark.org/SSL)

tshark -o "ssl.desegment_ssl_records: TRUE" -o "ssl.desegment_ssl_application_data: TRUE" -o "ssl.keys_list: 127.0.0.1,4443,http,/home/dirkx/xx/privkey.pem" -o "ssl.debug_file: /home/dirkx/.wireshark-log" -i eth0 -R "tcp.port == 4443"

关于ssl - 使用 PyShark 解密 SSL 数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43799432/

相关文章:

java - 如何修复 (SSLException) 收到致命警报 : protocol_version in Java

c# - Java RSA 加密

ssl - 加密的 websockets 使用什么端口?

docker - Flask 上的 80 端口显示 "Welcome to nginx"

swift - 将 Common Crypto AESEncryption 迁移到 CryptoSWIFT,因为在某些情况下解密字符串变为空

javascript - VBA 中的 Base64 HMAC SHA1 字符串

python - 使用 PyUSB 重放 Wireshark 捕获的数据包

symbian - 适用于诺基亚 N8 (symbian ^3) 手机的数据包捕获工具

c - pcap 仅接收新连接

ssl - 在 VS2015 上使用 ssl 与 localhost 和 asp.net mvc 5