https
来源:互联网 发布:dailyview网络温度计 编辑:程序博客网 时间:2024/05/17 00:04
CRT 即 certificate的缩写,即证书。
X.509 是一种证书格式.对X.509证书来说,认证者总是CA或由CA指定的人,一份X.509证书是一些标准字段的集合,这些字段包含有关用户或设备及其相应公钥的信息。
X.509的证书文件,一般以.crt结尾,根据该文件的内容编码格式,可以分为以下二种格式:
PEM - Privacy Enhanced Mail,打开看文本格式,以"-----BEGIN..."开头, "-----END..."结尾,内容是BASE64编码.
Apache和*NIX服务器偏向于使用这种编码格式.
DER - Distinguished Encoding Rules,打开看是二进制格式,不可读.
Java和Windows服务器偏向于使用这种编码格式
证书中包含什么信息:
- 证书信息:过期时间和序列号
- 所有者信息:姓名等
- 所有者公钥
为什么服务端要发送证书给客户端?
互联网有太多的服务需要使用证书来验证身份,以至于客户端(操作系统或浏览器等)无法内置所有证书,需要通过服务端将证书发送给客户端。
客户端为什么要验证接收到的证书?
中间人攻击
客户端<------------攻击者<------------服务端 伪造证书 拦截请求
客户端如何验证接收到的证书?
为了回答这个问题,需要引入数字签名(Digital Signature)。
+---------------------+| A digital signature ||(not to be confused ||with a digital ||certificate) | +---------+ +--------+| is a mathematical |----哈希--->| 消息摘要 |---私钥加密--->| 数字签名 ||technique used | +---------+ +--------+|to validate the ||authenticity and ||integrity of a ||message, software ||or digital document. |+---------------------+
将一段文本通过哈希(hash)和私钥加密处理后生成数字签名。
假设消息传递在Bob,Susan和Pat三人之间发生。Susan将消息连同数字签名一起发送给Bob,Bob接收到消息后,可以这样验证接收到的消息就是Susan发送的
+---------------------+| A digital signature ||(not to be confused ||with a digital ||certificate) | +---------+| is a mathematical |----哈希--->| 消息摘要 ||technique used | +---------+|to validate the | ||authenticity and | ||integrity of a | ||message, software | 对|or digital document. | 比+---------------------+ | | | +--------+ +---------+ | 数字签名 |---公钥解密--->| 消息摘要 | +--------+ +---------+
当然,这个前提是Bob知道Susan的公钥。更重要的是,和消息本身一样,公钥不能在不安全的网络中直接发送给Bob。
此时就引入了证书颁发机构(Certificate Authority,CA),CA数量并不多,Bob客户端内置了所有受信任CA的证书。CA对Susan的公钥(和其他信息)数字签名后生成证书。
Susan将证书发送给Bob后,Bob通过CA证书的公钥验证证书签名。
Bob信任CA,CA信任Susan 使得 Bob信任Susan,信任链(Chain Of Trust)就是这样形成的。
事实上,Bob客户端内置的是CA的根证书(Root Certificate),HTTPS协议中服务器会发送证书链(Certificate Chain)给客户端。
- HTTPS
- HTTPS
- Https
- HTTPS
- https
- HTTPS
- HTTPS
- https
- HTTPS
- https
- HTTPS
- Https
- https
- HTTPS
- Https
- https
- https
- https
- 如何关闭电脑端口 关闭不常用端口的2种方法
- QT学习笔记01简介+程序框架+父对象+项目文件
- 【转载】经过show variables like xxx 详解mysql运行时参数
- MyEclipse2016 下载及破解教程
- PAT-B 1058. 选择题
- https
- linux中Cron定时任务系统命令详解
- ROS入门_1.12 使用 rosed 编辑ROS中的文件
- virtualenv的安装
- 2016总结
- 写出一个小程序,求出100-200之间的质数的个数并输出这些数
- http://blog.csdn.net/qq_24451605/article/details/44102963 hdu 4035经典概率dp求期望
- android中活动、服务之间传值简单总结笔记
- 资源网解压密码