如何在iOS应用中启用TLS 1.2,1.1,1.0和SSL?

时间:2016-05-19 10:48:08

标签: ios tls1.2 app-transport-security

我的问题与Apple Transport Security(ATS)有关,我太困惑了。

我想在我的swift应用程序中支持所有协议(所有版本的TLS和SSL)。如果我将NSAllowsArbitraryLoads更改为false,默认情况下app是否适用于所有协议?或者我是否必须在配置中指定域并添加NSExceptionMinimumTLSVersion?

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <false/>
     <key>NSExceptionDomains</key>
<dict>
    <key>your.servers.domain.here</key>
    <dict>
        <key>NSIncludesSubdomains</key>
        <true/>
        <key>NSExceptionRequiresForwardSecrecy</key>
        <false/>
        <key>NSExceptionMinimumTLSVersion</key>
        <string>TLSv1.0</string>
    </dict>
</dict>

如何检查我的应用是否正在与服务器通信?

2 个答案:

答案 0 :(得分:3)

您想阅读https://developer.apple.com/library/mac/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW33

简而言之,您需要指定NSExceptionMinimumTLSVersion以支持TLS1.0及更高版本; 1.2+是默认值。

为什么要尝试支持较旧的,安全性较低的协议呢?

我不知道如何检查正在使用的协议,但如果您可以将服务器配置为仅使用TLS 1.0,那么您的应用只会连接TLSv1.0密钥地点;这很容易测试。

答案 1 :(得分:2)

安全地连接到网址

通过TLS连接到URL是微不足道的。当您创建NSURLRequest对象以提供给initWithRequest:delegate:方法时,请将https指定为URL的方案而不是http。该连接自动使用TLS,无需额外配置。

https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/SecureNetworking/SecureNetworking.html