苹果ATS介绍
背景与介绍
6月14日在WWDC 2016开发者大会上,苹果宣布了一个最后期限:自2017年1月1日起,所有提交到 苹果App Store 的应用强制开启ATS(App Transport Security)安全功能。启用ATS后,苹果设备会屏蔽明文HTTP加载,强制App通过HTTPS访问网络,来达到通过传输加密保障用户数据安全的目的。
ATS在 iOS 9 中被默认开启,开发者也可以自由选择使用 NSAllowsArbitraryLoads来关闭 ATS,继续通过HTTP连接传输数据。但从 2017 年起,所有提交到 App Store 的App必须强制开启 ATS,否则将不能通过App Store的审核,导致应用无法在苹果设备上正常使用。
ATS是iOS9和OS X ElCapitan的一个新特性,开启该功能后,ATS对使用NSURLConnection, CFURL 或NSURLSession 等 APIs 进行的网络请求默认强制使用HTTPS加密传输,目标是提高Apple操作系统以及应用程序的安全性。部署在内网的DNS无需进行改造,只要其前方的Web服务器或反向代理经过正确配置,符合ATS要求即可。
为什么强制使用HTTPS
从根本上讲,HTTP是明文协议,通过该协议传输的数据容易被窃听、篡改和冒充,目前它已经是非常不安全的传输协议了。HTTPS是加密协议,就是在HTTP的基础上开启一条SSL加密通道,让原先明文“裸奔”的数据,从加密通道中密文传输,保证了数据传输的安全性。
目前,全球互联网正在进行从HTTP到HTTPS的大迁移,苹果一向非常关注用户隐私安全,在执行安全策略方面,态度也是非常强硬,实施强制HTTPS加密势在必行。
苹果ATS安全设置的要求
1.服务器必须支持传输层安全(TLS)协议1.2以上版本;
2.通讯加密套件仅限支持完全正向加密的套件;
3.证书必须使用SHA256或更高的哈希算法签名;以及2048位以上RSA密钥或256位以上ECC密钥。
不满足上述三个条件,ATS会拒绝连接。