ATS是什么,ATS有什么要求?
为什么要强制开启ATS和HTTPS
HTTP是非常不安全的明文传输协议,任何通过HTTP协议传输的数据都以明文形式在网络中“裸奔”,任何数据都处在被窃听、篡改、冒充这三大风险之中。HTTP不提供任何方式的数据加密,如果攻击者劫持了HTTP流量,就可以直接读懂其中的信息;而且HTTP并不验证服务器身份的真实性,服务器返回的请求容易被篡改或者假冒,而用户根本无法察觉。因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。
HTTPS协议是Http Over SSL,简单来说就是HTTP的安全版本,在HTTP的基础上增加SSL/TLS加密传输协议,通过HTTPS加密传输和身份认证保证了数据传输过程的安全性。在登录网银和电子邮箱时,你会常常看到地址栏的网址显示HTTPS前缀,从而轻松判断这个网页是否采用了HTTPS加密连接。但是在移动应用上,网络连接的安全性就没有那么透明了,用户很难知道App连接网络时使用的是HTTP还是HTTPS。
ATS就是因此而诞生的,ATS要求服务器必须支持传输层安全(TLS)协议1.2以上版本;证书必须使用SHA256或更高的哈希算法签名;必须使用2048位以上RSA密钥或256位以上ECC算法等等,不满足条件的证书,ATS都会拒绝连接。强制开启ATS体现了苹果一贯的隐私保护态度。
ATS简介
App Transport Security,简称 ATS,是苹果在 iOS 9 和 OS X v10.11中首次推出的一项安全功能。在开启 ATS 安全特性之后,它会强制App应用及网页通讯自动通过 HTTPS加密传输连接网络服务, 通过加密App及网页通讯来保障用户数据安全。即 App后台服务器必须部署SSL证书,启用HTTPS加密协议,否则您的App应用将不能通过苹果商店的审核发布,导致App应用无法正常使用。苹果将在2017年1月1日起(现已延期执行),要求所有提交的 App 都支持 App Transport Security 配置,具体影响到 app 所有网络连接,包括图片、API、流媒体等,以及在 WebView 中打开的网页。ATS 会影响“App 发起的网络请求”,HTTP网站在 Safari 浏览器里的正常访问是不会受到影响的。
ATS功能要求
- HTTPS,App后台服务器必须启用HTTPS加密传输数据;
- TLS1.2,后台服务器所有链接必须支持TLS协议1.2或以上版本;
- 哈希算法,SSL证书使用SHA256或者256位或以上的ECC算法签名;
- 密钥,SSL证书使用2048位或以上的RSA密钥;
- 正向保密,加密套件配置要求,支持苹果列出的正向保密列表。
通讯中的加密套件(Ciphers)配置要求,支持以下列出的正向保密列表:
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
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