网络原理 一> 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地址,域名 服务器的公钥等等进行计算算出一个校验和,拿着这个校验和与证书上的校验和进行比较

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

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

相关推荐
Mr.kanglong1 小时前
【Linux】HTTP协议
网络·网络协议·http
HelloZheQ1 小时前
解析 HTTP:了解 Web 通信的基础
前端·网络协议·http
打鱼又晒网2 小时前
Linux网络 | 理解Web路径 以及 实现一个简单的helloworld网页
网络·网络协议·http
鱼大大博客2 小时前
Edge SCDN有些什么作用?
网络·安全·edge
小曾同学.com3 小时前
进程间通信的“五大武器”
大数据·服务器·网络
静心观复4 小时前
Socket、HTTP 和 gRPC
网络·网络协议·http
小技与小术4 小时前
http性能测试命令ab
网络·网络协议·http
赴前尘4 小时前
go 模拟TCP粘包和拆包,及解决方法
网络·tcp/ip·golang
maply5 小时前
常用的公共 NTP(网络时间协议)服务器
运维·服务器·网络