小贴士:SSL协议的定义SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。正文前不久从网上得到一个https会话数据包文件https.pcap,用32位的wireshark打开(64位的会增加逆向难度,因为用到寄存器传递参数)如图:就这么多数据包,非常适合用来研究ssl协议的实现。 wireshark只要导入密钥是可以自动解密出明文的。点开Edit菜单下的Preferences项,再点开左侧的Protocols里面的SSL,新建一个SSL解密任务。确定之后,就可以看到明文数据了。原来的第24帧就多了一个http协议块,25帧也是如此,这就是wireshark的ssl解密功能。那么它是怎么实现的呢?这需要调试才能搞清楚。我调试的版本是Wireshark_win32_V1.12.4_setup.1427188207.exe 大小22.4 MB (23,588,136 bytes)费了九牛二虎之力定位到了libwireshark.dll文件,所有的ssl加解密都是在这模块中实现的。贴几张调试截图,这些断点都是比较关键的。通过调试,终于知道了ssl解密的算法,写了个python脚本,实现了wireshark的ssl解密核心算法。结果如图:-----B
...
继续阅读
(76)