APP基础功能的配置管理之ATS

一、TLS的历史

1994年,NetScape公司设计了SSL协议(Secure Sockets Layer)的1.0版,但是未发布。
1995年,NetScape公司发布SSL 2.0版,很快发现有严重漏洞。
1996年,SSL 3.0版问世,得到大规模应用。
1999年,互联网标准化组织ISOC接替NetScape公司,发布了SSL的升级版TLS(Transport Layer Security) 1.0版。
2006年和2008年,TLS进行了两次升级,分别为TLS 1.1版和TLS 1.2版。最新的变动是2011年TLS 1.2的修订版

二、Xcode中info.plist相关字段含义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoadsInMedia</key>
<false/>
<key>NSAllowsLocalNetworking</key>
<false/>
<key>NSAllowsArbitraryLoads</key>
<false/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<false/>
<key>NSExceptionDomains</key>
<dict>
<key>www.app.youCompany.cn</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionMinimumTLSVersion</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<true/>
<key>NSRequiresCertificateTransparency</key>
<true/>
</dict>
</dict>
</dict>

NSAllowsArbitraryLoads : 默认为NO。如果设置为YES,将解除ATS限制,将会引发苹果的审查。一般设置为NO,然后通过下面的NSExceptionDomains去添加白名单(或者叫例外)。

NSAllowsArbitraryLoadsInMedia : 默认为NO。如果设置为YES,将解除AVFoundation访问媒体内容时的ATS限制。

NSAllowsArbitraryLoadsInWebContent : 默认为NO。如果设置为YES,将解除网页访问时的ATS限制。

NSAllowsLocalNetworking: 默认为NO。如果设置为YES,将解除访问本地资源时的ATS限制。

NSExceptionDomains : 添加例外

NSIncludesSubdomains : 默认为NO。如果设置为YES,当前域名的 ATS 策略适用于其所有子域名。

NSExceptionAllowsInsecureHTTPLoads: 默认为NO。如果设置为YES,可以同时通过 HTTP 和 HTTPS 访问当前域名。(将会引发苹果的审查,上线时需要说明原因)

NSExceptionMinimumTLSVersion: string类型,可以设置 TLS 最低版本。(因为低版本有安全漏洞,将会引发苹果的审查,上线时需要说明原因)

NSExceptionRequiresForwardSecrecy: 默认为YES。如果设置为NO,允许针对当前域名使用不支持正向保密的 TLS 加密算法。

NSRequiresCertificateTransparency: 默认为NO。如果设置为YES,将验证域名服务器证书的Certificate Transparency时间戳 。

提交审核说明(举例):

  • 必须连接由其他机构控制的服务器,其还不支持安全连接。
  • 必须通过 web 展示来源不一的各种网络内容,但又不能完全使用NSAllowsArbitraryLoadsInWebContent所管理的类。
  • 必须支持那些还未升级至可使用安全连接,不得不通过公共域名访问网络的设备。
1
后记:因最近公司需要我们整理一些自己在工作中用到的基础知识,特此整理搜集了一些笔记,放入简书供大家学习探讨。

相关文章:
APP基础功能的配置管理之URL Scheme和白名单
APP基础功能的配置管理之屏幕旋转控制
APP基础功能的配置管理之系统权限控制

坚持原创技术分享,您的支持将鼓励我继续创作!