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

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

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

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



新的证书报错界面

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

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

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

ios swift 读写手机日历 苹果日历ssl_wwdc



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

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

ios swift 读写手机日历 苹果日历ssl_wwdc_02

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