TLS V 1.1和TLS V 1.2 iOS问题

时间:2017-03-16 19:43:22

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

几个问题:

  1. 如果我的服务器已经运行TLS1.2,是否还需要将NSAppTransportSecurity功能添加到我的info.plist中?如果是,为什么?不应该所有苹果设备runniNG iOS9或> iOS10.11版本都可以使用TLS1.2设置吗?

  2. 什么是前方保密?为什么我需要为特定域启用或禁用它?

  3. 什么是密码套装?

1 个答案:

答案 0 :(得分:2)

  1. 仅当您的服务器不支持至少TLS 1.2时,才需要Info.plist中的Min TLS版本。如果您的服务器是TLS 1.2,则无需在Info.plist中添加例外。但是,ATS要求不仅仅是TLS版本(请参阅useyourloaf.com article,特别是“不仅仅是HTTPS”部分)

  2. 前向保密是您的服务器安全性的一项功能,可确保如果您的密钥被泄露,任何过去捕获和存储的流量将无法被批量解密。某些服务器由于正当理由不支持它,因此Apple允许您在ATS例外中添加例外,而无需在提交应用商店时提出正当理由。

  3. 密码套件是用于协商安全设置的身份验证,加密,消息身份验证代码(MAC)和密钥交换算法的组合。 (来自Wikipedia)。基本上它是使服务器加密工作的部分的组合。

  4. 如果您不确定您与服务器的连接是否会出现ATS问题,您只需在iOS 10设备上运行您的应用程序(我也会使用iOS 9设备,因为两者之间存在差异一些场景)。如果连接因ATS而失败,您将需要进行一些服务器更改,或者向Info.plist添加例外。

    或者您可以在Mac终端上运行以下命令:nscurl --ats-diagnostics <url>它将在您的服务器上运行一整套ATS检查并报告任何故障。失败通常意味着您需要添加ATS异常或解决服务器上的故障。

    有关ATS故障排除和诊断的更多信息,再次this article是一个很好的资源。它讨论了我上面提到的一些事情,以及启用CFNETWORK_DIAGNOSTICS日志记录的更多细节。

相关问题