繁体   English   中英

iOS应用仅与https和Apple Transport Security进行通信

[英]iOS app communicating with https only and Apple Transport Security Impact

我的问题与Apple Transport Security(ATS)有关,并且对我的配置有影响。 我对如果不遵守该怎么办感到困惑。

我有一个iOS应用程序,可与服务器进行通信,并且API仅强制执行https连接,但同时我的TLS1.0带有SHA256和Cipher Suites,并且我的配置未启用任何转发保密功能。

如果然后我继续通过以下方法绕过ATS:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

在ATS文档中令我感到困惑的是:

禁用ATS可以不管HTTP或HTTPS配置如何都进行连接,允许连接到具有较低TLS版本的服务器,并允许使用不支持前向保密(FS)的密码套件进行连接。

这是否意味着我的应用程序和服务器仍将继续通过https进行通信而没有副作用? ,连接不会仅仅因为我的服务器始终强制执行https但目前不符合ATS而失败。

换句话说,我是否必须立即升级服务器以支持TLS1.2,并具有Forward Secrecy和其他ATS要求? 假设我将使用iOS 9和最新的XCode对我的应用程序进行更新。

另一方面,我知道我应该采用ATS,但是目前时间和资源都很有限。

您不必立即升级服务器。 您也不必完全关闭ATS。

相反,您可以通过info.plist中的类似内容告诉ATS您的服务器使用TLSv1,并且不支持FS:

<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>
</dict>

nscurl --ats-diagnostics --verbose $YOUR_API_URL将帮助您弄清楚与服务器对话时真正需要指定的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM