IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> https的加密原理 -> 正文阅读

[网络协议]https的加密原理

1.加密方式

1.1对称加密

对称加密的秘钥只有一个:

data^x=result;
result^x=data;

将data使用x进行加密得到result,再使用x进行解密得到data。称x为对称加密的秘钥。

1.2非对称加密

非对称加密的秘钥有两个,一个称为公钥,一个称为私钥。公钥是公开的在网络中进行传输的,私钥是不公开的。
可以用公钥加密私钥解密,也可以使用私钥加密公钥解密。不能使用公钥加密,公钥解密,或者私钥加密,私钥解密。

1.3防止文本内容被篡改

首先将文本内容使用哈希散列形参一个字符序列(对文本有任何修改,哪怕一个标点,都会形成差异非常大的哈希结果),然后使用加密算法对字符序列进行加密形成一个数字签名。
在这里插入图片描述
当传输文本的时候,会将文本和数字签名一起传输出去,对方收到后将文本和数字签名进行拆分,文本按照哈希散列的形式生成字符序列,数字签名使用解密算法形成字符序列,然后对该字符序列进行比较即可,若一样则文本没有被修改,若不同则文本被修改了。
在这里插入图片描述
字符序列我们有时称之为数据摘要。

2.https的加密

2.1若使用对称加密

在这里插入图片描述
可以看到这是一个相当不安全的数据加密形式,一旦被拦截数据就会流失,对方可以使用公钥X来解密数据。

2.2若使用非对称加密

在这里插入图片描述
当客户端向服务端发送数据传输申请的时候,服务端会给客户端发送一个公钥,客户端使用该公钥对数据进行加密,并将加密之后的数据发送给服务端,服务端接收到数据使用与该公钥配对的私钥进行解密,从而拿到数据。
注意,使用这种方式进行通信,一对公钥私钥只能保证单向数据的可靠性,如果保证双向通信,需要有两对公钥和私钥。即服务端和客户端分别有自己的公钥和私钥,在通信阶段互换公钥即可。
同时,这种方式依旧有被非法窃取的风险,非对称加密特别浪费时间,没有对称加密效率高。

2.3对称与非对称加密结合

在这里插入图片描述
首先客户端发出通信申请,服务端将非对称公钥发给客户端,客户端使用非对称公钥对对称公钥X进行加密,再发送回服务端,服务端使用非对称私钥对其进行解密,拿到对称公钥X,从而来进行通信,这就避免了对称公钥X在网络中的非加密传输。而且使用对称加密进行数据传输,大大提高了效率。

3.中间人攻击

3.1中间人攻击原理

就算是使用对称与非对称加密结合,也不能保证数据的安全的,因为存在被中间人攻击的风险。
在这里插入图片描述
当用户端发起通信请求的时候,服务端将公钥S发送给客户端的过程中被拦截,中间人将公钥S替换为非对称公钥M,然后发给客户端,客户端将使用收到的M公钥来对对称公钥X进行加密,并发送给服务端,此时中间人再进行拦截,使用M’进行解密拿到公钥X,再使用S对X进行加密,并发送给服务端,服务端使用S’进行解密,此时客户端和服务端都不知道X已经被泄漏了,它们之后的通信中间人都可以使用X进行解密并获取。

3.2解决方案

中间人攻击的本质问题就是,客户端无法判断发来的秘钥协商报文是不是从合法的服务方发来的。因此引入CA证书机构来解决这一问题。
CA证书机构是一个合法的服务商,企业会向CA证书机构来申请证书:
CA机构也有自己的公钥和私钥,它会将企业的基本信息(包括服务器公钥)转化为数据摘要,并使用CA机构自己的私钥来进行加密,形成该企业信息的数字签名。
在这里插入图片描述
并将该信息以及数字签名作为一个整体进行发送,客户端收到之后,会将信息生成数据摘要,将数字签名使用CA机构的公钥进行解密得到数据摘要,将两份数据摘要进行对比,判断信息是否被修改。
如果中间人拦截到了数据,对服务器公钥进行了修改,但由于数据签名是由CA机构的私钥生成的,拿不到CA机构的私钥就无法生成修改之后的数据签名,客户端进行对比一定会发现问题。
客户端在解密时如何得到CA机构的公钥信息呢?一般是浏览器内置的,或者会提示你下载。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 01:45:01  更:2022-09-04 01:45:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 10:57:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码