如何为 NSURLconnection 或 NSURLSession 禁用 sslv3
Posted
技术标签:
【中文标题】如何为 NSURLconnection 或 NSURLSession 禁用 sslv3【英文标题】:How to disable sslv3 for NSURLconnection or NSURLSession 【发布时间】:2014-10-30 11:34:43 【问题描述】:关于最近 SSLV3 的安全威胁,https://isc.sans.edu/forums/diary/OpenSSL+SSLv3+POODLE+Vulnerability+Official+Release/18827
如何使 NSURLconnection 通信免受这种威胁?
我可以在 ios 中以编程方式禁用 sslv3 吗?
在 iOS 中有什么方法可以让我从服务器 url 获取支持的安全协议列表?
【问题讨论】:
我已尝试将 TLSMinimumSupportedProtocol 设置为 kTLSProtocol12,但它仍在与 sslv3 服务器通信。 【参考方案1】:我已经找到了将其设置为 NSURLSession 的方法,但仍在为 NSURLConnection 苦苦挣扎。
NSURLSessionConfiguration *config =
[NSURLSessionConfiguration defaultSessionConfiguration];
config.TLSMaximumSupportedProtocol = kTLSProtocol12;
config.TLSMinimumSupportedProtocol = kTLSProtocol12
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig];
【讨论】:
TLSMinimumSupportedProtocol 和 SSL Protocol Constants【参考方案2】:根据您的连接方式,尝试使用 kCFStreamSocketSecurityLevelTLSv1 而不是 kCFStreamSocketSecurityLevelNegotiatedSSL。
【讨论】:
是否可以将此设置与 NSURLConnection 一起使用。或者我需要为此实现套接字 API。 iOS 中是否有提供 GET/POST 请求支持的 socketconnection 库。以上是关于如何为 NSURLconnection 或 NSURLSession 禁用 sslv3的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 7.3:NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9802)
测试 NSURLConnection 与 HTTP 响应错误状态的使用