【问题标题】:Why some iphone apps won't finish ssl handshake with Charles Proxy?为什么某些 iphone 应用程序无法完成与 Charles Proxy 的 ssl 握手?
【发布时间】:2015-10-16 10:53:35
【问题描述】:

我正在使用 Charles Proxy 查看来自我的 iphone 的所有流量。我的 iphone 上安装了 ssl 证书/配置文件,我可以看到很多 ssl 加密的流量。但是,某些应用程序似乎没有完成 ssl 握手。

错误是:“SSLHandshake:握手期间远程主机关闭连接”,然后 Charles Proxy 建议将应用程序配置为信任 Charles 根证书。当我将配置文件安装到我的 iPhone 上时,我以为我做到了?

对此/解决方法的任何解释?

【问题讨论】:

标签: ios iphone ssl proxy reverse-engineering


【解决方案1】:

是的,SSL 固定是一种可能性。尽管从 iOS 10.3 开始,您必须采取额外的步骤来信任查尔斯根证书他们的网站上目前没有记录 编辑:此信息现在位于 iOS 设备下:https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

Settings > General > About > Certificate Trust Testings

来源:https://www.neglectedpotential.com/2017/04/trusting-custom-root-certificates-on-ios-10-3/

【讨论】:

【解决方案2】:

有些应用程序不仅仅期望系统上的一个受信任 CA 签署的证书,而是期望单个特定证书或包含特定公钥的证书。这称为证书/公钥固定。对于此应用程序,如果您在系统上将 Charles Proxy 的 CA 配置为受信任的,它将无法工作,因为他们不会使用此 CA。

对此/解决方法的任何解释?

如果应用程序构建为仅信任单个证书/公钥,并且从不信任某些东西,因为它是由本地受信任的 CA 签名的,那么您将需要原始证书及其私钥来进行 SSL 拦截。由于您没有这些,因此无法进行 SSL 拦截。

【讨论】:

  • 真可惜。我想我在尝试对 iOS 应用程序进行逆向工程时遇到了同样的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-22
  • 1970-01-01
  • 2022-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多