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相关字段含义

    NSAppTransportSecurity
    
        NSAllowsArbitraryLoadsInMedia
        
        NSAllowsLocalNetworking
        
        NSAllowsArbitraryLoads
        
        NSAllowsArbitraryLoadsInWebContent
        
        NSExceptionDomains
        
            www.app.youCompany.cn
            
                NSIncludesSubdomains
                
                NSExceptionAllowsInsecureHTTPLoads
                
                NSExceptionMinimumTLSVersion
                
                NSExceptionRequiresForwardSecrecy
                
                NSRequiresCertificateTransparency
                
            
        
    

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所管理的类。
  • 必须支持那些还未升级至可使用安全连接,不得不通过公共域名访问网络的设备。
后记:因最近公司需要我们整理一些自己在工作中用到的基础知识,特此整理搜集了一些笔记,放入供大家学习探讨。

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

你可能感兴趣的:(APP基础功能的配置管理之ATS)