了解HTTPS的原理
掌握解密https的方法
SSL (Secure Socket Layer)安全套接字层协议;TLS(Transport Layer Security)传输层安全协议。SSL/TLS是保护计算机网络通讯安全的一类加密协议,它们在传输层上给原先非安全的应用层协议提供加密保护,如非安全的HTTP协议即可被SSL/TLS保护形成安全的HTTPS协议。
解密HTTPS流量
先追踪一个解密前的TCP流:tcp.stream eq 1
(在对应的数据包右键追踪流,选择TCP流):
可见SSL层数据是乱码,不可获取到流量具体信息。
Windows或linux环境,配置环境变量SSLKEYLOGFILE=./path/*.log
,浏览器在访问https时会将与网站https建立连接后的会话私钥保存下来。在wireshark中,通过 编辑 - 首选项 - 协议(protocols) - SSL - (Pre)-Master-Secret log filename 指定SSLKEYLOGFILE文件,即可解密流量(流量包)中的HTTPS流量。
此时,继续看tcp.stream eq 1
这个TCP流:
此时,数据已经可以被解密,分组详情多出了HTTP字段的信息,分组字节流也出现的解密之后的SSL数据(Decrypted SSL Data)。
在某些CTF题目中,给了流量包的情况下,往往会再通过某些信息给一个SSL的私钥文件。同样在wireshark中协议SSL设置:
可以在这里导入私钥,password为保存私钥时指定的加密密码,为了防止私钥丢失被解开。
利用这个方法同样可以解密SSL流量。
这个流量包中,解密之后的流量包含HTTP2.0协议,对应下图HTTP2.0报文格式试一试把: