Skip to content

双向认证(mTLS) ​

🤝 服务器校验客户端证书,r0capture 可导出客户端证书。

什么是双向认证 ​

普通 TLS:只客户端校验服务端证书。双向认证(mutual TLS):服务器也校验客户端证书——客户端必须出示自己的证书,服务器才认可。

常见于银行、企业内网、高安全 App:用客户端证书做身份证明,比 token 更强。

r0capture 如何抓双向认证流量 ​

双向认证的流量仍是 TLS,仍走 SSL_read/SSL_write,r0capture 照样抓到明文。额外地,r0capture 能导出客户端证书。

客户端证书导出 ​

r0capture hook KeyStore$PrivateKeyEntry.getPrivateKey / getCertificateChain,在 App 取私钥时顺便把私钥+证书打包成 p12 导出到 /sdcard/Download/。详见 客户端证书导出 hook。

导出后的用途 ​

  • 用 keystore-explorer 查看证书内容
  • 导入 mitmproxy/Burp,做中间人代理时复用该客户端证书与服务器握手
  • 分析 App 的证书绑定逻辑

前提 ​

  • 必须 Spawn 模式(attach 太晚,证书可能已被取走)
  • 必须手动给 App 存储卡读写权限
  • 只有配置了客户端证书的 App 才会触发(不是所有 App 都有)

相关文档 ​

基于 VitePress 构建 · 教学用途