TLS V 1.1 and TLS V 1.2 iOS issue



>几个问题:

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

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

  3. 什么是密码套装?

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

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

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

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

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

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

最新更新