苹果WWDC大会SSL相关亮点回顾

2024-04-23 10:38

本文主要是介绍苹果WWDC大会SSL相关亮点回顾,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

苹果全球开发者大会上宣布了LibreSSL、TLS 1.3 Beta版、新的证书吊销检查机制。

上周苹果公司召开了年度全球开发者大会。会上的重大消息之一就是苹果的High Sierra for macOS、iOS11、tvOS11和watchOS4等新版操作系统的发布。

苹果公司花费了一些工夫讨论他们各平台加密库和SSL/TLS支持的改善情况。

下面,我们对所有这些改变做了一个概述,其中的大部分已在“你的App与不断进步的网络安全标准”会议上宣布过。

新的证书报错界面

High Sierra系统的证书查看器和Safari浏览器,重新设计了证书报错界面。

在Safari浏览器中,新的报错页面被设计为,通过给出一段简明的英文来解释问题,而没有使用像“协议”或“签名”这样的术语。这与Chrome浏览器的界面有些类似。

ssl changes in high sierra and iOS 11

证书查看器会进一步显示更详细的信息。在下面的截屏中,你可以看到,屏幕上显示了一个警告,具体说明了该信任错误的详细内容。在这个例子中,该错误提示“此证书无法核实(弱摘要算法)”,是因为该证书是通过SHA-1进行签名的。

ssl changes in high sierra and iOS 11

改进后的证书吊销检查机制

苹果公司发布了一种新的适用于其所有平台的证书吊销检查方法。它还未取得适宜的名字,不过它与Mozilla的OneCRL运行方式相类似。

ssl changes in high sierra and iOS 11

苹果公司的方法是,先扫描证书透明系统日志来发现他们的平台所信任的证书。然后再从证书颁发机构查询已发现的证书吊销状态。已吊销证书的所有相关信息都被捆绑在一起,在静默状态下每隔一段时间会被自动分发给客户端设备(如Macbooks和iPhones)

当建立一个TLS连接后,客户端会进行检查,验证证书在中央列表中是否被标记为吊销。如果证书被标记为吊销,那么客户端将会执行一个活动的OCSP检查,来确定这条信息是否准确。一旦确认,客户端就会知道该证书已被吊销,然后就会拒绝建立连接。如果服务器提供一个绑定的OCSP响应,那么它将会用这个响应来进行确认,而不需要执行活动的检查。

如果证书在中央列表中没有被标记为吊销,那么OCSP就不会被使用。

为LibreSSL而放弃OpenSSL

在High Sierra系统中,苹果公司已经将SSL库从OpenSSL0.9.8zh转换到LibreSSL2.2.7了。LibreSSL是OpenSSL的一个分支,受OpenBSD支持。

“安全传输”是苹果公司自己为SSL/TLS开发的API,但其首先应用于他们自己的软件。LibreSSL也将作为第三方软件的SSL库。

任何一次苹果全球开发者大会都未声明这一点,但这被High Sierra系统beta版用户发现了。

扩展ATS豁免

Chris Wood是苹果公司的“安全传输”项目工程师,他谈到App传输安全(ATS)的应用。Wood解释说,开发人员向苹果公司反馈说,过渡期比预想的要长,收到这一反馈后,苹果公司正在扩大对ATS豁免的支持。

Wood强调,苹果公司仍然会全力推动经由ATS的HTTPS,开发人员在努力进行向HTTPS的正确过渡时,他们对这些豁免的信任应是暂时的。

新苹果操作系统现在会对以下框架支持ATS豁免:AVFoundation、WebView和Webkit。豁免对本地网络连接(Ip地址和不合格的主机名)将会是可配置的。

豁免可以被限制在一个特定的域名,或是整个app中。我们还有一个办法来确认你是否想要对一个主机名的证书进行证书透明检查。

TLS 1.3 Beta版

TLS最新版1.3还没有被国际互联网工程任务组(IETF)确定下来。High Sierra和iOS 11系统支持TLS 1.3的一个规范草案,该草案较最终版本将十分接近。这使得开发人员在TLS 1.3正式确定前就已经开始对其进行测试了。

Chris Wood强调了TLS 1.3中更短的握手时间。他分享了苹果公司的分析数据,数据显示,在蜂窝网络上建立的TLS连接中有10%花费了800毫秒或更长时间,而在Wifi网络上建立的TLS连接中有10%花费了500毫秒或更长时间。而由于TLS 1.3具有更高效的握手方案,这个时间可以减少三分之一。

你需要从这个链接下载一个配置文件并进行安装,然后就可以在iOS 11系统中启用TLS 1.3了(需要苹果开发人员账号)。

通过以下终端命令,就可以在macOS High Sierra系统中启用TLS 1.3草案:

defaults write /Library/Preferences/com.apple.networkd tcp_connect_enable_tls13 1

结束对SHA-1和2048位以下的私钥的支持

苹果公司的平台马上就可以迎合行业标准对老化的散列算法和加密方法的弃用要求了。

以SHA-1算法和/或使用2048位以下私钥签名的证书将不再被High Sierra、iOS 11、watchOS 4或tvOS 11系统信任。

对这一改变还有一些豁免。通过移动设备管理(MDM)机制或由Safari、Mail、Keychain Access分发的证书可以继续使用这些弱散列和密钥。(用于交互验证的)客户端证书也没有受到影响。

SHA-1签名的根证书也未受影响,因为这些证书的签名验证机制并不相同。使用2048位以下密钥的根证书在2015年已从苹果平台移除。

这些要求不应该引起对那些使用现代CA签名证书的任何担忧。SSL行业标准已经禁止这些弱应用一段时间了。

开发人员将可以通过一个唯一的错误代码识别这个问题:“InvalidCertChain (-9807)”。在URLSession/URLConnection中会返回这一错误代码。因为苹果公司正准备完全放弃对这种情况的支持,所以解决这一错误的唯一的方法就是替换你的证书。

RC4和3-DES将会被移除

“安全传输”的工程师Bailey Basile强调,“在将来”,RC4和3-DES这两个老化的密码算法,会被苹果公司的所有平台弃用。虽然还没有给出准确日期,但开发人员应该开始逐渐远离这两种很久以来即被公众所知的弱密码了。

Basile还建议避免在CBC模式中使用AES(AES-CBC)。他建议的密码套件是AES-GCM或ChaCha20-Poly1305。

这篇关于苹果WWDC大会SSL相关亮点回顾的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/928570

相关文章

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二

Python如何获取域名的SSL证书信息和到期时间

《Python如何获取域名的SSL证书信息和到期时间》在当今互联网时代,SSL证书的重要性不言而喻,它不仅为用户提供了安全的连接,还能提高网站的搜索引擎排名,那我们怎么才能通过Python获取域名的S... 目录了解SSL证书的基本概念使用python库来抓取SSL证书信息安装必要的库编写获取SSL证书信息

nginx生成自签名SSL证书配置HTTPS的实现

《nginx生成自签名SSL证书配置HTTPS的实现》本文主要介绍在Nginx中生成自签名SSL证书并配置HTTPS,包括安装Nginx、创建证书、配置证书以及测试访问,具有一定的参考价值,感兴趣的可... 目录一、安装nginx二、创建证书三、配置证书并验证四、测试一、安装nginxnginx必须有"-

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

numpy求解线性代数相关问题

《numpy求解线性代数相关问题》本文主要介绍了numpy求解线性代数相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 在numpy中有numpy.array类型和numpy.mat类型,前者是数组类型,后者是矩阵类型。数组

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET

如何评价Ubuntu 24.04 LTS? Ubuntu 24.04 LTS新功能亮点和重要变化

《如何评价Ubuntu24.04LTS?Ubuntu24.04LTS新功能亮点和重要变化》Ubuntu24.04LTS即将发布,带来一系列提升用户体验的显著功能,本文深入探讨了该版本的亮... Ubuntu 24.04 LTS,代号 Noble NumBAT,正式发布下载!如果你在使用 Ubuntu 23.