深入理解https
来源:互联网 发布:linux arp 安装包 编辑:程序博客网 时间:2024/06/06 01:43
首先,我们来说一下http协议的缺点。
主要有一下三条:
1、通信使用明文,内容可能会被窃听。
2、通信方身份无法确认。
3、收到的报文可能已经被修改。
所以我们来采用HTTPS来解决以上问题。
- HTTPS
HTTP+加密+认证+完整性保护=HTTPS
TCP/IP协议族分为四层:应用层,传输层,网络层,链路层。
首先我们要知道,http是应用层的协议,而https并非应用层的新协议。而是HTTP的通信接口部分用SSL和TLS协议代替。也就是说SSL协议是夹在应用层和传输层之间的协议。
接下来讲一下SSL协议的机制
加密
我们先来了解一下加密方式:①公开密钥加密,也叫非对称加密,采用公开的密钥进行加密,然后用私有密钥进行解密。②共享密钥加密,也叫对称加密,加密和解密都采用一把密钥。
https采用了混合加密的机制。
①首先客户端会生成一个被称为Pre-master secret的随机密码串,将该密码串用公钥加密后发送给服务端,并提示服务器之后的报文都会用该密码串生成的共享密钥进行加密。
②然后服务器端会用私钥来解密回来的报文,获得该随机密码串。
③之后的服务器和客户端的通信都采用该密码串生成的共享密钥来加密报文,也就是对称加密。认证
那么如何确认客户端收到的公开密钥是服务器指派的那个密钥呢。
①服务器会把自己的公开密钥登录至数字证书认证机构。
②数字证书认证机构用自己的私有密钥想服务器的公开密码部署数字签名,并颁布公钥证书。
③客户端拿到服务器的公开证书后(包括公开密钥和数字签名),向数字证书机构认证,确认数字签名的正确来确定公开密钥的真实性。
接着就回到了上面加密的步骤。完整性
在以上流程中,应用层发送数据会附带一种叫MAC的报文摘要,MAC能查知报文是否被篡改,来确认报文的完整性。
总结
①服务器会把自己的公开密钥登录至数字证书认证机构。 ②数字证书认证机构用自己的私有密钥想服务器的公开密码部署数字签名,并颁布公钥证书。 ③客户端拿到服务器的公开证书后(包括公开密钥和数字签名),向数字证书机构认证,确认数字签名的正确来确定公开密钥的真实性。 ④首先客户端会生成一个被称为Pre-master secret的随机密码串,将该密码串用公钥加密后发送给服务端,并提示服务器之后的报文都会用该密码串生成的共享密钥进行加密。 ⑤然后服务器端会用私钥来解密回来的报文,获得该随机密码串。 ⑥之后的服务器和客户端的通信都采用该密码串生成的共享密钥来加密报文。
- 深入理解https
- 深入理解HTTPS原理、过程与实践
- 深入理解HTTP协议及原理分析之Https
- iOS进行HTTPS适配深入理解与实践
- 理解 HTTPS
- 理解HTTPS
- https理解
- HTTPS理解
- 理解HTTPS
- 深入了解HTTPS
- 深入理解
- 对https的理解
- 对https的理解
- 理解 HTTPS 协议
- 对HTTPS的理解
- Https协议完全理解
- https的理解
- https原理理解
- java实例对象的创建方式
- 杭电acm1164 分解成质因数
- 几个常用快速无损压缩算法性能比较
- 宜信2017 数据挖掘笔试题(广度优先遍历)
- 201312-1 出现次数最多的数
- 深入理解https
- day17之将二叉搜索树转换成一个排序的双向链表
- cs224
- 来看看视频种子骗局
- Quantrader学习笔记
- oracle 12c安装过程中报错:[INS-32102]指定的Oracle主目录已存在
- PAE物理地址扩展怎么开启?XP系统PAE的开启方法
- php QQ第三方登录/OAuth2.0验证
- 51Nod-1540-俄罗斯赌轮盘