thi*_*goh 3 ssl networking reverse-engineering wireshark whatsapp
我一直在阅读很多关于嗅探whatsapp流量的事情,我已经知道已经过了ssl.但是我知道有没有办法解密这个ssl流量一旦我不知道什么是whatsapp用于加密的私钥.
那么我怎样才能发现正在使用哪个证书或者是否存在另一种解密这些消息的方法?
我不想读任何人的聊天,我的意图是通过网络的协议消息.要理解,进行逆向工程并为个人工作目的详细说明一个简单的JAVA api.
我正在使用wireshark来读取ssl流量.

您可以使用可生成虚假SSL证书的代理软件尝试中间人攻击,但它并不总是有效.其中一些应用程序使用证书固定来防止这种类型的攻击.
HTTP代理:
http ://fiddler2.com/get-fiddler
该软件会生成一个明显的假证书,如果应用允许,您可以接受.
证书固定:https:
//security.stackexchange.com/questions/29988/what-is-certificate-pinning
除非您控制服务器(RSA 身份验证套件的私钥、服务器应用程序或程序内存)或客户端(应用程序或内存)(好吧,或者两者都协商弱密码,但这是另一个主题),否则您无法解密消息
对于服务器和客户端来说,最简单但最具侵入性且易于发现的方法:ssl/tls 中间人与假证书。由于这会更改客户端应用程序看到的服务器证书,因此客户端应用程序可能会拒绝连接(证书固定、硬固定)。如果没有,对您有好处,您可以控制服务器,可以访问协商的密钥。
为什么? 客户端和服务器都协商一个共享的主密钥,从中派生出一组客户端和服务器会话密钥(使用相应 rfc 中指定的 tls prf,例如 rfc2246 - tls1.0)。
也就是说,如果您不想或不能干扰服务器并且您可以访问客户端进程,您可以以某种方式找到一种方法从内存中提取主密钥并重新计算客户端/服务器会话密钥,如rfc。提取可以通过调试应用程序、搜索内存工件或修补它并随后解密协议消息来完成。请注意,主密钥会时不时地重新生成,因此您还必须跟踪导致主密钥协商的客户端问候(客户端随机)或确切的时间,以便允许wireshark将密钥与重新协商进行匹配。密钥仅对此客户端会话有效,您可以解密不限于RSA 身份验证的密码,因为主密钥是双方在 tls 密钥协商完成后达成一致的最终密钥。
一旦您获得了主密钥并将其映射到客户端 hellos,您就可以将其以nss keylog 格式输入到wireshark中。
以下是如何在内存中查找 master_key 的示例: pymemscrape是一个 PoC,演示了如何从进程内存映像中查找 master_key。