繁体   English   中英

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

[英]Uniquely identify SSL Handshake in iOS app

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

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

标识SSL握手。

  1. 这是在SSL握手期间唯一被调用的方法吗?
  2. 是否在每次SSL握手时可靠地调用此方法(即无假否定)
  3. 在SSL握手期间调用此方法(即无误报)吗?

ESP。 关于3),我很惊讶地看到它实际上在大约2分钟后再次被调用,而不是在10分钟后在其他地方(参见上面的链接)指定的位置。

多谢你们!

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

  1. 是否在每次SSL握手时可靠地调用此方法(即无假否定)

仅在完整的握手( https://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_handshake )上调用,而不会恢复握手( https://en.wikipedia.org/wiki/Transport_Layer_Security#Resumed_TLS_handshake

  1. 仅在SSL握手期间调用此方法(即无误报)吗?

从经验上讲,是的。 当然,我不能保证,但是似乎可以肯定。 之所以调用它的次数比预期的多,是因为端点不同(同一域的多个IP,都启动了自己的TLS会话)。

  1. 我不确定“仅”的含义,但此时调用的是NSURLConnectionDelegate方法

  2. 正如Thomas所指出的,没有。

  3. 否。只要有身份验证挑战,就可以调用它。 例如对于BasicAuth。

请注意,在当前代码中,强烈建议通过NSURLConnection来使用NSURLSession (我相信所有NSURLConnection现在都已弃用,尽管我没有检查过。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM