网络编程_HTTPS非对称性加密传输

为什么出现了HTTPS

HTTP 有着一个致命的缺陷,那就是内容是明文传输的,没有经过任何加密,而这些明文数据会经过WiFi、路由器、运营商、机房等多个物理设备节点,如果在这中间任意一个节点被监听,传输的内容就会完全暴露,,这一攻击手法叫做MITM(Man In The Middle)中间人攻击。

HTTPS是什么

HTTPS其实就是将HTTP的数据包再通过SSL/TLS加密后传输

加密解密流程

在这里插入图片描述

  1. 用户在浏览器发起HTTPS请求(如 https://www.mogu.com/),默认使用服务端的443端口进行连接;
  2. HTTPS需要使用一套CA数字证书,证书内会附带一个公钥Pub,而与之对应的私钥Private保留在服务端不公开;
  3. 服务端收到请求,返回配置好的包含公钥Pub的证书给客户端;
  4. 客户端收到证书,校验合法性,主要包括是否在有效期内、证书的域名与请求的域名是否匹配,上一级证书是否有效(递归判断,直到判断到系统内置或浏览器配置好的根证书),如果不通过,则显示HTTPS警告信息,如果通过则继续;
  5. 客户端生成一个用于对称加密的随机Key,并用证书内的公钥Pub进行加密,发送给服务端;
  6. 服务端收到随机Key的密文,使用与公钥Pub配对的私钥Private进行解密,得到客户端真正想发送的随机Key;
  7. 服务端使用客户端发送过来的随机Key对要传输的HTTP数据进行对称加密,将密文返回客户端;
  8. 客户端使用随机Key对称解密密文,得到HTTP数据明文;

后续HTTPS请求使用之前交换好的随机Key进行对称加解密。
在这里插入图片描述
通俗地说:

  1. 服务器的公钥类似于一个只有服务器能打开带锁的盒子,用于加密;
    服务器把打开的盒子传给客户端
  2. 客户端把内容和加密方式放入盒子并锁住传给服务器;
  3. 中间即使经过别人的手,因为只有服务器有盒子的钥匙,所以不会被别人打开;
  4. 服务器收到盒子后,打开获得盒子中的内容及加密方式;
  5. 以后就可以直接用盒子中约定的加密方式交流,因为盒中的加密方式只有客户端和服务器两端知道,别人听不懂也看不懂。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值