我不是在谈论在 SSL/TLS 发生时解密连接(MITM),而是在连接关闭并且我有整个协商/数据传输过程的 pcap 文件之后。
如何解密连接中传递的数据?有没有办法获得会话密钥(无需等待几年计算过程结束)?量子计算机会有帮助吗?
我不是在谈论在 SSL/TLS 发生时解密连接(MITM),而是在连接关闭并且我有整个协商/数据传输过程的 pcap 文件之后。
如何解密连接中传递的数据?有没有办法获得会话密钥(无需等待几年计算过程结束)?量子计算机会有帮助吗?
最简洁的答案是不”。更长的答案是 SSL 专门设计用于使这成为不可能。如果这是可能的,那么 SSL 将无法用于其主要预期目的 - 保护发送到安全网站的信用卡号等内容。
SSL 如何做到这一点的简短(技术上不正确)答案如下:
服务器向客户端提供证书。
客户端确认证书是由客户端信任的组织签署的,并且该组织证明证书属于客户端想要访问的服务器。
客户端生成一个随机密钥,用证书中的公钥加密,然后发送给服务器。
服务器解密密钥并使用服务器和客户端现在必须保护进一步通信的共享秘密。(虽然它以一种有点复杂的方式做到这一点。同样,这是一个过于简单的解释。)
解密数据至少需要恢复在步骤 3 中生成的共享密钥。但是你会怎么做呢?它仅通过加密的线路发送,并且您没有服务器的私钥。
它可以做到,但它需要的信息超出了你在网上的信息。Wireshark 有能力进行这种嗅探,假设它可以看到整个对话并且您还拥有服务器 SSL 证书的私钥。没有私钥就不行。
这就是为什么你需要保护你的私钥。
我在调试软件中使用了这个功能。一个客户端/服务器应用程序使用 SSL 来传输数据,并且在网络层发生了一些有趣的事情。由于我控制了整个环境,我拥有 SSL 证书的私钥,因此能够使用 Wireshark 进行对话。这反过来又指向了我向开发人员报告的错误。