Https 证书校验加密机制
数字证书中包含的信息:
1、证书的版本信息;
2、证书的序列号,每个证书都有一个唯一的证书序列号;
3、证书所使用的签名算法;
4、证书的发行机构名称,命名规则一般采用X.500格式;
5、证书的有效期,通用的证书一般采用UTC时间格式;
6、证书所有人的名称,命名规则一般采用X.500格式;
7、证书所有人的公开密钥;
8、证书发行者对证书的签名。
流程:
1.客户端发送https请求。
2.服务端返回数字证书给客户端。
3。 客户端进行验证 ,验证成功,则随机生成字符串,并使用证书上的公钥进行加密发送给服务端。
4.服务端使用私钥对加密串进行解密,解出来的就是对称加密的密钥。
第三步中客户端具体验证原理:
签名:服务器对原信息进行HASH计算(一般是sha1或sha256)生成一个hash值,这个值就是指纹,然后将指纹用 CA机构的根私钥 进行非对称加密,生成的就是数字签名。
浏览器从证书中获取证书的颁发机构,从系统内置CA机构证书中查找,如果没有,就会有警告提示,就的话就获取对应机构的根公钥,用根公钥对签名进行非对称解密,得到这个指纹hash值。客户端再次对原信息行一次HASH计算,得到一个新的指纹hash1值,如果解密出来的hash与浏览器自己算出来的hash1一致,就说明证书没有被修改过。
(之所以是对指纹进行加密,是因为如果对原文进行加密的话,非对称加密的速度非常的慢,效率不高)
广告 您可能关注的内容 |