GlobalSign 新闻中心

24 2017

何为证书透明度?



早在几年前,证书透明度第一次进入大众的视野。当时,谷歌公司宣布对20151月之后颁发的所有扩展验证(EVSSL/TLS证书,提出证书透明度的要求。此后,谷歌将该要求的覆盖面扩展到了所有类别的SSL证书,并于近期宣布将20184月设为最后期限,即该日期之后颁发的任何未经证书透明化的数字证书,将无法获得Chrome浏览器的信任授权。

GlobalSign一直致力于对其所有数字证书进行证书透明化处理,包括自2015年以来的扩展验证、20168月以来的域名验证和将于201710月开始的组织验证。我们的目标是让客户能够从容迎接谷歌设定的2018年大限。

与此同时,对于那些还在思索证书透明度为何物的人们来说,本文可以作为您的入门教程。

备注:为简化概念,本文通篇使用更为常见的术语SSL代替TLS (仅一处例外)。

何为证书透明度?

证书透明度是用于监视SSL证书的一个开源框架。域名持有者可以通过证书透明度,去监视其域内证书颁发的情况,并判断证书是否被错误签发。在此之前,业界一直缺乏这样一个获得域内证书签发情况完整清单的有效方式。

有了证书透明度,所有证书均可公开显示,大大提升了整个网络公钥基础设施生态系统的知情度和透明度。该证书透明度项目旨在实现以下三大目标:

1、   杜绝在证书对域名持有者无法显示的情况下,由数字证书认证机构向域名颁发SSL证书,或至少大大增加了这种行为的难度。

2、   提供一个公开的审计和监视系统,使域名持有者或数字证书认证机构可以判断证书颁发过程是否存在不当或恶意颁发行为。

3、   保护用户免遭不当或恶意颁发证书的欺诈。

证书透明度框架能够迅速、有效地识别被误发的证书,而在过去的系统中,欺诈证书可能被忽视长达数周或数月之久,造成严重破坏,直至被发现。可疑证书的早期检测使数字证书认证机构以及域名持有者能够快速做出反应并撤回证书。

证书透明度的工作原理?

证书透明度的两大要素是证书透明度日志和监视器。

证书透明度日志能够记录已颁发的SSL证书,且该日志为只读文件,即一旦证书被添加到日志中,所有条目不得删改。SSL证书和预证书(后文详述)可以被公布在日志中。在收到有效的SSL证书和预证书时,日志服务器返回一个证书签署时间戳,证明日志已收到该请求。证书透明度日志使用一种名叫梅克尔散列树的加密机制,防止日志条目被篡改或删除。因此,证书信息一经日志公布便将始终公开显示。浏览器在建立TLS会话时的SSL证书处理过程中可能会要求提供证书签署时间戳(用以证明证书已公开)。因此,证书签署时间戳在网络公钥基础设施中扮演着愈发重要的角色。详见后文。

监视器可查询证书透明度日志,下载并存储证书供后续报告使用。监视器对证书进行子域解析,允许用户创建并运行证书查询功能。域名持有者可能对域内证书颁发通知或与其组织名称相匹配的证书信息感兴趣,而合规团队可能在寻求数字证书认证机构/浏览器论坛的基线要求或根程序要求的合规信息。无论如何,监视器可以为各种目的去提供服务。已有第三方服务商发布了证书透明度监视工具,并尝试将其与现有的解决方案程序进行捆绑。例如,Facebook去年年底发布了自有的免费监控服务。

何为预证书

如上所述,证书透明度日志接受SSL预证书和证书。预证书包含与真正证书相同的所有数据,亦包含使证书无法使用的一项额外扩展,即所谓的毒药扩展,用以区分预证书和真正的证书。由于数字证书认证机构颁发的所有证书必须包含一个独一无二的序列号,且预证书与正式证书共享一个序列号,所以预证书的不可使用性和该毒药扩展的作用至关重要。

预证书有何意义?

将证书签署时间戳发送到浏览器进行处理有几种途径,但最有效可靠的方法是将证书签署时间戳嵌入数字证书中。为了在证书颁发之前获得证书签署时间戳(从而将其嵌入证书中),数字证书认证机构必须创建一个预证书并公布到证书透明度日志,获得证书签署时间戳,再将其嵌入最终的数字证书。

颁发证书之前,数字证书认证机构可以将预证书发布到证书透明度日志,表明即将发布相应证书的意图。实际上,创建并发布一个未经合理验证或格式化的预证书的行为被视为证书的不当发行。

谁可以将证书提交到证书透明度日志?

任何人都可以将证书提交到证书透明度日志,但只有数字证书认证机构能够提交预证书。搜索引擎和网站运营商也常常在证书透明度日志中发布证书。

某些证书透明度日志运营方仅接受某些根证书,有些不接受已过期证书,且所有证书(或预证书)均被要求设置为SSL证书形式,即您无法将S/MIME或代码签名证书发布到证书透明度日志中。

使用证书签署时间戳

作为证书已被载入日志的证据,证书签署时间戳必须在网页浏览器中可用,从而使浏览器得以正常评估相应的SSL证书。有关证书签署时间戳的具体浏览行为和要求视浏览器而定,但不论如何,浏览器都必须要收到证书签署时间戳。尽管理论上浏览器在创建TLS会话并获取证书签署时间戳时可以将SSL证书发布到日志,但此类开销是非常高的。

下列三种方法是将证书签署时间戳传输到浏览器的主要途径:

1、证书扩展

将证书签署时间戳传输到浏览器的最常见和最可靠的方法是由数字证书认证机构将证书签署时间戳嵌入证书。由于浏览器需要SSL证书来创建TLS会话,这种方法可以保证证书存在,并总能用于读取证书签署时间戳。

某些网站管理者或许不希望在网站发布前公布其网站的统一资源定位符(URL),因此他们不希望提前将证书发布到证书透明度日志。在这种情况下可以考虑以下另外两种传输选项。

2TLS(SSL)扩展

网站运营商可以在TLS协议框架内向浏览器提供证书签署时间戳。该模式下,网站运营商/服务器向证书透明度日志提交证书并获取证书签署时间戳。该证书签署时间戳通过所谓的证书签署时间戳”TLS扩展被嵌入至TLS handshake。本传输方法的劣势在于,网络服务器运营商必须改变默认的网络服务器配置,而且并非所有网络服务器都支持这一选项。

3OCSP封套

OCSP信息可用于将证书签署时间戳分配到浏览器,本方法需得到以下两项支持:

1、 网站运营商必须使用支持OCSP封套的网络服务器,必须配置其服务器方能请求并下载有效的OCSP响应程序。若未进行上述操作,则不能保证浏览器将获取包含证书签署时间戳的OCSP信息(很多浏览器不支持OCSP,若不能将OCSP响应程序嵌入TLS协议中,则这一传输机制并不可靠)。

2、 数字证书认证机构必须配置其OCSP服务以支持证书签署时间戳封套。证书颁发之后,数字证书认证机构将在多个日志发布,并收到证书签署时间戳。当OCSP响应程序生成,数字证书认证机构将把证书签署时间戳附在OCSP信息中,这样浏览器将同时获得撤销状态和必要的证书签署时间戳。

尽管第二种和第三种途径均要求进行特定的服务器配置,相较于第一种方法,后两者更具灵活性。在证书日志不可信的情况下,网站运营商和数字证书认证机构可对已使用的日志进行更多元化的重新配置。

谷歌的证书透明度政策

为获得证书透明度资质,谷歌要求一个证书必须出现在多个日志中(至少包括一个谷歌自有日志和一个非谷歌日志),所需证书签署时间戳的数量取决于证书的有效期。欲获得更多资讯,请查阅谷歌有关Chrome浏览器证书透明度的说明。

点击这里获取日志列表。

如何实现证书透明度合规?

恭喜,现在您已经具备了有关证书透明度的基础知识!确保合规的最佳方案是选择一个可以依照谷歌证书透明度政策,将证书签署时间戳添加到已颁发证书中的数字证书认证机构。GlobalSign的绝大部分的SSL证书均已符合谷歌政策标准,数月之后将实现全体合规,比谷歌规定的20184月大限提前整整5个月。

到目前为止,谷歌仍是唯一一家提出证书透明度要求具体时间表的浏览器服务商。Mozilla草拟了一份政策,但尚未提上发布日程。据推测,Mozilla的要求将与谷歌别无二致。如果有新的公告发布,我们也将做持续的更新。谢谢您的关注。

关于 GMO GlobalSign

GlobalSign  是最早成立的认证机构之一,是提供网络安全解决方案的引领者,自  1996  年以来一直是值得信赖的服务供应商。 GlobalSign  一直关注并将继续关注为不同规模的组织机构提供方便并高效的  PKI  解决方案。

GlobalSign  的核心数字证书解决方案使得上千授权用户得以进行  SSL  安全交易、数据传输、防篡改代码的发送、以及为加密邮件和准入许可实施网络安全身份验证保护。对创新的展望和努力使得  GlobalSign    Frost & Sullivan  授予  2011  最佳产品线策略奖。GlobalSign  在美国、欧洲和亚洲均设有办事处。欲了解  GlobalSign  最新消息,请登录  www.globalsign.cn  或关注微博:新浪微博 (@globalsign)、微信公众号:GlobalSign


返回 GlobalSign 新闻中心