GlobalSign 的全球 HTTPS 故障详解

Flora| 2016-10-18 来源: SSL, 新闻 评论数( 0 )

GlobalSign是全球根证书管理机构之一,它事后分析了自己如何搞垮了互联网的一大块。

到目前为止,总部位于美国新罕布什尔州的这家公司已向全世界的大小网站出售了250万个SSL/TLS证书。本周,它无意中搞垮了自己的信任链:它实际上让客户的证书在全世界的Web浏览器和应用程序的面前变成了不可信的证书。

这使得许多人无法访问大大小小的安全网站和在线服务,从维基百科、《金融时报》到GlobalSign自家的服务器,不一而足。

这出意外的狗血事件还没有影响到每个人:如果你的电脑、电话或其他某个设备在10月13日星期四不幸沦为从GlobalSign的网站获取不可靠撤销列表的设备之一,你的浏览器就会阻止访问合法的HTTPS网站。那是由于,你的浏览器被告知:GlobalSign颁发的加密证书不再有效。

若是精通技术的网民,受到这次故障影响后可以试图清空撤销列表的缓存内容,从GlobalSign获得纠正后的列表,以解决这个问题。但技术不太在行的受影响网民面对让人摸不着头脑的浏览器错误信息,只能束手无策。如果你在上网浏览时没有看到屏幕上出现任何错误信息,你的电脑或手机可能现在已获得纠正后的列表,你可能在访问不使用GlobalSign证书的网站,或者浏览器设法完全躲过了这次小危机。

技术细节

最初,GlobalSign将这次故障归咎于Web浏览器的一个程序错误,后来它意识到问题原来出在自家的系统上。

我们被告知,GlobalSign发布了由该组织的Root CA R2证书签名的证书撤销列表后,问题暴露出来。该列表撤销了交叉证书和已被叫停的一家老的次级证书管理机构,而该次级证书管理机构被用来颁发过时的SHA1扩展验证型SSL(SHA1 Extended Validation SSL)证书。

通常来说,交叉证书可用于增强信任和可靠性:以GlobalSign为例,交叉证书让浏览器和应用程序可以借助GlobalSign的Root CA R1或Root CA R2证书,验证由GlobalSign颁发的HTTPS证书的完整性。

因而,在核查网站的HTTPS证书具有的有效性时,交叉证书为软件建立了两条可能的信任路径以供选择。只要浏览器信任GlobalSign的Root CA R1或R2证书,就会信任处于信任链末端的网站HTTPS证书。

下面是GlobalSign试图撤销的内容:就是交叉证书和老的次级证书管理机构:

交叉证书由GlobalSign的Root CA R2颁发,Root CA R1作为证书持有者(subject)。10月13日,在撤销列表发布六天后,该组织更新了名为受委派在线证书状态协议(OCSP)响应系统数据库的数据库。这将信息馈送给一系列名为受委派撤销响应系统的系统。

让人意想不到的是,这些响应系统被交叉证书的撤销搞糊涂了,以为GlobalSign试图撤销与Root CA R1证书有关的中间证书(intermediate certificate)。这些中间证书用来颁发出售给网站和公司企业的SSL/TLS证书:由于撤销中间证书,所有那些客户证书都变成了不可信――它们实际上是无效的。由于信任链受到了破坏,浏览器再也无法验证使用GlobalSign证书的安全网站的身份,因而拒绝访问网站。

GlobalSign在事后撰写的一份事件报告中解释:“由于Root CA R2撤销交叉证书,受委派撤销响应系统错误地以为,所有的Root CA R1中间证书都是‘坏的’,因为交叉证书拥有一样的公共密钥和证书持有者名称等细节,却有更近的日期。”

最后这家公司恢复了对撤销列表所作的变更,但是为时太晚:等到此时,变更部分已通过其内容分发网络(CDN)传播开来,传播到了联系GlobalSign获取最新撤销列表的应用程序。一些浏览器和程序收到了正确的数据,而不走运的应用程序获得了不可靠的列表,按时剔除了GlobalSign中间证书。

这家公司解释:“我们恢复了这个情况,清除了负载均衡系统和CDN,但是一些用户依然获得‘坏的’响应,而多得多的用户仍从之前与GMO GlobalSign SSL认证的网站的交互中获得原先‘好的’响应。”

所以结果发现,在撤销响应系统上运行的软件发现,交叉证书的公共密钥和证书持有者名称与Root CA R1证书的相匹配,交叉证书有一个更新的有效期起始日期;该软件认为,由于交叉证书已被废除,R1的所有次级证书都也应该被废除:

GMO GlobalSign使用第三方安全认可的负载均衡系统OCSP响应系统,为整个产品系列以及客户及依赖方配置受委派响应机制。然而,对我们的生态系统、我们的利益相关方及客户来说不幸的是,响应系统代码库里面的逻辑认定:交叉证书的撤销(由查询表中的公共密钥和证书持有者名称来识别)实际上是个指令,也将所有其他的次级证书管理机构(包括DomainSSL和AlphaSSL)确认为是‘坏的’。”

该逻辑接受了更新的交叉证书的Not-Before Date(有效期起始日期),作为比原始Root CA R1更晚的声明,因而确定这是个权威的指令,将Root CA R1颁发的所有次级证书标为“坏的”。

GlobalSign没有对开发这个故障代码的厂商指名道姓――如果你知道详细情况,请及时告知我们。下面显示了糟糕的决定如何通过浏览器及其他客户端软件连接的负载均衡系统和分发系统体系传达下去;变更部分没有以统一的方式传输,因而一些设备和电脑并没有收到错误的撤销列表。浏览器及其他应用程序往往每隔几天检查撤销,所以它们有可能错过本周的这出好戏。

这家公司警告,由于涉及的缓存内容的数量之大,加上应用程序往往每隔四天检查撤销列表的更新,这个问题可能要到下周初才会得到全面解决。如果你的软件在星期四受到影响,那么可能要到下周一才能获得解决办法。

聚焦云计算,扫描二维码,关注HostUCan云计算

有好的文章希望站长之间帮助分享推广,猛戳这里我要投稿

您需要登录后才可以评论登录|注冊

暂无评论