详解HTTPS中数字证书验证系统
2016-03-28 09:04
731 查看
关于浏览器验证网站数字证书的流程网上的资料一般讲的都不是很清楚。在查阅了不少资料后终于搞清楚这部分。
CA下发给网站的证书都是一个证书链,也就是一层一层的证书,从根证书开始,到下级CA,一层一层,最后一层就是网站证书。
浏览器收到服务器发送的证书后,需要验证其真实性。而证书的签名是通过签名算法和上级CA的私钥生成的,并非很多文章里简单说的靠CA私钥生成。浏览器需要用上级CA的公钥才能解密签名,并与生成的指纹对比,那么问题来了,这个上级CA的公钥从哪来呢?
答案是此公钥来自于证书链该层的上级CA的证书明文内。单个X509v3证书由以下部分组成:
X.509v3证书由三部分组成:
tbsCertificate (to be signed certificate),待签名证书。
SignatureAlgorithm,签名算法。
SignatureValue,签名值。
tbsCertificate又包含10项内容,在HTTPS握手过程中以明文方式传输:
Version Number,版本号。
Serial Number,序列号。
Signature Algorithm ID,签名算法ID。
Issuer Name,发行者。
Validity period,有效时间。
Subject name ,证书主体名称。
Subject Public Key Info ,证书主体公钥信息,包含公钥算法和公钥值。
Issuer Unique Identifier (optional),发行商唯一ID。
Subject Unique Identifier (optional),主体唯一ID。
Extensions (optional),扩展。
证书链由多个证书一层一层组成的,除了最底层的网站证书的公钥是给用户加密报文外,其他层证书中的公钥均用于解密底层的证书指纹签名。最高层的根证书是自签名的,也就是自己颁发给自己,所以它的公钥不仅用来解密下层的签名,也用来给自己的签名解密。
验证证书是否真实的任务完成了,那么证书是否可靠如何验证呢?一句话,只要根证书可靠,整个证书链就可靠,而根证书是否可靠要看这个根证书是否在操作系统或浏览器内置的可信根证书内,在的话就可信。
CA下发给网站的证书都是一个证书链,也就是一层一层的证书,从根证书开始,到下级CA,一层一层,最后一层就是网站证书。
浏览器收到服务器发送的证书后,需要验证其真实性。而证书的签名是通过签名算法和上级CA的私钥生成的,并非很多文章里简单说的靠CA私钥生成。浏览器需要用上级CA的公钥才能解密签名,并与生成的指纹对比,那么问题来了,这个上级CA的公钥从哪来呢?
答案是此公钥来自于证书链该层的上级CA的证书明文内。单个X509v3证书由以下部分组成:
X.509v3证书由三部分组成:
tbsCertificate (to be signed certificate),待签名证书。
SignatureAlgorithm,签名算法。
SignatureValue,签名值。
tbsCertificate又包含10项内容,在HTTPS握手过程中以明文方式传输:
Version Number,版本号。
Serial Number,序列号。
Signature Algorithm ID,签名算法ID。
Issuer Name,发行者。
Validity period,有效时间。
Subject name ,证书主体名称。
Subject Public Key Info ,证书主体公钥信息,包含公钥算法和公钥值。
Issuer Unique Identifier (optional),发行商唯一ID。
Subject Unique Identifier (optional),主体唯一ID。
Extensions (optional),扩展。
证书链由多个证书一层一层组成的,除了最底层的网站证书的公钥是给用户加密报文外,其他层证书中的公钥均用于解密底层的证书指纹签名。最高层的根证书是自签名的,也就是自己颁发给自己,所以它的公钥不仅用来解密下层的签名,也用来给自己的签名解密。
验证证书是否真实的任务完成了,那么证书是否可靠如何验证呢?一句话,只要根证书可靠,整个证书链就可靠,而根证书是否可靠要看这个根证书是否在操作系统或浏览器内置的可信根证书内,在的话就可信。
相关文章推荐
- Android Manifest 用法
- Android学习笔记(二九):嵌入浏览器
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- Linux实现https方式访问站点
- 小白观察:微软释放出其基于 Chromium 的 Edge 浏览器
- HTTPS科普扫盲帖
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- 用ASP编写的加密和解密类
- 解密网页加密的两个方法
- 浏览器 cookie 限制
- 玩转浏览器IE7的5个顶级使用技巧
- 字符集导致的浏览器跨站脚本攻击分析
- Ruby实现的矩阵连乘算法
- VBS脚本加密/解密VBS脚本(简易免杀版1.1)
- C#插入法排序算法实例分析
- 更改IE浏览器的图标
- 如何创建ajax对象并兼容多个浏览器