在iOS应用中唯一标识SSL握手

时间:2017-04-29 10:06:09

标签: ios ssl

根据https://stackoverflow.com/a/13373392/5945317,NSURLConnectionDelegate方法

- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge

标识SSL握手。

  1. 这是在SSL握手期间调用的唯一方法吗?
  2. 是在每次SSL握手时可靠地调用此方法(即没有 假阴性)
  3. 是在SSL期间调用此方法 握手(即没有误报)
  4. ESP。关于3),我很惊讶地看到它在大约2分钟之后再次被调用,而不是在其他地方(见上面的链接)在10分钟后被指定。

    谢谢你们!

2 个答案:

答案 0 :(得分:0)

在查看网络层并使用模拟器后,我可以报告这么多:

  
      
  1. 是在每次SSL握手时可靠地调用此方法(即没有错误否定)
  2.   

它仅在完全握手时被调用(https://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_handshake),而不是恢复握手(https://en.wikipedia.org/wiki/Transport_Layer_Security#Resumed_TLS_handshake

  
      
  1. 此方法仅在SSL握手期间调用(即没有误报)
  2.   

凭经验说,是的。当然,我无法保证,但似乎非常肯定。它被调用的频率高于预期的原因是由于不同的端点(同一个域的几个IP,都开始了自己的TLS会话)。

答案 1 :(得分:0)

  1. 我不确定你的意思仅仅是""但是那时调用的是NSURLConnectionDelegate方法

  2. 正如托马斯所说,没有。

  3. 没有。只要存在身份验证质询,就会调用它。例如,对于BasicAuth。

  4. 请注意,NSURLSession强制推荐当前代码NSURLConnection。 (我相信所有NSURLConnection现已弃用,但我还没有检查过。)