我有一个c++应用程序,它与自己的服务器有SSL/TLS通信,我没有任何访问该服务器的权限。我想知道它从我的电脑发送到服务器的是什么。
我试过打嗝和小提琴作为人在中间,但它没有工作。应用程序不支持代理,所以我尝试路由流量使用代理打嗝和提琴,但它没有工作。
所以我想到了这些文章https://isc.sans.edu/forums/diary/Psst+Your+Browser+Knows+All+Your+Secrets+/16415和http://ask.wireshark.org/questions/4229/follow-ssl-stream-using-master-key-and-session-id
我只是需要知道,我怎么能找到主密钥和会话id解密SSL/TLS流量
这取决于所使用的TLS密码套件。如果密码套件使用前向保密(DHE),则不能解密流。如果它使用RSA加密,那么您至少需要服务器的私钥。如果它还使用客户端身份验证,那么您还需要客户端的私钥。如果它使用对称加密,则需要其中任何一个的对称(主)密钥。
但是如果您确实有一个c++应用程序,我会简单地将日志记录添加到该应用程序(在最低级别)。
您可以在x86 windows上使用以下替代
STRACE - http://blogs.msdn.com/b/emmanubo/archive/2007/06/04/introduction-to-strace-httpreplay-support-tools.aspx
SOCKTRC如果这个应用程序是在windows checkouthttp://blogs.msdn.com/b/emmanubo/archive/2007/08/03/socktrc-tool.aspx
HTTPREPLAY -通常用于浏览器,但这里可以用于查看UI中的响应