【发布时间】:2016-11-11 09:11:03
【问题描述】:
我正在 iOS 中创建一个需要与我的 TLS-1.2 兼容服务器通信的应用程序。 iOS 9 之后,引入了 ATS(应用程序传输安全),默认启用此功能。我无法再使用 CharlesProxy 轻松查看我的数据包了。
搜索后发现我们可以在我的应用程序的info.plist临时禁用它以查看流量。
<key>NSAppTransportSecurity</key>
<dict>
<!--Connect to anything (for dev env only)-->
<key>NSAllowsArbitraryLoads</key>
如果我理解正确的话,ATS 是用于数据加密而不是 MITM。我们需要某种 SSL pinning 来实现 MITM 预防。我的问题来了,为什么不修改info.plist就看不到charles代理上的流量? (虽然我可以看到来自其他应用程序的其他 https 调用)
【问题讨论】:
-
MITM 使用 https 并不容易。对于 Charles Proxy,您作为计算机管理员允许 Charles Proxy 安装证书,这允许 Charles Proxy https 会话被接受。固定不会允许这样做,因为不仅允许任何有效证书,而且属于您期望的服务器的证书。
标签: ios tls1.2 app-transport-security