本文主要是介绍Certificate Transparency,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先我们来了解一下Certifictae Transparency吧!1
-
什么是CT?CT的目标是什么?2
a). 证书透明度使用户和域名持有者识别不当或恶意签发的证书,以及识别数字证书认证机构(CA)的行为。证书透明度有助于避免在瞒过域持有者的情况下为域颁发证书。证书透明度不需要侧信道通信来验证证书。他们由在线证书协议(OCSP)或Convergence等技术完成。证书透明度不需要可信赖第三方。CT 不是要替换现有的 CA 设施,而是做为补充,使之更透明、更实时3。
b). 证书透明度组件。4
(备注,synchronous同步,asynchronous异步)
- CA CT在现有的公众信任的CA系统中工作。
- 证书日志 多个独立的日志的原因:可以用来备份;当其中一份日志被篡改时,证书依然有效;独立日志意味着单个管理无法从所有日志中删除发布过的证据;多个独立自治意味着CA不能和操作员勾结。所有的日志都是: 只能添加,无法被删除、修改插入;加密保证,防篡改;公开审计,任何人都可以查看记录寻找漏洞。
- 证书监视器 证书监视器是指监视证书日志中是否存在可疑活动的人员。监视器可以使用HTTP GET 命令从日志中获取信息。
- 证书审计器 证书审计器检查日志与验证日志是否一致,是否添加了新条目,日志是否已被追溯插入、删除或修改。 -
How does CT work? 4
- 过程。
a). 服务器运营商从CA购买证书
b). CA验证服务器运营商
c).CA creates a precertificate. CA创建一个前置证书
d). VA logs the precertificates with the log server, which returns a signed certiifcate timestamp. CA使用日志服务器记录先决条件,该服务器返回签名证书的时间戳(SCT)
e).CA颁发一个SSL证书
f). SSL Certiifcate may include signed certificate timestamp. SSL证书可能包含签名证书时间戳(SCT)
g). 浏览器在TLS握手期间验证SSL证书
h). Browser validate the SCT during the TLS handshake, either through OCSP stapling, through a TLS extension, or from information embedded in the certificate. 浏览器验证在TLS握手期间提供的SCT,通过OCSP装订,通过TLS扩展或证书中嵌入的信息
i). 浏览器与服务器建立链接
j). SSL证书在将所有的数据从浏览器传递到服务器时对其进行加密 - There are three possible ways to deliver the SCT during the TLS handshake.
- 过程。
-
SCT Delivery Methods 5 6
- 什么是SCT
Signed Certificate Timestamp. - 证书嵌入(如figure 1)
此方法不需要任何服务器(example.com)修改,它允许服务器操作员继续以与以往相同的方式管理其SSL证书。 - TLS扩展(如figure2_左)
- OCSP Stapling(如figure2_右)
可以看到,CA同时把证书传递给服务器和日志服务器,服务器通向CA传递OCSP信息,然后将返回的SCT返回给客户端。(PS: 在线证书状态协议是一个用于获取X.509数字证书撤销协议的网际协议,作为证书吊销CRL的替代列表,解决了在线公开密钥基础中使用证书吊销列表而带来的多个问题。)
- 什么是SCT
-
实验(有点激动!!)3
访问sjtusec.com,抓包后找到SCT部分。
除了抓包,还可以在开发者工具的辅助security选项中查看SCT。OID(1.3.6.1.4.1.11129.2.4.2)表示证书已启用CT。OID(对象标识符)是一个数值,用于确定证书是否对特定用途有效。通过查看证书详细信息,可以在任何启用CT的证书上找到此字段。如果此OID不存在,则证书未启用CT7。
登陆这个网址也可以查到。
在抓包的过程中我们看到了有两个SCT,这是为什么呢?8
是RFC的规定,为了容错。
Certificate Transparency http://www.certificate-transparency.org/ ↩︎
证书透明度_wiki https://zh.wikipedia.org/wiki/%E8%AF%81%E4%B9%A6%E9%80%8F%E6%98%8E%E5%BA%A6 ↩︎
Jerry_Qu博客 https://imququ.com/post/certificate-transparency.html ↩︎ ↩︎
证书透明度的工作流程 https://www.digicert.com/certificate-transparency/how-it-works.htm ↩︎ ↩︎
SCT工作流程 https://www.digicert.com/certificate-transparency/enabling-ct.htm ↩︎
官方解释 http://www.certificate-transparency.org/how-ct-works ↩︎
https://knowledge.digicert.com/solution/SO28947.html ↩︎
Q&A http://www.certificate-transparency.org/faq ↩︎
这篇关于Certificate Transparency的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!