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体现了苹果一贯的隐私保护态度。


https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW59

Requirements for Connecting Using ATS

With App Transport Security (ATS) fully enabled, the system requires that your app’s HTTP connections use HTTPS and that they satisfy the following security requirements:

  • The X.509 digital server certificate must meet at least one of the following trust requirements:

    • Issued by a certificate authority (CA) whose root certificate is incorporated into the operating system

    • Issued by a trusted root CA and installed by the user or a system administrator

  • The negotiated Transport Layer Security (TLS) version must be TLS 1.2. Attempts to connect without TLS/SSL protection, or with an older version of TLS/SSL, are denied by default.

  • The connection must use either the AES-128 or AES-256 symmetric cipher. The negotiated TLS connection cipher suite must support perfect forward secrecy (PFS) through Elliptic Curve Diffie-Hellman Ephemeral (ECDHE) key exchange, and must be one of the following:

    • 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

  • The leaf server certificate must be signed with one of the following types of keys:

    • Rivest-Shamir-Adleman (RSA) key with a length of at least 2048 bits

    • Elliptic-Curve Cryptography (ECC) key with a size of at least 256 bits

    In addition, the leaf server certificate hashing algorithm must be Secure Hash Algorithm 2 (SHA-2) with a digest length, sometimes called a “fingerprint,” of at least 256 (that is, SHA-256 or greater).

The requirements listed in this section are current as of this document’s publication date, with stricter requirements possible in the future. Changes to these requirements will not break app binary compatibility.

Certificate Transparency

Certificate Transparency employs logging of X.509 certificates, using cryptographic assurance and in a manner that can be publicly audited. This system facilitates identifying certificates that were mistakenly or maliciously issued. App Transport Security lets you configure your app to require Certificate Transparency (CT) for specific, named domains. Before such a domain can connect with your app, it must prove to the system that its X.509 digital certificate is present in at least two CT logs trusted by Apple.

To require Certificate Transparency, set the value of the NSRequiresCertificateTransparency key, within the appropriate domain-name dictionary, to YES. (See the overall structure of the NSAppTransportSecurity dictionary, in ATS Configuration Basics, to see exactly where theNSRequiresCertificateTransparency key should be placed.)

Enabling Certificate Transparency does not eliminate the need for your app to revoke invalid certificates and to refuse connections that employ them. To support certificate checking and revocation, use Online Certificate Status Protocol (OCSP) stapling, specified in RFC6066.

For details on Certificate Transparency, see certificate-transparency.org.


AFNetworking 接入https

http://www.jianshu.com/p/20d5fb4cd76d


http://www.cocoachina.com/ios/20151021/13722.html

适配 ATS

转载于:https://www.cnblogs.com/studyNT/p/6019339.html

ATS连接 https相关推荐

  1. 使用HttpsUrlConnedtion连接https地址时异常处理 (方式二)

    摘 要 JSSE是一个SSL和TLS的纯Java实现,通过JSSE可以很容易地编程实现对HTTPS站点的访问.但是,如果该站点的证书未经权威机构的验证,JSSE将拒绝信任该证书从而不能访问HTTPS站 ...

  2. 记Outlook插件与Web页面交互的各种坑 (含c# HttpWebRequest 连接https 的完美解决方法)

    记Outlook插件与Web页面交互的各种坑 (含c# HttpWebRequest 连接https 的完美解决方法) 参考文章: (1)记Outlook插件与Web页面交互的各种坑 (含c# Htt ...

  3. 在unity中,关于HttpWebRequest不能连接https前缀接口的问题

    在Create之前加上这句代码 //连接https需要加上 ServicePointManager.ServerCertificateValidationCallback = new RemoteCe ...

  4. IDEA创建SpringBoot无法连接https://start.spring.io

    IDEA创建SpringBoot无法连接https://start.spring.io 使用IDEA开发spring-boot的时候如果出现下面两个情况 这是由于spring-boot需要访问http ...

  5. delphi2007下使用indy连接https时could not load ssl library问题的解决

    delphi 2007 下的indy版本是10.1.5的,连接https需要用到较早版本的 libeay32.dll 和 ssleay32.dll.先从网上下载了1.0版本的dll. 第一次连接htt ...

  6. websocket连接https

    问题:之前做一对一聊天室(https://blog.csdn.net/jameschiang1995/article/details/102762568)的时候,websocket连接https出了很 ...

  7. ATS http — https

    摘要 为解决在iOS9下基于ATS对HTTP的请求的说明及适配进行说明 iOS9 App Transport Security ATS iOS9中新增App Transport Security(简称 ...

  8. ats 与 https

    一些证书相关的描述: https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyR ...

  9. ftp 客户端 使用http代理 源码_代理服务器连接HTTPS过程

    说到HTTPS代理很多人瞬间就会联想到HTTPS的各种证书和各种加密,觉得很高端很复杂的样子.其实不然,代理服务器不需要配置证书.也不需要处理任何加密.因为HTTPS代理是通过Web隧道(Web tu ...

  10. 连接 HTTPS 证书二三事

    HTTPS 已经普及了,我们看看在访问 https 资源遇到的事情.这里以原生 Java 的知识为背景,所以访问者为 HttpURLConnection 或 HttpsURLConnection. 访 ...

最新文章

  1. linux开发常用脚本,记录自己常用的一些 Linux Shell 脚本
  2. grunt 0.4.1构建工具入门实践(转)
  3. 【HTTP趣谈】origin,referer和host的区别
  4. 并行、并发,两者的区别
  5. Web开发模式(MVC设计模式)
  6. 显示已暂停_中国玉米进口预计增至2200万吨!阿根廷最新宣布:暂停玉米出口...
  7. Splunk数据处理
  8. android主题编辑器,安卓 EMUI主题编辑器 Theme Editor For EMUI v1.13.5 专业版
  9. 计算机的字体要怎么删除,win7字体删不掉怎么办?教你删除win7多余字体方法
  10. 楚留香服务器维护时间,2019年8月9日官方维护公告
  11. “人人都是产品经理”之歪门邪道
  12. 基于MFRC522的门禁系统的设计与实现
  13. 组合数学--排列组合
  14. [管理篇]VMWare搭建Openstack——Cinder完成对云硬盘的扩容
  15. android 点击图片动画效果,Android仿微信图片点击全屏效果
  16. minicom指令_Linux系统minicom命令详解
  17. 视听说教程(第三版)4 quiz 3
  18. dw支持css3 html,通过DW设计网页时组织CSS的建议
  19. java2d游戏代码_JAVA游戏编程学习笔记(三)Java 2D游戏底层绘图框架
  20. 调制解调器的AT命令(中文)

热门文章

  1. 迭代器模式的原理和实现
  2. Spark数据倾斜是如何造成的
  3. hadoop在ubuntu上的安装流程
  4. 通过Ajax进行POST提交JSON类型的数据到SpringMVC Controller的方法
  5. 避免在ASP.NET Core中使用服务定位器模式
  6. Qt编程之QtScript
  7. 【面向对象设计基础】UML统一建模语言初学
  8. Oracle10g数据库在AIX 5.3上的安装
  9. vuex中mutations数据响应
  10. java:通过Calendar类正确计算两日期之间的间隔