我正在尝试解密pcap文件。此pcap文件包含HLS加密视频流的捕获。 pcap包含TLSv1.2数据包。
以下是pcap文件中的一些信息
服务器Hello消息Cipher Suite:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384。
EC Diffie-Hellman服务器参数:pubkey(1)
证书状态消息:
签名哈希算法哈希:SHA256
签名哈希算法签名:ECDSA
客户密钥交换消息
EC Diffie-Hellman服务器参数:pubkey(2)
我试图关注this Wireshark SSL decryption tutorial。但它似乎只适用于RSA加密。 我已经研究了一段时间,发现this discussion。我引用了这个讨论的摘录:
需要注意一个重要的参数:被动解密 记录的会话(带有服务器私钥的副本)仅在以下情况下有效 密钥交换是RSA型或静态DH;与“DHE”和“ECDHE” 密码套件,你将无法解密这样的会话,即使有 了解服务器私钥。在这种情况下,您将需要 要么是协商的“主秘密”,要么是私有使用服务器 积极拦截连接的关键
值得注意的是,我有客户端私钥。在我的例子中,客户端是FFmpeg视频流(FFplay)。我也看了TLS v1.2 RFC。
我的问题:
在这种情况下是否可以进行解密?如果是,我需要做什么?
解密是使用客户端的私钥还是使用pre_shared_master(即Diffie-Hellman)完成的?
答案 0 :(得分:2)
首先,客户端私钥或公钥不以任何方式参与密钥交换,但仅用于验证客户端(如果服务器请求)。密钥交换中使用的是服务器私钥和公钥,但仅在使用RSA密钥交换时才使用。对于DHE / ECDHE,不使用它们,因此私钥/公钥不够。有关详情,请参阅it is possible to decrypt HTTPS with the (private, public) pair if it uses DHE?。
您需要代替私钥实际上是交换密钥,即使私钥相同,每个TLS会话也是唯一的。有些客户可以存储此密钥供以后使用,如果您的客户端可以执行此操作,请参阅Decrypting TLS Browser Traffic With Wireshark – The Easy Way!如何继续解密流量。
答案 1 :(得分:1)
不,在这种情况下无法解密。这将涉及打破EC Diffie-Hellman。
解密不是使用pre_master_secret
直接执行的,而是由来自预主密钥的直接派生的执行。即:通过首先导出master_secret
然后执行PRF并将输出分成会话密钥和IV来从中派生的客户端和服务器解密密钥。