Web 安全之证书透明(Certificate Transparency)详解

这篇具有很好参考价值的文章主要介绍了Web 安全之证书透明(Certificate Transparency)详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

证书透明性的概念

数字证书和颁发机构

证书透明的起源

证书透明的工作原理

证书透明的实现方法

证书透明的优点

浏览器和客户端对证书透明的支持情况

小结


证书透明(Certificate Transparency, CT)是网络安全领域中的一个重要概念,是一个针对数字证书的公开监督系统,旨在增加 SSL/TLS 证书颁发和管理的透明性,防止证书颁发机构(Certificate Authorities, CAs)错误或恶意地颁发证书,从而增强互联网的安全性。本文将详细解释证书透明的概念、原理、实现方法和实际应用。

证书透明性的概念

证书透明性(Certificate Transparency)是一种用于监控和审计 SSL/TLS 证书颁发机构(CA)的行为的机制,通过记录和公开颁发的所有 SSL/TLS 证书,使得第三方可以验证证书的合法性和权威性,防止证书的滥用和欺诈行为的发生。

数字证书和颁发机构

数字证书是一种用于确认实体身份的电子凭证,包含了公钥、身份信息以及签名等信息。证书颁发机构(CA)是受信任的第三方机构,负责验证申请证书者的身份并颁发数字证书。

证书透明的起源

证书透明的概念是在2013年由 Google 提出,背景是互联网安全领域发生了几起重大的证书滥用事件。这些事件揭示了一个问题:CA 可能会被黑客入侵或者因内部问题等而错误地颁发证书甚至恶意颁发证书。这些不当的证书颁发行为可能会被用于中间人攻击,从而损害用户的数据安全和隐私。

证书透明的工作原理

SSL/TLS 证书颁发过程通常包括以下步骤:

  1. 申请者向 CA 提交申请,提供域名和公钥等信息。
  2. CA 验证申请者身份和域名的合法性。
  3. CA 使用自己的私钥对申请者的公钥和相关信息进行数字签名,生成证书。
  4. CA 将证书颁发给申请者。

在这个过程中,如果 CA 滥用权力,颁发虚假证书,将对整个网络安全体系造成威胁。因此,证书透明性机制应运而生。证书透明要求所有的证书颁发操作都必须被记录和公开,实现对 CA 行为的监控和审计。日志记录必须具有以下特性:

  1. 不可篡改性:证书一旦被记录到日志中,就不能被修改或删除,以保证记录的可靠性。
  2. 可验证性:任何人都可以查询日志,验证其中记录的证书是否合法,以保证查询的公正性。
  3. 可审计性:任何人都可以对日志进行审计,验证是否符合规范要求,以保证审计的全面性。

证书透明的实现方法

  1. 建立公开的、可查询的证书日志系统,必须具备不可篡改性、可验证性和可审计性等特性。目前,比较知名的证书日志系统包括 Google 的 Certificate Transparency Logs 和 Mozilla 的 Public Key Pinning with HPKP。
  2. 将所有颁发的 SSL/TLS 证书记录到日志系统中,当 CA 颁发一个新的 SSL/TLS 证书时,必须在证书中包含一个指向公开日志系统的引用,以便将该证书记录到日志中。同时,CA 还需要将证书的哈希值提交给日志系统,以便进行查询和审计。
  3. 验证日志系统的合法性和权威性,客户端在查询日志时,需要验证日志系统的身份和授权信息,以确保其合法性和权威性。同时,客户端还需要验证日志系统中记录的证书是否与 CA 颁发的原始证书一致,以确保记录的准确性。

证书透明的优点

  • 防止中间人攻击(MITM):通过实现证书透明性,可以有效地防止中间人攻击(MITM)。因为可以查询公开的证书日志系统,验证网站使用的 SSL/TLS 证书是否合法。如果发现有异常情况,例如虚假证书或自签名证书,就可以及时采取措施阻止攻击行为。
  • 检测 CA 滥用行为:实现证书透明还可以有效地检测 CA 的滥用行为,因为所有颁发的 SSL/TLS 证书都会被记录到公开的证书日志系统中,如果发现有大量虚假或欺诈性证书被颁发,就可以及时发现并采取措施追究相关责任人的法律责任。

浏览器和客户端对证书透明的支持情况

当先各家浏览器和许多客户端都已经支持证书透明,以下是一些主流浏览器的支持情况:

  • Google Chrome:Chrome 是最早推动证书透明度的浏览器之一。从版本 68 开始,Chrome 要求所有新的网站证书必须遵守证书透明度政策。Chrome 会检查证书中的 SCTs(时间戳证明,Signed Certificate Timestamps,SCT)并在发现问题时向用户显示警告信息。
  • Mozilla Firefox:Firefox 通过“安全连接失败”页面上的错误消息支持证书透明度。Firefox 不强制要求所有证书都符合证书透明度,但允许用户查看证书中的 SCTs 信息。
  • Apple Safari:Safari 也支持证书透明度,会检查网站证书中的 SCTs。在某些版本的 iOS 和 macOS 中,苹果要求所有新颁发的证书必须符合证书透明度要求。
  • Microsoft Edge:随着 Edge 转向 Chromium 内核,也继承了 Chrome 的证书透明支持。Edge 会对证书中的 SCTs 进行验证,并在发现问题时提供反馈信息。
  • Opera:由于 Opera 现在也是基于 Chromium 内核的,同样支持证书透明度,并会执行 SCTs 的验证。

对于非浏览器客户端,如 HTTP 客户端库或应用程序,对证书透明的支持可能会有所不同:

  • 开发者库:有些开发库内置了对证书透明的支持,或者提供了相应的插件来实现这一功能。例如 OkHttp(一个流行的Java HTTP客户端库)从3.11.0版本开始支持证书透明。
  • 操作系统级别:某些操作系统可能在系统级别提供了对证书透明的支持。例如 Android 7.0及更高版本允许开发者在应用的网络安全配置中指定证书透明度的要求。
  • 独立客户端:独立的客户端应用程序可能需要自己实现对证书透明的支持,或依赖于操作系统或开发库来提供这一功能。

总的来说,现代浏览器对于证书透明度的支持已经相当广泛,而客户端库和应用程序对证书透明的支持则取决于具体实现和配置。

小结

证书透明通过提供一个开放的证书记录系统,显著提高了数字证书生态系统的安全性和透明度,证书透明正逐渐成为互联网安全的标准做法。文章来源地址https://www.toymoban.com/news/detail-753680.html

到了这里,关于Web 安全之证书透明(Certificate Transparency)详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • openssl密钥证书管理(Key and Certificate Management)

            前两日应别人要求提供一份CSR文件过去,方便他们生成相关证书,对于这一块本来也不熟,于是找到openssl官网,想找找相关的教程看看,一番小找,果有收获,是个宝藏,源文档在这(OpenSSL Cookbook烹饪宝典),有意者可前往一观(最好是能仔细看看官方提供的原

    2024年04月13日
    浏览(34)
  • Python web实战之细说Django的中间件

                      🔑 :Python Web 开发、Django、中间件 今天分享Python Web开发中的一个重要成员:Django的中间件。介绍中间件的概念、作用及其在实战中的应用。 在Python Web开发中,中间件(Middleware)是指位于Web应用程序和Web服务器之间的一层软件组件。它能够拦截请

    2024年02月13日
    浏览(45)
  • 使用ssl_certificate_by_lua指令动态加载证书

    1、下载 OpenResty - 下载 根据自己系统选择下载,我的是64位 2、解压到目录 3、启动openresty  进入解压后的目录,执行nginx.exe  浏览器输入 http://localhost 查看是否正常。显示以下画面就表示没有问题。 接下来可以开始准备动态安装证书 4、使用openssl-win64生成测试证书(待补充

    2024年02月06日
    浏览(33)
  • 解决执行npm(或pnpm)时报:证书过期 certificate has expired问题

    项目执行 pnpm install 初始化时报 reason: certificate has expired 错误。 解决方案

    2024年01月23日
    浏览(50)
  • git-生成证书、公钥、私钥、error setting certificate verify locations解决方法

    确认本机是否有 .ssh 文件夹 如下,有 .shh 文件夹,正常 如下,没有 .shh 文件夹 进入父级路径 c:/Users/Administrator 手动创建一个文件夹,名字就叫 .shh 然后一直敲回车键,不用输入密码,最后创建成功 在这里可以看到 id_rsa 和 id_rsa.pub 文件已经生成。并且生成的路径也已显示

    2024年02月01日
    浏览(42)
  • 细说JavaScript函数(JavaScript函数详解)

    函数的作用就是封装一段JavaScript代码,让开发者可以通古简单的方式使用这段代码 一、函数的分类 在几乎所有的编程语言中,都有函数这一概念,并且没中语言本身都继承了丰富的函数,这类函数被称为系统函数或者内置函数,系统函数在语言设计时就已经定义好了,开发

    2024年02月01日
    浏览(47)
  • java调用https服务的ip地址报错证书问题解决:SSLPeerUnverifiedException: Certificate fo

    问题描述: java项目调用微信api的域名接口正常: String wxAccessTokenUrl = \\\"https://api.weixin.qq.com/cgi-bin/token?\\\"; 因项目要求采用ip访问外部服务,所以ping api.weixin.qq.com 得到域名对应的ip为101.91.37.13, 所以替换java调用api接口为:\\\"https://101.91.37.13/cgi-bin/token?\\\"; 此时项目代码调用api接口为

    2024年02月12日
    浏览(46)
  • 【Docker从入门到入土 6】Consul详解+Docker https安全认证(附证书申请方式)

    服务注册与发现是 微服务架构 中不可或缺的重要组件。 起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。 直到后来出现了多个节点的分布式架构,起初的解决手段是在服务前端负载均衡,这样前端必须要知道所有后端

    2024年02月02日
    浏览(35)
  • 【漏洞复现】CVE-2004-2761:使用弱哈希算法签名的 SSL 证书(SSL Certificate Signed Using Weak Hashing Algorithm)

    概要:本次复现是针对编号为CVE-2004-2761的漏洞,由于条件有限,本次复现通过创建自签名证书进行操作。 问题描述:证书链中的 SSL 证书使用弱哈希算法进行签名。 本次复现环境在Linux平台下使用Nginx进行环境的搭建,通过 Openssl 组件生成自签名证书,并在 Nginx 配置文件中进

    2024年02月10日
    浏览(43)
  • 网络安全-安全Web网关(SWG)详解

    在当今快速发展的网络环境中,企业面临着越来越多的网络安全挑战。安全Web网关(SWG)作为一种高效的网络安全解决方案,为企业提供了一个安全、可控的网络使用环境。 安全Web网关是一种网络安全设备或服务,主要功能是监控和管理用户的Web访问,以防止恶意软件入侵和

    2024年02月01日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包