iOS上的SSL固定 - NSURLConnection

时间:2015-11-03 13:45:17

标签: ios caching ssl pinning

我在iOS应用上实施固定SSL证书时遇到了问题。我们目前正在使用NSURLConnection代理身份验证质询。这一切都很好,并在应用程序的初始登录时调用,确保我们连接到我们的服务器。

我们知道TLS缓存,其中固定委托方法( willSendRequestForAuthenticationChallenge )在10分钟内不再被调用。这不是一个问题,因为我们只需要在登录时检查证书,尽管需要更频繁。我们向Apple提出了一张支持票,并收到回复,确认TLS缓存意味着只会定期调用固定委托方法,但加密密钥交换会阻止MITM代理攻击在呼叫之间发生。

听起来不错,但事实并非如此。这是我们发现的 - 如果我们在启动时正常登录我们的应用程序,则会调用固定代理。然后我们对应用程序进行后台处理,并将iPhone连接到运行Burp Suite的macbook上的代理服务器(此时iPhone上已经安装了服务器信任证书)。如果我们然后前景应用程序,注销并再次重新登录,则不会调用willSendRequestForAuthenticationChallenge,即使TLS会话此时应该无效。

我已尝试在请求中指定不同的缓存策略,但似乎没有任何区别。我无法理解为什么在添加MITM代理时不会再次调用该代理 - 任何建议都会非常感激。

0 个答案:

没有答案