售前咨询
技术支持
渠道合作

苹果iOS启用ATS安全标准,迈向信息安全时代

什么是ATS?

App Transport Security,即ATS,是苹果公司在IOS 9和Mac OS X 10.11(El Capitan)操作系统中推出的一个新的安全标准。尽管苹果公司没有提到watch OS和TV OS,我们可以推测App Transport Security也同样适用于watch OS 2和tv OS。App Transport Security的目标是提高苹果IOS及Mac操作系统的安全性以及在此操作系统上运行的任何应用的安全性。

苹果公司强调每个开发者都应该保证客户的数据安全,尽管那些数据可能看起来并不是很重要或者很敏感。

基于HTTP传输数据的网络请求都是明文传输。很明显,明文传输会引起相当大的安全风险。

App Transport Security通过强力推行一系列的安全标准来积极地促进安全性,最重要的一个就是要求网络请求必须在一个安全的链路上传输。开启App Transport Security后,网络传输自动通过HTTPS传输而不是HTTP。

还有一系列其他的要求来进一步提升安全性能。例如,App Transport Security要求TLS(Transport Layer Security)是1.2版本或者更高。TLS是SSL的改进和替代,它是一系列加密协议的集合用来加强在网络连接上的安全性。

ATS安全标准的要求

ATS(App Transport Security)是为了提高App与服务器之间安全传输数据一个特性,这个特性从IOS 9和Mac OS X 10.11开始使用,它默认需要满足以下几个条件:

服务器必须启用HTTPS,且TLS版本至少是1.2版本连接加密只允许几种先进的加密算法 证书必须使用SHA256或者更好的哈希算法进行签名,要么是2048位或者更长的RSA密钥,要么就是256位或更长的ECC密钥。

如果想了解哪几种加密算法是被允许的,详情请见官方文档App Transport Security Technote(https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistK

eyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW57)

ATS带来的影响

苹果公司要求,所有新上线或更新的应用,都应该支持ATS安全标准。

苹果公司会在开发商提交iTunes Connect/App Store审核时核应用对ATS的支持。对于无法完全支持ATS,需要在应用内连接非ATS安全标准的服务,可以添加例外,但在审核时需要提供合理的理由。

对于大部分公司而言,采用HTTPS/TLS并使用安全的服务器证书已是目前的标准配备。启用ATS安全标准,一般只需要排查服务器和客户端的配置。

测试与排查/服务端排查

我们需要借助第三方工具来测试服务端是否支持ATS。

首先,我们要取得客户端直接连接的服务端域名及端口,例如trustauth.cn,端口443,即HTTPS默认端口。测试的对象一般是行里的Web服务器、反向代理机或SSL服务器,无需直接对应用服务器进行测试。

针对公网可访问的生产环境地址,我们建议使用QUALYS SSL Labs的在线监测工具。操作步骤

如下:

访问QUALYS SSL Labs的网址:https://www.ssllabs.com/ssltest/index.html

输入域名和端口,如trustauth.cn。默认端口443可省略。并开始测试。

等待几分钟后,就会出现测试结果。

Summary部分显示的是总体评分,显示绿色的A即为安全。如果评分低于A,则需要具体分析减分项。

在Authentication部分,需要确认如下内容:

–Key中的算法为RSA、秘钥长度大于等于2048位,或者算法为ECC、秘钥长度

大于等于256位。

–Signature algorithm中的签名算法为下列支持的算法之一:

SHA256WithRSA

SHA384WithRSA

SHA512WithRSA

ECDSAWithSHA256

ECDSAWithSHA384

ECDSAWithSHA512

在Configuration部分,需要确认如下内容:

–Protocols下,TLS 1.2必须为Yes,TLS 1.0、1.1可以为Yes(为了兼容旧设备),

SSL 2/3必须为No。

–Cipher Suites必须包含如下算法中的一个或多个:

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

确认过以上内容,即表示服务端符合ATS安全标准。

客户端排查

客户端从iOS 9 SDK起默认开启ATS,一般无需进行代码改造。需要注意如下几点:

客户端需要以域名的方式连接服务器,IP地址形式的连接,是不符合ATS要求的。

客户端如果需要访问第三方服务器,或者内嵌了第三方提供的SDK,则需要确认第三方的服务端开启了ATS支持。

客户端工程中的Info.plist中,不能包含NSAllowsArbitraryLoads键及其他NSAllowsArbitrary*键。

注意以上几点,即可保证客户端支持ATS。

有时,客户端内嵌入了第三方的SDK,不容易得知第三方服务是否开启ATS支持。检查的方式是,在开启确认客户端ATS支持后,进行功能测试,确认第三方提供的功能在ATS开启后还能正常运转。

如果第三方提供的功能在ATS模式下无法正常运转,则表明其不支持ATS。如果必须使用这类功能,则需要给客户端设置ATS例外。

在Info.plist中添加例外键值对,含义如下:

NS Exception Domains为特定域名设置例外,NS Allows Arbitrary Loads In Web Content为Web View设置例外,允许UI Web View访问不支持ATS的服务器。仅IOS 10有效。NS Allows Arbitrary Loads In Media允许加载不支持ATS的媒体内容,音频、视频等等.

注意,在添加了例外之后,会触发额外的审核,请在提交App Store审核时附上合理的原因,否则会导致审核失败。

具体的配置信息,可参照苹果公司官方开发文档:

https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKey

Reference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW35

常见问题

1.是否需要采购额外硬件,才能开启ATS?

不用。银行系统中常用的Web服务器/反向代理服务器,如Apache Web Server、Nginx、HAProxy等均支持ATS所需的安全技术,常用的VeriSign、Symantec签发的服务器证书,一般也符合要求,无需另行采购硬件。对于SSL服务器等硬件,需要和厂商确认是否支持及如何配置。

2.应用服务器及后台应用是否需要改造?

不用。部署在内网的应用服务器无需进行改造,只要其前方的Web服务器或反向代理经过正确配置,符合ATS要求即可。

3.如果在2017年1月前未完成ATS相关改造,我的现有应用是否会受到影响?

已经在App Store上线的应用,还可以继续使用。

4.如果在2017年1月前未完成ATS相关改造,还可以提交新的版本吗?

不可以。在iTunes Connect/App Store审核过程中,会核查ATS支持情况,对于不支持的应用会拒绝上线。

5.既然可以添加ATS例外,把银行的生产服务器添加进去是否可以?

不可以。任何添加的ATS例外,都会触发额外的审核,需要附上合理的理由,否则会被拒绝上线。

 

 

上一篇:

下一篇:

相关新闻

 

领取优惠
免费预约

申请试用SSL证书

提交成功!

咨询客服