App Transport Security(应用程序安全传输),简称ATS,是苹果在iOS 9 中首次推出的一项隐私安全保护功能,启用ATS后,它会屏蔽明文HTTP资源加载,强制App通过HTTPS连接网络服务,通过传输加密保障用户数据安全。
ATS在iOS 9 中是默认开启的,但开发者仍然可以选择关闭ATS,让自己的应用通过HTTP 连接传输数据。但从2017年1月1日起,所有提交到App Store 的App必须强制开启ATS。苹果最终明确了这个最后期限,让那些想知道何时必须强制开启ATS的开发者松了一口气,而用户也能明确的知道,他们的苹果App将默认使用安全的HTTPS连接,确保数据安全。
苹果提出的ATS有哪些强制标准呢:
1、强制使用https
2、证书域名和链接地址域名匹配
3、根证书受苹果信任
4、证书在有效期内
5、必须支持TLS1.2
6、加密套件要求:
RSA算法要求使用以下加密套件:
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
DSA算法要求使用以下加密套件:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
如何支持ATS标准:
1、购买苹果信任CA所颁发的证书;
2、部署https网站的web服务器也有一定要求,如下:
Apache,Nginx要求关联的openssl版本在1.0.1+,这样网站才支持TLS1.2,同时您需要对证书相关参数做一定调整:
Apache:
SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL;
Nginx:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL;
Tomcat要求环境 tomcat7+和JDK1.7+,配置参考如下:
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" keystoreFile="keystore/domain.jks" keystorePass="证书密码" clientAuth="false" sslProtocol="TLS" ciphers="TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA" />
IIS要求环境 windows server 2008 R2/IIS 7+,调整方式如下:
下载调整加密套件的工具,官方地址:https://www.nartac.com/Products/IISCrypto/。下载完成后运行程序,点击Best Practice按钮,然后点击Apply按钮,这时系统提醒您重启,点击重启后配置才能生效。