什么是ATS (iOS)?

ATS主要作用是:防止不安全的网络连接

从 iOS 9.0 或 macOS 10.11 版本开始,必须使用https才可以连接服务器,否则ATS将拒绝连接,并在控制台打印一下提示。

App Transport Security has blocked a cleartext HTTP (http://) resourceload since it is insecure. Temporary exceptions can be configured viayour app’s Info.plist file.

确保服务器满足ATS最低要求

服务器必须使用受信任的CA签发的证书,主要包括:

  • 具有完整的数字签名,表明证书未被篡改。
  • 证书没有过期。
  • 证书域名与访问域名匹配。
  • 该​​证书必须由证书颁发机构 (CA) 颁发。如iOS 中可用的受信任根证书列表中所示。

ATS 需要的安全检查:

  • 服务器证书必须使用至少 2048 位的 (RSA) 密钥或至少 256 位的椭圆曲线加密 (ECC) 密钥进行签名。
  • 证书必须使用具有至少 256 位(即 SHA-256 或更大)的摘要长度(有时称为指纹)的安全散列算法 2 (SHA-2 )。
  • 连接必须使用传输层安全 (TLS) 协议版本 1.2 或更高版本。
  • 必须使用 AES-128 或 AES-256 对称密码交换数据。
  • 链路必须通过椭圆曲线 Diffie-Hellman Ephemeral (ECDHE) 密钥交换支持完美前向保密 (PFS)。

 

 

https://developer.apple.com/documentation/security/preventing_insecure_network_connections