簡體   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