【计算机网络】HTTPS协议

一、HTTPS前置概念

1.加密的相关概念

加密:将明文通过密钥变成密文

解密:将密文通过密钥变成明文

2.常见的加密方式

(1)对称加密

加密和解密所用的密钥是相同的;并且加密速度快

(2)非对称加密

非对称加密要用到两个密钥:一个叫做"公钥",一个叫做 "私钥"

通过公钥对明文加密, 变成密文;通过私钥对密文解密, 变成明文

通过私钥对明文加密, 变成密文;通过公钥对密文解密, 变成明文

非对称加密最大的问题就是运算速度非常慢

3.数据摘要(数据指纹)

数据摘要的用处:对比两个文件是否是同一个文件(进行数据对比)

4.数据签名

5.HTTPS概念

HTTPS 也是一个应用层协议,是在 HTTP 协议的基础上引入了一个加密层

二、四种有问题的方案

1.只使用对称加密

此方案无法让双方都知道密钥,所以在进行正常加密通信前要先解决如何让双方得到密钥的问题

2.一方使用非对称加密

只能保证 Client->Server 的数据安全,不能保证 Server->Client 的数据安全

3.双方使用非对称加密

确实保证了Client->Server 和 Server->Client 的数据安全,但是都用非对称加密运算速度太慢

并且这种方案还有一个隐藏的问题!(中间人把公钥调包了 -- 中间人攻击)

4.非对称加密+对称加密

利用非对称加密传递客户端的私钥C',实际通信用对称加密,这种方案解决了速度慢的问题

但是这种方案还是有一个和上面一样的隐藏问题!(中间人把公钥调包了 -- 中间人攻击)

5.中间人攻击

所以在正常的加密数据通信之前,首先要解决公钥如何被对方安全收到的问题 -- 引入CA认证

三、HTTPS的真正方案

1.CA认证

服务端在使用HTTPS前,需要向CA机构申领一份数字证书,证书可以证明服务端公钥的权威性

(1)整体流程

(2)签发证书

因为我们使用CA的私钥形成数据签名,所以,只有CA能形成可信任的证书

(3)验证证书

浏览器(客户端)验证证书的流程如图

目前,中间人没有办法进行任何局部的替换,无论是明文,还是签名!

明文不能被替换:对明文做摘要,如果被篡改就和证书上的摘要对不上了

签名不能被替换:签名只能由CA公钥解密,如果被篡改就解不开了

2.HTTPS的方案

HTTPS采用的方案是:证书认证+非对称加密+对称加密

相关推荐
kuroomi1 小时前
Docker 与容器基础
linux·运维·docker
djarmy5 小时前
MAIN.c(1): warning C318: can’t open file ‘STC8G.H’ 报错 解决 分析
c语言·开发语言·mongodb
HEJOO96 小时前
深入理解 Java volatile 关键字:原理、用法与常见误区
java·开发语言·spring
曹牧6 小时前
Java:no content to map due to end of input
java·开发语言
梦梦代码精6 小时前
《回收租赁系统技术选型避坑指南:业务闭环与二开自由度详解》
开发语言·低代码·docker·开源·代码规范
两点王爷6 小时前
SpringBoot 项目集成 GeoServer 源码,实现地图服务发布
java·spring boot·后端
隔窗听雨眠6 小时前
记一次SQL Server数据库性能分析:从CPU100%到单配置修复的完整诊断
开发语言·数据库·php
David猪大卫6 小时前
【C++修炼】智能指针使用及原理
开发语言·c++·经验分享·笔记·学习·考研·面试
charlie1145141916 小时前
现代Qt开发之图像处理进阶:像素操作与格式转换
开发语言·图像处理·qt
李永奉6 小时前
中科蓝讯SDK开发-BT893x 面条耳机连接vivo手机后连接APP端,最后手机端设置页面手动断开蓝牙连接,此时耳机端假断开
c语言·开发语言·嵌入式硬件·物联网·智能手机·电脑