【问题标题】:iOS app communicating with https only and Apple Transport Security ImpactiOS 应用程序仅与 https 通信和 Apple 传输安全影响
【发布时间】:2016-02-03 16:27:27
【问题描述】:

我的问题与 Apple Transport Security (ATS) 有关,它对我的​​配置有影响。我很困惑如果我不遵守会发生什么。

我有一个 iOS 应用程序,它与服务器和一个仅强制执行 https 连接的 API 通信,但同时我有 TLS1.0 和 SHA256 和密码套件,我的配置没有启用前向保密。

如果我随后通过以下方式绕过 ATS:

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

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

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

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

换句话说,我是否必须立即升级我的服务器以支持 TLS1.2、前向保密和其他 ATS 要求?假设我要使用 iOS 9 和最新的 XCode 更新我的应用程序。

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

【问题讨论】:

    标签: ios https tls1.2


    【解决方案1】:

    您不必立即升级您的服务器。您也不必完全关闭 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 将帮助您弄清楚您真正需要指定什么才能与您的服务器通信。

    【讨论】:

      猜你喜欢
      • 2012-07-15
      • 2016-06-07
      • 2016-01-05
      • 2018-10-03
      • 1970-01-01
      • 2016-09-19
      • 2016-11-11
      • 1970-01-01
      • 2017-03-09
      相关资源
      最近更新 更多