交叉证书

简介: ## 证书4要素 pubkey(公钥) ,有一个其一一对应的私钥,由证书拥有者保存。 subject(名字),可以理解为证书的名字,你可以理解为 网站的域名。 issuer(颁发者的名字),即上级证书的subject。 signature(签名) ,上级证书使用私钥对当前证书进行签名的值。 ## 证书签名 假设 有 3 级 证书 ![image.png](

证书4要素

pubkey(公钥) ,有一个其一一对应的私钥,由证书拥有者保存。
subject(名字),可以理解为证书的名字,你可以理解为 网站的域名。
issuer(颁发者的名字),即上级证书的subject。
signature(签名) ,上级证书使用私钥对当前证书进行签名的值。

证书签名

假设 有 3 级 证书

image.png
首先 ,R1 CA证书 是由 R1证书签发,而www.taobao.com是由R1 CA证书签发。

签发过程核心就是签名,比如 签发R1 CA证书时,拿R1证书的私钥对R1 CA证书进行数字签名操作,签名的值添加在R1 CA证书中。同理签发www.taobao.com这张证书,是用 R1 CA证书的私钥对该证书进行数字签名,签名值添加在www.taobao.com的证书中。

被数字签名的值,是该证书的HASH。举个例子当 使用 R1证书加签R1 CA时,其签名值是 R1_privatekey_sign( HASH(R1 CA) )。

数字证书校验

由于 私钥签名的数据,可以使用公钥校验,假设我们信任R1 + R1 CA证书,我们收到www.taobao.com这个证书,如何校验?

首先,构造证书链,即 拿 server的证书然后和本地(操作系统或者浏览器内置)的可信证书进行上级证书的查找,一般通issuer字段查找(还有通过keyid的方式,这里不讨论),比如 www.taobao.com的证书的issuer是R1 CA,那么在本地仓库里面找R1 CA,接着找R1 CA的上级证书,直到找到最高一级的证书,即R1证书。

第二步,光靠名字来找上级是不够的,因为名字可以伪造,我们还需要对证书的签名值进行校验,我们知道,私钥签名的数据可以使用公钥来校验,所以,首先拿R1 CA证书的的公钥,去解开 www.taobao.com签名值,然后校验其值是否是www.taobao.com的hash,同理可以验证证书链中R1是否是R1 CA的上级证书。 签名校验成功,表明了2点
1:上下级关系正确
2:证书被未篡改,如果证书被篡改,使用上级证书的公钥解开当前证书后,会发现其值和当前证书的HASH值不一样

交叉证书

如果一个CA机构有如下2个受信的链:

image.png

那么又 R1 CA签发的证书只能由R1+R1 CA进行验证;视同 R3 CA签发的证书只能由R3+R3 CA进行签发。

但是有些客户端只有R1和R1 CA而没有R3以及R3 CA,而有些客户端只有R3和R3 CA而没有R1 以及 R1 CA ,我们能不能让证书有2条可以用来验证的链呢? 比如 www.taobao.com->...->R1 是一条证书链, www.taobao.com->...->R3 也算一条证书链,这样假设有些客户端只信任R1或者R3也能同时验证同一个证书。

为了达到这个目的,我们需要做这么一个操作,就是 使用 R1 对 R3进行签名生成一张叫做 R1-R3 的证书(即使用R1的私钥对R3进行签名)。

image.png

注意,R1-R3 拥有和 R3一模一样的 subject+公钥,和R3唯一的区别就是 R3是自签名证书,其issuer是R3自己,而 R1-R3 是中间证书,其issuer是R1。

接着,使用 R1-R3 来对 签发 www.taobao.com ,即 www.taobao.com 的 issuer 是R3(上面说了,issuer就是个字符串,和上级证书的subject一样,而R1-R3 这张证书的subject就是R3),这张 R1-R3 就是所谓的交叉证书corss-certificate

image.png

www.taobao.com 这样的证书,如何能让只信任R1的客户端进行验证:

1、构造证书链
服务器发送 www.taobao.com + R1 R3,客户端构造证书链,自然,通过找 www.taobao.com 的issuer:R3,在server发送的证书中找到了 R1 R3这张证书 ,通过 R1 R3 的issuer:R1,在本地找到了R1。
2、验证证书链
略,通上节一致,通过上级证书的公钥验证当前证书的签名值。

www.taobao.com 这样的证书,如何能让只信任R3的客户端进行验证:

1、构造证书链
服务器发送 www.taobao.com ,客户端构造证书链,自然,通过找 www.taobao.com 的issuer:R3,在本地找到了受信的R3 ,R3是根证书,证书链构造完成。

2、验证证书链
虽然,实际上 www.taobao.com 的证书是由 R1 R3这张证书签名的,但是上面说过,R1 R3这张证书的公钥和R3一样,也就意味着使用R1 R3的公钥,能够验证 www.taobao.com的签名值。

结尾

实际上,使用R1-R3www.taobao.com签名的效果,和使用R3www.taobao.com签名的效果是一模一样的,因为R1-R3R3拥有相同的subject以及公钥,自然拥有相同的私钥。

说的通俗一点,就是CA机构通过欺骗的方式,签了一张交叉证书,这张证书能够让客户端的证书链引导到R1。

交叉证书有什么作用?

1、兼容老设备。假设,老的客户端只支持R1根证书,但是我们的证书是R3是签名的,那需server发送交叉证书,来“引导”客户端使用R1校验。

2、CA机构合并,假设R1 收购了R3,R1为了“收回最终校验权”,可以生成这么一个交叉证书,那么使用R3签名的证书,最后都被R1来校验。

目录
相关文章
|
Windows
mathtype7产品激活密钥最新
MathType是强大的数学公式编辑器,MathType公式编辑器可以说是专门为理科生准备的软件,它可以帮助用户快速的在各种文档中插入符号和公式,不论是简单的公式和符号,还是复杂的都可以非常轻松的输入,并且在与office文档结合使用时,表现的非常完美,是非常好的一款软件,与常见的文字处理软件和演示程序配合使用,能够在各种文档中加入复杂的数学公式和符号,可用在编辑数学试卷、书籍、报刊、论文、幻灯演示等方面,是编辑数学资料的得力工具。
37622 0
|
Web App开发 运维 安全
SSL/TLS证书1年有效期新规已至,被“证书过期”支配的恐惧又增加了!
9月1日起,两年期公共SSL/TLS证书正式告别了行业,在三大浏览器(Apple Safari、 Google Chrome、Mozilla Firefox)的推动下,SSL/TLS证书最长有效期变更为13个月,同时,全球各大证书权威签发机构已停止签发有效期超过1年(398天)的SSL证书。
SSL/TLS证书1年有效期新规已至,被“证书过期”支配的恐惧又增加了!
|
13天前
|
机器学习/深度学习
交叉熵损失函数的使用目的(很肤浅的理解)
交叉熵损失函数的使用目的(很肤浅的理解)
|
2月前
|
机器学习/深度学习 JavaScript Python
熵、联合熵、相对熵、交叉熵、JS散度、互信息、条件熵
熵、联合熵、相对熵、交叉熵、JS散度、互信息、条件熵
19 1
|
2月前
|
数据可视化
使用非凸惩罚函数回归(SCAD、MCP)分析前列腺数据
使用非凸惩罚函数回归(SCAD、MCP)分析前列腺数据
|
11月前
335. 路径交叉
335. 路径交叉
34 0
|
7月前
|
算法 安全 物联网
CFCA证书——基于SM2/3算法的安全信任
CFCA证书——基于SM2/3算法的安全信任
117 0
CFCA证书——基于SM2/3算法的安全信任
|
机器学习/深度学习 算法 计算机视觉
多目标跟踪算法(最近邻NN)(全局最近邻GNN)(概率数据关联PDA)(联合概率数据关联JPDA)的学习
多目标跟踪算法(最近邻NN)(全局最近邻GNN)(概率数据关联PDA)(联合概率数据关联JPDA)的学习
多目标跟踪算法(最近邻NN)(全局最近邻GNN)(概率数据关联PDA)(联合概率数据关联JPDA)的学习
|
存储 安全 Java
新规要求OV 代码签名证书私钥强制硬件存储,“软证书”即将停发!
新规要求将影响从2023 年 06 月 01 日起新颁发的OV代码签名证书。
192 0
新规要求OV 代码签名证书私钥强制硬件存储,“软证书”即将停发!
|
存储 算法 安全
同态随机基加密的量子多方密码-数学公式
同态随机基加密的量子多方密码-数学公式
84 0