网络原理 一> HTTPS协议详解,加密方式, 证书原理,中间人攻击 (一文搞懂)

目录:

一:HTTPS协议基本介绍

二.HTTPS协议的加密方式

三. 证书原理说明

一:HTTPS基本介绍:

1. HTTPS是什么:

HTTPS 也是⼀个应用层协议. 是在 HTTP 协议的基础上引入了⼀个加密层.HTTP 协议内容都是按照文本的方式明文传输的, 这就导致在传输过程中出现⼀些被篡改的情况

**具体:HPPT +**S (SSL/TLS) 这个也是一个应用层协议,专门用来加密


2.运行商劫持:

由于我们通过⽹络传输的任何的数据包都会经过运营商的⽹络设备(路由器, 交换机等), 那么运营商的网络设备就可以解析出你传输的数据内容, 并进⾏篡改. 点击 "下载按钮", 其实就是在给服务器发送了⼀个 HTTP 请求, 获取到的 HTTP 响应其实就包含了该 APP 的下载链接. 运营商劫持之后, 就发现这个请求是要下载天天动听, 那么就自动的把交给用户的响应 给篡改成 "QQ浏览器" 的下载地址了


3.运行商为什么要进行劫持?

不止运营商可以劫持, 其他的 黑客 也可以用类似的⼿段进⾏劫持,来窃取⽤⼾隐私信息, 或者篡改内容. 试想⼀下, 如果⿊客在用户登陆⽀付宝的时候获取到用户账⼾余额, 甚⾄获取到用户的支付密码..... 在互联网上, 明⽂传输是比较危险的事情!!! HTTPS 就是在 HTTP 的基础上进行了加密, 进⼀步的来保证用户的信息安全


4.什么是加密:

加密:就是把明文 (要传输的信息)进行⼀系列变换, 生成密文 。

解密:就是把密文再进行一系列变换, 还原成明文。



二.HTTPS的加密方式:

1.对称加密:

加密和解密使用同一个密钥。

对称加密需要把对称密钥传输给对端,对方才可以根据这个对称密钥,进行加密解密,构造请求和响应也是通过对称密钥加密传输过去。


**痛点:**密钥也是明文传输的,可能被黑客和运营商劫持。

密钥一旦被 黑客和运营商拿到就没有意义了。****所以我们要引入非对称加密!


2.非对称加密: (服务器会自己生成一对公钥和私钥)

思想:我们把对称密钥再包一层进行加密传输,黑客要拿到私钥才可以

进行解密拿到对称密钥!但是****私钥是服务器自己持有不会公开出去。

具体加密方式:

有两个密钥公钥和私钥,公钥给对称密钥进行了加密

这里是私钥对公钥进行解密,才可以拿到里面的对称密钥。

服务器会自动生成 私钥黑客拿不到只有服务器自己持有,公钥是公开的都可以拿得到

注意:这里如果直接全部用非对称加密进行加密,效率会很慢,所以我们都是两个加密方式都采用。



三. 证书原理说明:

1. 上述加密方式还不够安全,可能会被"中间人攻击"


说一下中间人攻击:

被入侵的中间运营商设备,会自己生成一对公钥和私钥,在客户端询问服务端时,把这个 "假公钥" 给客户端,客户端误以为是服务端发来的,就拿着这个 "假公钥" 自己的对称密钥加密,这样运营商 / 黑客就拿到了对称密钥。 黑客会继续拿着服务端发来的 "真公钥"加密对称密钥发送给服务器,实现偷梁换柱


2.校验机制**(证书)****:**

中间人攻击主要是因为客户端区分不了,收到的公钥是服务器真实的公钥,还是"假公钥"

引入 校验机制就是来解决这个问题,我们安装fiddler就相当于授权


4.证书是什么:

证书是第三方机构给服务器颁发的证书,需要服务器就行申请。


5.证书的内容:

(1).服务器的IP地址,域名

(2).服务器的公钥

(3).证书的有效期是多久

(4).证书的有效期是多久

(5).证书的数字签名


6.数字签名:

实际上是一个被加密的校验和,通过这个校验和来让服务器识别 "真公钥" 来防止中间人攻击 这个校验和被第三方机构自己生成的的私钥进行加密,第三方机构生成的公钥让客户端拿到来获取这个校验和


7.证书的工作原理:

客户端会向服务器要证书,这个时候客户端就拿到了证书,拿到后会根据自己从服务端拿到的信息"主要是公钥"根据证书中的内容->服务器的IP地址,域名 服务器的公钥等等进行计算算出一个校验和,拿着这个校验和与证书上的校验和进行比较

如果发现校验和,不一样就会报错证书无效。

补充:证书的数字签名中的校验和****是通过拿到第三方生成的公钥进行解密拿到的

相关推荐
myrouya12 分钟前
自动化运维实验(二)---自动识别设备,并导出配置
运维·网络·自动化
蝸牛ちゃん1 小时前
IPv6互联网地址解析
运维·服务器·网络·ipv6
k↑5 小时前
物联网之小白调试网关设备
网络·物联网
誰能久伴不乏5 小时前
Qt TCP 客户端对象生命周期与连接断开问题解析
网络·qt·tcp/ip
荒野小漂客6 小时前
Window路由配置说明
网络·智能路由器
MediaTea11 小时前
Python 第三方库:Requests(HTTP 客户端)
开发语言·网络·python·网络协议·http
Mr_Xuhhh11 小时前
HTTPS 协议原理
网络·网络协议·测试工具·http·https
i_am_a_div_日积月累_11 小时前
http与https协议区别;vue3本地连接https地址接口报500
网络协议·http·https
仍然探索未知中11 小时前
NAT技术、代理服务器+网络通信各层协议
网络·智能路由器
keven-wang11 小时前
ipv6 是什么?如何测试两个ipv6地址是否可以直连互通?
网络·ipv6