【问题标题】:SSL Proxy works with all apps but oneSSL 代理适用于除一个以外的所有应用程序
【发布时间】:2016-04-22 23:39:55
【问题描述】:

我已经成功地在我的主机上设置了 Charles 代理,这样当请求来自浏览器或来自虚拟设备上的大多数 Android 应用程序时,我可以查看来自我的 Android 虚拟设备的 SSL 流量。但是,我看不到来自 one 特定应用程序的 SSL 流量。当该应用发出 SSL 请求时,Charles 中的条目显示为“SSL Handshake: Received fatal alert: handshake_failure”

因为我可以拦截来自其他应用程序的 SSL 流量,所以我认为可能是有问题的应用程序以某种方式忽略了用户接受的根证书。这可能吗?如果是这样,是否可以解决?

【问题讨论】:

    标签: android charles-proxy


    【解决方案1】:

    不工作的应用可能在 SSL 握手期间使用公钥检查(AKA 公钥固定)。这是一种旨在防止中间人攻击的安全机制。我认为在中间设置代理会改变握手期间传递给客户端的证书链,这就是它失败的原因。

    如果您无法检查此应用程序的流量的原因确实是公钥固定 - 恐怕没有解决方法(至少在投入的合理时间内没有解决方法)。该应用需要一个您没有的特定公钥。

    关于公钥固定的更多信息: https://en.wikipedia.org/wiki/HTTP_Public_Key_Pinning https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-07-23
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-09
      • 2020-09-25
      相关资源
      最近更新 更多