0

有没有办法明确指定您希望URLSession客户在建立安全连接时尝试和使用的密码套件集?

我知道字典中有NSExceptionRequiresForwardSecrecy键,NSAppTransportSecurity但这似乎不是我需要的。

我基本上只是希望能够告诉客户端通知服务器它只愿意使用以下密码套件:

TLS_RSA_WITH_RC4_128_SHA,
TLS_RSA_WITH_3DES_EDE_CBC_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_256_CBC_SHA,
TLS_RSA_WITH_AES_128_GCM_SHA256,
TLS_RSA_WITH_AES_256_GCM_SHA384,

这样我就可以解密客户端和服务器并与之通信的 HTTP/2 流量。

4

1 回答 1

0

据我所知,没有办法在这个NSURLSession级别上做到这一点。当然,您可以编写基于安全传输 API 的代码,但是 AFAIK 没有简单的方法来NSURLSession使用自定义底层套接字。(你也许可以使用 CFHTTPMessage 和朋友让它比自己编写一个完整的 HTTP 堆栈稍微不那么可怕,但它仍然不会很漂亮。)

话虽如此,如果您使用的是 HTTPS 代理(例如 Charles 代理),它应该能够指定支持哪些密码套件并让您 MitM 连接,而无需在应用程序本身中使用任何类型的自定义代码。

如果这不能满足您的需求,我会鼓励您在 bugreport.apple.com 提交增强请求,并解释您正在尝试做什么以及为什么。他们可能会提出一些其他的选择。

于 2016-11-08T07:26:40.363 回答