HTTPS 抓包怎么解密?TLS 密钥自动匹配,抓到即解
HTTPS 抓包解密在老鹰抓包里是自动完成的:抓到的 TLS 流量默认是密文,软件按 TLS client_random 把会话密钥和对应连接自动匹配起来,抓到即解成明文,解密后的请求和响应就显示在原始字节旁边。浏览器、Electron 应用和常见 HTTP(S) 客户端开箱即解;做了证书绑定或自研加密的 App 要多一步。关键条件是:抓包要在连接建立之前就开始。
解密是怎么做到的?
Section titled “解密是怎么做到的?”老鹰抓包把「抓原始字节」和「拿 TLS 密钥」分开进行,再用 TLS client_random 把两者对上,自动拼接。所以不用像 SSLKEYLOGFILE 那样单独导出密钥文件,也不用手动对应连接。
密钥推导按协议版本分别处理:TLS 1.3 使用 HKDF-Expand-Label(见 RFC 8446),TLS 1.2 使用 master secret + PRF(见 RFC 5246)。加密套件自动识别,覆盖 AES-128/256-GCM、ChaCha20-Poly1305 和 AES-CBC。
哪些流量能自动解密?
Section titled “哪些流量能自动解密?”- 浏览器、Electron 应用、常见的 HTTP(S) 客户端:开箱即解,抓到就是明文。
- TLS 1.2 与 TLS 1.3,HTTP/1.1、HTTP/2,以及 HTTP/3(QUIC),都在覆盖范围内。
哪些情况要多一步?
Section titled “哪些情况要多一步?”- App 绑了证书(pinning)、或走自研加密:普通代理会被挡在外面。改用应用层取明文,直接从程序内部拿明文,绑证书也不影响;如果仍想走代理,也可以先绕过 SSL Pinning。
- 需要走代理解密时:在目标上装一次抓包证书,见抓包证书安装。多数抓法(网卡直抓、指定程序、应用层取明文)并不需要装证书。
哪些暂时解不了
Section titled “哪些暂时解不了”少数程序不开放拿密钥的途径。对这些,逐包 / 原始视图仍然能看到加密流量本身,只是暂时看不到明文。应用会针对具体程序标注当前能到什么程度,你不用猜。
HTTPS 解不出来怎么排查?
Section titled “HTTPS 解不出来怎么排查?”- 抓包起得够早吗:密钥是在连接建立时拿到的,要在流量发生之前就开始抓;中途才开抓的连接,可能就解不了。
- 证书装了吗(走代理解密时):确认抓包证书已在目标上受信任,见证书管理与安装。
- 是不是绑了证书:明明装了证书还报错、解不开,多半是 pinning,改用应用层取明文。
- 还不行?见常见问题。
HTTPS 抓包解密一定要装证书吗?
Section titled “HTTPS 抓包解密一定要装证书吗?”不一定。只有走代理抓包解密时才需要在目标上装一次抓包证书;网卡直抓、指定程序、应用层取明文等多数抓法都不需要。
支持 TLS 1.3 吗?
Section titled “支持 TLS 1.3 吗?”支持。TLS 1.3 和 TLS 1.2 都能解密,前者按 HKDF-Expand-Label 推导、后者按 master secret + PRF 推导,加密套件会自动识别。
为什么同一个程序有的连接能解、有的不能?
Section titled “为什么同一个程序有的连接能解、有的不能?”最常见的原因是抓包开始得太晚:密钥在连接建立时获取,抓包开始前就已建立的连接可能无法解密。重新建立连接(例如重启目标程序)后再看。
解不了的流量还能看吗?
Section titled “解不了的流量还能看吗?”能。逐包视图和原始视图仍会显示加密流量本身,只是看不到明文;应用会标注该程序目前能解到什么程度。