如何为 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 响应错误状态的使用

django:DetailView 如何为两个模型工作或基于类的视图如何为两个模型工作?

如何为特定目录或文件启用特定 gcc 警告? [复制]

如何为使用 AJAX 获取的页面或内容添加书签?

如何为应用程序创建计算机或脚本语言?