图解网络|你知道HTTP与HTTPS之间区别吗()
HTTP与HTTPS
- 一、HTTP与HTTPS的区别
- 二、HTTPS解决了HTTP的三大问题
-
- 混合加密
- 摘要算法
- 数字证书
- 三、SSL/TLS建立流程
-
- 基本流程
- 详细流程
-
- 1.ClientHello
- 2.ServerHello
- 3.客户端回应
- 4.服务器最后的回应
一、HTTP与HTTPS的区别 文字描述就可以看出HTTPS肯定是HTTP的升级版。
- HTTP是明文传输,存在不安全问题。HTTPS则很好地解决了这个问题,在TCP和HTTP之间加入了SSL/TLS安全协议,使得报文能够加密传输。
- HTTP连接的建立相对简单一些,只需要TCP的三次握手就可以进行HTTP的报文传输。HTTPS除了TCP的三次握手,还需要进行SSL/TLS的握手过程,才可以进行加密传输。
- HTTP的端口是80,HTTPS是443。
- HTTPS需要向CA (证书权威机构)申请数字证书,来确保服务器的身份是可信的。
- 窃听风险(明文传输)
- 篡改风险(报文完整性无法控制)
- 冒充风险(无法验证通信方的身份)
- 信息加密
- 校验机制
- 身份证书
文章图片
HTTPS采用的时对称加密和非对称加密结合的混合加密方式
- 通信建立前采用非对称加密的方式交换会话密钥
- 通信过程中全部使用对称加密的会话密钥的方式加密明文数据
- 对称加密:只使用一个密钥,运算速度快,密钥必须保密,无法做到安全的密钥交换
- 非对称加密:使用两个密钥,公钥可以任意分发,而私钥必须保密,解决了密钥交换问题但速度慢
客户端在发送明文之前会通过摘要算法算出明文的唯一标识,发送的时候把唯一标识和明文?同加密成密文后,发送给服务器,服务器解密后,用相同的摘要算法算出发送过来的明?,通过比较客户端携带的唯一表示和当前算出的唯一标识做比较,若相同,则说明数据是完整的。
文章图片
数字证书 数字证书是为了保证公钥不被篡改和信任度,第三方权威机构CA(数字证书认证机构),将服务器公钥放在数字证书(由数字证书认证机构颁发)中,只要证书是可信的,公钥就是可信的。
文章图片
三、SSL/TLS建立流程 基本流程
- 客户端向服务器索要并验证服务器的公钥
- 双方协商生产会话密钥
- 双方采用会话密钥进行加密通道
首先,由客户端向服务器发起加密通道请求。
客户端主要向服务器发送以下信息
- 客户端支持的SSL/TLS协议版本
- 客户端产生的随机数(用于生产会话密钥)
- 客户端支持的密码套件列表(如RSA加密算法)
服务器收到客户端请求,向客户端发出响应。
回应内容有
- 确认SSL/TLS协议版本,如果不支持,则关闭加密通信
- 服务器产生的随机数(用于生产会话密钥)
- 确认的密码套件列表(如RSA加密算法)
- 服务器的数字证书
客户端收到服务器回应之后,首先通过浏览器或者操作系统中的CA公钥,确认服务器数字证书的真实性,如果证书没有问题,客户端会从数字证书中取出服务器的公钥,然后使用它进行加密报文,向服务器发送如下信息
- 一个随机数。该随机数会被服务器公钥加密
- 加密通信算法改变通知:表示随后的信息都将用会话密钥加密通信
- 客户端握手结束通知:表示客户端的握手阶段已经结束。这一项同时把之前所有的内容的发生的数据做个摘要,用来服务端校验
服务器收到客户端的第三个随机数之后,通过协商的加密算法,计算出本次通信的会话密钥,然后向服务器发送最后的信息
- 加密通信算法改变通知:表示随后的信息都将用会话密钥进行加密通信
- 服务器握手结束通知,表示服务端端的握手阶段已经结束。这一项同时把之前所有的内容的发生的数据做个摘要,用来客户端校验
推荐阅读
- 热闹中的孤独
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- parallels|parallels desktop 解决网络初始化失败问题
- 尽力
- 你到家了吗
- 爱就是希望你好好活着
- 为什么你的路演总会超时()
- 猎杀IP
- 死结。
- 跌跌撞撞奔向你|跌跌撞撞奔向你 第四章(你补英语,我补物理)