内容简介:最近Let’s Encrypt新创建了一个CT服务,命名为Oak,从技术角度上看并不是很轰动的事情,但对他来说却意义重大,作为一个CA机构,他的生态系统越来越成熟。CT(证书透明度)对于HTTPS网站非常重要,虽然它不是TLS协议的一部分,但作用非常大,原因其实很简单,证书是HTTPS协议中最薄弱的一个环节(并不是一个技术问题),而CT会监控证书的签发、使用,从而使HTTPS协议更安全。关于CT,在我的书
最近Let’s Encrypt新创建了一个CT服务,命名为Oak,从技术角度上看并不是很轰动的事情,但对他来说却意义重大,作为一个CA机构,他的生态系统越来越成熟。
CT(证书透明度)对于HTTPS网站非常重要,虽然它不是TLS协议的一部分,但作用非常大,原因其实很简单,证书是HTTPS协议中最薄弱的一个环节(并不是一个技术问题),而CT会监控证书的签发、使用,从而使HTTPS协议更安全。
关于CT,在我的书 《深入浅出HTTPS:从原理到实战》 中有详细的介绍,也写过一篇文章专门介绍 《Let’s Encrypt证书支持CT,让你的网站更安全》 ,有兴趣的可以看看。
如果你不想了解太多的技术细节,只想知道开发者针对CT应该做些什么,那我简单描述一下。
历史上因为证书签发出现过很多HTTPS网站安全问题,根本原因就是CA是一个追求盈利的机构,稍有松懈,可能会签发一张证书给非法组织,或者非法组织以受害者的名义申请证书。
一旦存在问题的证书被使用,那么用户就可能处于危险之中,他本以为是在连接一个安全网站,但实际上却在和攻击者在通信,而他一无所知。
根本问题就在于证书的签发没有约束,CA操控着这一切;对于网站拥有者来说,他也不知道谁会以他的名义(网站域名)去申请证书;而对于浏览器这样的客户端来说,没有办法确认某张证书是否被滥用了。
这有点类似于互联网,没有约束,太自由。为了解决这个问题,Google想出了一个办法,他提供了一个CT服务(类似于日志收集器,一个远程服务),任何CA机构或者个人在签发证书的时候可以给CT服务提交一段不可伪造的日志,证明谁谁谁给谁谁谁签发了一张证书,然后CT服务返回SCT这一一个标识符给提交者。
可为啥CA机构要买Google的账的呢?他的大杀器就是Chrome,世界上最大的HTTPS客户端,如果不遵守他的规则,那么你就无法生存。
在HTTPS握手的时候,如果Chrome无法获取到SCT(并异步确认SCT是否正常),代表这张证书可能有问题,从而会中断HTTPS网站的访问。
后来CT越来越成熟了,很多CA机构也创建了CT服务,这样世界上就存在多个CT服务了,这是好事,其实本文就是说明Let’s Encrypt也创建了一个CT服务(Oak)。
有了CT服务,它的日志也是可查询的,出现了很多CT工具,从而任何人(包括网站拥有者)就可以查询自己的网站证书有没有被非法颁发,甚至每次签发证书的时候,可以通过邮件发送通知。
那么网站拥有者要做些什么呢?其实大部分时间什么也不用做,想想看,在HTTPS握手的时候,浏览器必须获取SCT,那么网站拥有者必须提供SCT,有三种方式可以提供。
第一种是最简单也是最好的,那就是证书中直接含有SCT,CA机构在签发证书的时候直接包含SCT,开发者什么也不用做,从 2018年4月30号以后,所有在 Let’s Encrypt 签发或更新的证书将自动包含 SCT。
第二种就是通过OCSP的方式,OCSP服务是有CA机构提供的,也不用开发者做什么,但如果网站拥有者要使用OCSP封套,那么需要多多留心,但但这不是CT的问题,而是OCSP封套的技术问题。
第三种不推荐,那就是TLS协议扩展提供SCT,因为需要网站拥有者自行配置。
对于开发者来说,可以将CA特性作为选择CA机构的一个标准,如果CA不能在证书中直接提供SCT,可以认为他并不专业。
说了很多CT的背景,让我们回到本文的重点,Let’s Encrypt构建Oak的一些背景。
他首先提到CT的重要性,CT能够记录和监控证书的签发,能够改进CA生态系统并提升Web安全性。
其实提到CT服务构建是要成本的,Oak服务部署在AWS,基于 Trillian(Google的一个CT协议框架)开发,用Kubernetes进行容器编排和调度,使用 AWS RDS 存储数据。
考虑到Let’s Encrypt目前规模非常大,所以这是一笔非常大的开销,所幸的是Sectigo(传统CA机构Comodo,最近改名了)赞助了全部费用。
那么Let’s Encrypt为什么一定要构建Oak呢?因为他也可以使用第三方的CA服务,他解释了一些原因。
第一,他认为为互联网提供最高级别的安全性是他的使命,而CT服务是其重要的一环,所以他应该提供这样的服务。
第二,能够掌握自己的命运,什么意思呢?Chrome要求签发的证书必须提交到两个不同的CT服务上,所以希望至少其中一个CT服务是自己的,增加可控性。
第三,Let’s Encrypt每天签发或更新100万张证书,对于 CT 服务的可靠性要求很高,所以他提供了一个高可用的Oak服务,同时也欢迎其他CA机构使用Oak服务。
Let’s Encrypt作为全球最大的免费CA机构,官方每发一篇博客,我都会简单说明下,也算为HTTPS网站的普及做了一点事,另外基于Let’s Encrypt开发的一个自动续期证书的工具(https://github.com/ywdblog/certbot-letencrypt-wildcardcertificates-alydns-au)也颇受好评,大家可以关注下(点击原文连接)。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。