TLS V 1.1 和 TLS V 1.2 iOS 问题
TLS V 1.1 and TLS V 1.2 iOS issue
几个问题:
如果我的服务器已经是 运行 TLS1.2,我还需要向我的 info.plist 添加 NSAppTransportSecurity 功能吗?如果是,为什么?不应该所有苹果设备 运行 iOS9 或 >iOS10.11 版本都可以使用 TLS1.2 设置吗?
什么是前向保密?为什么我需要为特定域启用或禁用它?
什么是密码套装?
仅当您的服务器不支持至少 TLS 1.2 时,才需要 Info.plist 中的最小 TLS 版本。如果您的服务器是 TLS 1.2,则无需向 Info.plist 添加例外。但是,ATS 要求远不止 TLS 版本(请参阅 useyourloaf.com article,特别是 "Not Just HTTPS" 部分)
前向保密是服务器安全的一项功能,可确保如果您的密钥被泄露,任何过去捕获和存储的流量都无法被批量解密。有些服务器出于正当理由不支持它,因此 Apple 允许您在 ATS 例外中添加例外,而无需在您提交应用程序商店时提供理由。
密码套件是身份验证、加密、消息身份验证代码 (MAC) 和用于协商安全设置的密钥交换算法的组合。 (来自 Wikipedia)。基本上它是使服务器加密工作的部分的组合。
如果您不确定与服务器的连接是否会出现 ATS 问题,您可以在 iOS 10 设备上 运行 您的应用程序(我会做一个 iOS 9 设备也是如此,因为在某些情况下两者之间存在差异)。如果由于 ATS 导致连接失败,您将需要对服务器进行一些更改,或者向您的 Info.plist 添加例外。
或者您可以 运行 在您的 Mac 终端上执行以下命令:nscurl --ats-diagnostics <url>
它将 运行 在您的服务器上进行全套 ATS 检查并报告任何故障.失败通常意味着您需要添加 ATS 异常或解决服务器上的故障。
有关 ATS 故障排除和诊断的更多信息,this article 也是一个很好的资源。它讨论了我上面所说的一些事情,以及启用更多详细信息 CFNETWORK_DIAGNOSTICS 日志记录。
几个问题:
如果我的服务器已经是 运行 TLS1.2,我还需要向我的 info.plist 添加 NSAppTransportSecurity 功能吗?如果是,为什么?不应该所有苹果设备 运行 iOS9 或 >iOS10.11 版本都可以使用 TLS1.2 设置吗?
什么是前向保密?为什么我需要为特定域启用或禁用它?
什么是密码套装?
仅当您的服务器不支持至少 TLS 1.2 时,才需要 Info.plist 中的最小 TLS 版本。如果您的服务器是 TLS 1.2,则无需向 Info.plist 添加例外。但是,ATS 要求远不止 TLS 版本(请参阅 useyourloaf.com article,特别是 "Not Just HTTPS" 部分)
前向保密是服务器安全的一项功能,可确保如果您的密钥被泄露,任何过去捕获和存储的流量都无法被批量解密。有些服务器出于正当理由不支持它,因此 Apple 允许您在 ATS 例外中添加例外,而无需在您提交应用程序商店时提供理由。
密码套件是身份验证、加密、消息身份验证代码 (MAC) 和用于协商安全设置的密钥交换算法的组合。 (来自 Wikipedia)。基本上它是使服务器加密工作的部分的组合。
如果您不确定与服务器的连接是否会出现 ATS 问题,您可以在 iOS 10 设备上 运行 您的应用程序(我会做一个 iOS 9 设备也是如此,因为在某些情况下两者之间存在差异)。如果由于 ATS 导致连接失败,您将需要对服务器进行一些更改,或者向您的 Info.plist 添加例外。
或者您可以 运行 在您的 Mac 终端上执行以下命令:nscurl --ats-diagnostics <url>
它将 运行 在您的服务器上进行全套 ATS 检查并报告任何故障.失败通常意味着您需要添加 ATS 异常或解决服务器上的故障。
有关 ATS 故障排除和诊断的更多信息,this article 也是一个很好的资源。它讨论了我上面所说的一些事情,以及启用更多详细信息 CFNETWORK_DIAGNOSTICS 日志记录。