https原理理解
2017-08-10 18:39
423 查看
https要使客户端与服务器端的通信过程得到安全保证,必须使用对称加密算法,但是协商对称加密算法的过程,需要使用非对称加密算法来保证,然而使用非对称加密的过程也不安全,会有中间人篡改公钥的可能,所以客户端与服务器不直接使用公钥,而是使用数字证书颁发机构的证书来保证非对称加密过程本身的安全。
直接将公钥传递给客户端会有公钥被调包的问题,因为客户端无法确认返回公钥的人是服务器还是中间人,需要使用第三方机构使用他的私钥对服务端的公钥进行加密后再传给客户端,客户端使用第三方机构的公钥进行解密。
中间人也可以找第三方机构制作证书,客户端在这种情况下无法分辨接收的是服务器的证书还是中间人的证书。数字签名可以解决同一颁发机构颁发的不同证书被篡改的问题。
第三方机构对证书编号用私钥加密后放在证书上,这样是为了避免证书编号不会被调包。证书上写如何根据证书内容生成证书编号,客户端拿到证书后根据证书上的方法自己生成一个证书编号,如果生成的证书编号与解密后的证书上的证书编号相同,那么说明这个证书编号是真实的。
证书是https中的数字证书,证书编号是数字签名。
现实中,浏览器和操作系统会维护一个权威的第三方机构(包括他们的公钥),因为客户端收到的证书中会写有颁发机构,客户端就根据这个颁发机构的值在本地找相应的公钥。
直接将公钥传递给客户端会有公钥被调包的问题,因为客户端无法确认返回公钥的人是服务器还是中间人,需要使用第三方机构使用他的私钥对服务端的公钥进行加密后再传给客户端,客户端使用第三方机构的公钥进行解密。
中间人也可以找第三方机构制作证书,客户端在这种情况下无法分辨接收的是服务器的证书还是中间人的证书。数字签名可以解决同一颁发机构颁发的不同证书被篡改的问题。
第三方机构对证书编号用私钥加密后放在证书上,这样是为了避免证书编号不会被调包。证书上写如何根据证书内容生成证书编号,客户端拿到证书后根据证书上的方法自己生成一个证书编号,如果生成的证书编号与解密后的证书上的证书编号相同,那么说明这个证书编号是真实的。
证书是https中的数字证书,证书编号是数字签名。
现实中,浏览器和操作系统会维护一个权威的第三方机构(包括他们的公钥),因为客户端收到的证书中会写有颁发机构,客户端就根据这个颁发机构的值在本地找相应的公钥。
相关文章推荐
- 爬虫之我理解-https原理
- 理解 HTTPS 原理,SSL/TLS 协议
- 【思维导图】深入理解HTTPS原理、过程
- 深度理解HTTPS原理
- 深入理解HTTP协议及原理分析之Https
- https 原理理解
- 深入理解HTTPS原理、过程与实践
- 自理解Https原理:证书传递,握手信息传递,数据加密解密的分析。
- 深入理解HTTPS通讯原理(单向认证)
- 理解PHP网页运行原理
- 理解HTTP和HTTPS的区别
- https 原理 算法等基础常识整理
- 轻松理解 4000 :硬盘的读写原理
- 理解sql数据库索引及设计原理
- JAVA基础之理解JNI原理(有需要, 所以学习一下)
- InnoDB事务锁之行锁-隐式锁转换显示锁举例理解原理
- 编译原理文法知识通俗趣味理解
- jsp原理(理解)
- https原理及tomcat配置https方法