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

什么是https?

https=http+SSL/TLS , SSL/TLS 是介于http层和tcp/udp层之间。

http为什么需要加密?

http以明文传送数据。说白了,就是不安全。

什么是对称加密?

只有一把钥匙,客户端和服务器都有这把钥匙,客户端加密,服务器解密,服务器加密,客户端解密。

里插入图片描述

为什么不能使用对称加密?

如果使用对称加密,意味着客户端和服务器都需要保存一把钥匙。
1 服务器给客户端的时候,容易被劫持。

2 客户端就需要保存世界上所有服务器的地址。

明显不可行。

什么是非对称加密?

非对称加密是一对儿钥匙,一个公匙,一个私匙。规定公匙加密,私匙解密,私匙加密,公匙解密。

在这里插入图片描述

使用非对称加密可行吗?

服务器掌管一套私匙和公匙,服务器将公共钥匙传给客户端,客户端将明文使用公共钥匙加密,然后传回给服务器,服务器使用私密钥匙解密。保证了浏览器到服务器这条路是安全的。使用同样的方法客户端也掌握一套私密钥匙和公共钥匙,也同样能保证服务器到客户端这条道是安全的。 但是这样是需要两套 私密钥匙和公共钥匙。我们都知道非对称加密算法是很耗时的性能操作。这样做的最大问题就是性能问题。

那HTTPS采用的是哪种加密方式呢?

Https采用的是对称加密和非对称加密合作的方式。
1 某网站拥有非对称加密公共钥匙A和私密钥匙A’.
2 浏览器向服务器请求,网站将A发送给客户端。
3 浏览器生成对称加密钥匙X,并且公共钥匙A加密,发送给服务器。
4 服务器使用私密钥匙A’解密该内容得到对称加密钥匙X.
5 客户端和服务器同时拥有对称加密的钥匙X,从此以后两者通讯就可以使用对称加密的方式通讯。

HTTPS是如何修复存在漏洞的?

1 如何保证公有要是A在传递到客户端的时候不被中间人攻击?

该网站需要从CA机构申请数字证书,该证书类似于给网站的公有消失颁发了一个身份证。数字证书里含有证书持有者信息、公钥信息等。

2 如何保证数字证书不被篡改?

数字证书=证书明文+数字签名(证书明文->hash->CA机构的公有钥匙加密->数字签名)

在网络传送过程中,中间人只能去修改证书明文,而不能修改数字签名,因为数字签名使用了CA机构的私有钥匙进行了加密。当到达客户端的时候,客户端会使用CA机构的公有钥匙对数字签名解密,从而得到证书明文hash过的证书明文,然后把数字证书中的证书明文也做hash,将的到内容进行对比,相同则验证通过。

3 如何能够确保数字证书不会被整个替换?

数字证书中包含了证书持有人,公有钥匙等,可以对比自己请求的和证书中提供的服务器地址是否一致,如果不一致就是被替换了。整个时候就被拒绝连接了。

4 数字签名的生成过程

证书明文Z,通过hash算法得到Z’,使用CA机构的私有钥匙加密变成数字签名W,
数字证书=Z+W.

5 为什么制作数字签名的时候需要hash一下?

最显然的是性能问题,前面我们已经说了非对称加密效率较差,证书信息一般较长,比较耗时。而hash后得到的是固定长度的信息(比如用md5算法hash后可以得到固定的128位的值),这样加解密就快很多。

6 怎么证明CA机构的公钥是可信的?

操作系统、浏览器本身会预装一些它们信任的根证书,如果其中会有CA机构的根证书,这样就可以拿到它对应的可信公钥了。

7 每次进行HTTPS请求时都必须在SSL/TLS层进行握手传输密钥吗?

服务器会为每个浏览器(或客户端软件)维护一个session ID,在TLS握手阶段传给浏览器,浏览器生成好密钥传给服务器后,服务器会把该密钥存到相应的session ID下,之后浏览器每次请求都会携带session ID,服务器会根据session ID找到相应的密钥并进行解密加密操作,这样就不必要每次重新制作、传输密钥了!

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-10 12:45:58  更:2021-11-10 12:47:27 
 
开发: 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年7日历 -2024/7/1 21:16:22-

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