当前位置: 首页 > news >正文

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及更高版本允许开发者在应用的网络安全配置中指定证书透明度的要求。
  • 独立客户端:独立的客户端应用程序可能需要自己实现对证书透明的支持,或依赖于操作系统或开发库来提供这一功能。

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

小结

证书透明通过提供一个开放的证书记录系统,显著提高了数字证书生态系统的安全性和透明度,证书透明正逐渐成为互联网安全的标准做法。

相关文章:

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

目录 证书透明性的概念 数字证书和颁发机构 证书透明的起源 证书透明的工作原理 证书透明的实现方法 证书透明的优点 浏览器和客户端对证书透明的支持情况 小结 证书透明(Certificate Transparency, CT)是网络安全领域中的一个重要概念&#xff…...

智能优化算法应用:基于蜻蜓算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于蜻蜓算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于蜻蜓算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蜻蜓算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…...

【古诗生成AI实战】之二——项目架构设计

[1] 项目架构 在我们深入古诗生成AI项目的具体实践之前,让我们首先理解整个项目的架构。本项目的代码流程主要分为三个关键阶段: 1、数据处理阶段;   2、模型训练阶段;   3、文本生成阶段。 第一步:在数据处理阶段…...

动态网页从数据库取信息,然后展示。

把数据库的驱动放在bin目录下。 通过servlet 读取数据库的内容,生成session,然后跨页面传给展示页。 package src;import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSe…...

单片机学习3——数码管

数码管,根据内部结构,可分为共阴极数码管和共阳极数码管。七段发光管加上一个小数点,共计8段。因此,我们对它编程的时候,刚好是用一个字节。 数码管的显示方式: 1)静态显示; 2&…...

数据库表结构导出成Excel或Word格式

前言 该工具主要用于导出excel、word,方便快速编写《数据库设计文档》,同时可以快速查看表的结构和相关信息。 本博客仅作记录,最新源码已经支持多种数据库多种格式导出,有兴趣的可移步源码作者地址:https://gitee.co…...

School training competition ( Second )

A. Medium Number 链接 : Problem - 1760A - Codeforces 就是求三个数的中位数 : #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \nusing namespace std; typedef long long LL; const int N 2e510;inline void …...

深度解析 Docker Registry:构建安全高效的私有镜像仓库

文章目录 什么是Docker Registry&#xff1f;Docker Hub vs. 私有RegistryDocker Hub&#xff1a;私有Registry&#xff1a; 如何构建私有Docker Registry&#xff1f;步骤一&#xff1a;安装Docker Registry步骤二&#xff1a;配置TLS&#xff08;可选&#xff09;步骤三&…...

leetcode 不同的二叉搜索树

给你一个整数 n &#xff0c;求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种&#xff1f;返回满足题意的二叉搜索树的种数。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;5 示例 2&#xff1a; 输入&#xff1a;n 1 输出&#xff1a;…...

通俗易懂的spring Cloud;业务场景介绍 二、Spring Cloud核心组件:Eureka 、Feign、Ribbon、Hystrix、zuul

文章目录 通俗易懂的spring Cloud一、业务场景介绍二、Spring Cloud核心组件&#xff1a;Eureka三、Spring Cloud核心组件&#xff1a;Feign四、Spring Cloud核心组件&#xff1a;Ribbon五、Spring Cloud核心组件&#xff1a;Hystrix六、Spring Cloud核心组件&#xff1a;Zuul七…...

大数据预处理技术

文章目录 前言 大数据技术成为前沿专业 也是现在甚至未来的朝阳产业&#xff0c;大数据有分别是 数据预处理 数据存储 大数据处理和分析 数据可视化 部分组成 &#xff0c;大数据行业有数据则称王&#xff0c;大数据的核心是数据本身 怎么获取有价值的数据呢&#xff1f;本章讲…...

跳表的学习记录

跳表&#xff08;Skip List&#xff09;是一种数据结构&#xff0c;它通过在多个层次上添加额外的前向指针来提高有序数据的搜索效率。跳表与其他常见的有序数据结构&#xff08;如二叉搜索树、平衡树如AVL树和红黑树、B树等&#xff09;相比&#xff0c;具有其独特的优缺点&am…...

电子学会C/C++编程等级考试2022年09月(二级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:统计误差范围内的数 统计一个整数序列中与指定数字m误差范围小于等于X的数的个数。 时间限制:5000 内存限制:65536输入 输入包含三行: 第一行为N,表示整数序列的长度(N <= 100); 第二行为N个整数,整数之间以一个空格分…...

如何使用nginx部署静态资源

Nginx可以作为静态web服务器来部署静态资源&#xff0c;这个静态资源是指在服务端真实存在&#xff0c;并且能够直接展示的一些文件数据&#xff0c;比如常见的静态资源有html页面、css文件、js文件、图片、视频、音频等资源相对于Tomcat服务器来说&#xff0c;Nginx处理静态资…...

lua的gc原理

lua垃圾回收(Garbage Collect)是lua中一个比较重要的部分。由于lua源码版本变迁&#xff0c;目前大多数有关这个方面的文章都还是基于lua5.1版本&#xff0c;有一定的滞后性。因此本文通过参考当前的5.3.4版本的Lua源码&#xff0c;希望对Lua的GC算法有一个较为详尽的探讨。 L…...

redis作为缓存详解

目录 前言&#xff1a; 为什么说关系型数据库性能不高 如何提高MySQL并发量 缓存更新策略 定期更新 实时更新 内存淘汰策略 Redis内置的淘汰策略 缓存常见问题 缓存预热 缓存穿透 缓存雪崩 缓存击穿 前言&#xff1a; 对于缓存的理解&#xff0c;缓存目的就是为了…...

231127 刷题日报

这周值班。。多少写道题吧&#xff0c;保持每天的手感。老婆给买了lubuladong纸质书&#xff0c;加油卷。 1. 131. 分割回文串 写个这个吧&#xff0c;钉在耻辱柱上的题。 为啥没写出来&#xff1a; 1. 递归树没画对 把树枝只看做是1个字母&#xff0c;而且不清楚树枝和节点…...

【Linux】vim-多模式的文本编辑器

本篇文章内容和干货较多&#xff0c;希望对大家有所帮助&#x1f44d; 目录 一、vim的介绍 1.1 vi 与 vim的概念1.2 Vim 和 Vi 的一些对比 二、vim 模式之间的切换 2.1 进入vim2.2 [正常模式]切换到[插入模式]2.3 [插入模式]切换至[正常模式]2.4 [正常模式]切换至[底行模式…...

Ubuntu 启用 root 用户

在启用 root 用户之前&#xff0c;我们先来了解一下&#xff0c; ubuntu 命令的组成。 打开 ubuntu 的终端&#xff0c;现在的命令行是由 topeetubuntu:~$ 这几个字母组成&#xff0c;那么这几个字母都代表 什么意思呢&#xff1f; topeet …...

手摸手Element-ui路由VueRoute

后端WebAPI准备 https://router.vuejs.org/zh/guide/ https://v3.router.vuejs.org/zh/installation.html <template><el-table:data"tableData"style"width: 100%":row-class-name"tableRowClassName"><!-- <el-table-colum…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...