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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> HTTP与HTTPS的区别以及SSL/TSL加密知识总结 -> 正文阅读

[网络协议]HTTP与HTTPS的区别以及SSL/TSL加密知识总结

1.什么是HTTP?

Http(Hyper Text Transfer Protocol),即超文本传输协议。它是在Web上进行数据交换的基础,是一种“客户端-服务器端”协议。简单来说,就是用来规范浏览器与服务器之间通信行为的。HTTP 是应用层协议,它以 TCP(传输层)作为底层协议,默认端口为 80。

2.什么是HTTPS?

Https(Hyper Text Transfer Protocol Secure), 即安全的超文本传输协议,在HTTP的基础上使用了SSL/TLS协议进行数据加密和安全认证。简单来说,可以理解为HTTPS = HTTP + SSL/TLS。默认端口号为443.

主要区别总结:

(1)HTTP协议的数据都是未加密的,明文的,不安全。HTTPS则是具有安全性的SSL/TLS加密传输协议。

(2)HTTP的默认端口号为80,HTTPS的默认端口号为443、

(3)HTTP是无状态的。HTTPS协议是可提供数据加密传输,身份认证的网络协议,要比HTTP协议安全。

HTTP与HTTPS的区别总结为一句话就是HTTPS在HTTP的基础上考虑了安全问题,提供了更高的数据安全性。

3.SSL/TSL的工作原理以及握手过程

首先简要说明SSL和TSL的区别,SSL和TSL区别不大,现在主要用的是TSL协议,TSL协议可以理解为高版本的SSL。说明SSL/TLS之前先要理解对称加密和非对称加密。

3.1 对称加密

对称加密是指在加密和解密时使用同一密钥的加密方式。

优点?:对称加密加密与解密使用的是同样的密钥,所以速度快。

缺点:需要将密钥在网络传输(可能被第三方截获),所以安全性不高。

3.2 非对称加密

即密钥是成对存在的,公开密钥与私有密钥是一对,如果是用公密对数据进行加密,只有用对应的私钥才能解密;同理,如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。因为加密和解密使用的是两个不同的密钥,所以称为非对称加密方式。

优点:非对称加密使用了一对密钥,公钥与私钥,所以安全性高。

缺点:加密与解密速度慢。

?3.3?SSL/TSL的工作原理

对称加密与非对称加密都有自己的优缺点,对称加密安全性低但速度快,非对称加密安全性高但速度慢,那么如何有效的利用两种加密方式?SSL/TSL就是将这两种加密方式合理的整合起来,其基本工作原理总结为一句话为:先用非对称加密方式传递对称加密密钥,再用对称加密方式处理交互的数据。

3.4?SSL/TSL的握手过程

SSL/TSL握手过程可以理解为客户端和服务器协商一个密钥的过程。(这个密钥将被用于后面数据交流的对称加密解密过程,即这个密钥是一个对称加密密钥)。握手过程如图所示:

?

?整个步骤总共可以分解为8个步骤:

step1:客服端送自己支持的TSL版本,加密套件(支持哪些加密算法),并生成一个随机数(第一个随机数)发送过去,为了方便描述,这里称为第一个随机数。

step2:服务端发送自己支持的TSL版本,加密套件(支持哪些加密算法),并生成一个随机数发送过去(第二个随机数)。

注意:step1和step2可以理解为客户端和服务器端正在相互商量,确定用哪个加密算法,用哪个TSL版本,统一一下。确认后,客户端开始确认服务器端的身份的可靠性。

step3:服务端发送自己的证书给客户端用于核对。

step4:? ?客户端核对没有问题后,服务端再发送自己的公钥给客户端。

step5:服务端发送server hello done代表发送完毕。

step6:客户端再次生成一个随机数(第三个随机数,也被称为预主密钥),并用step4发送过来的公钥进行加密。生成一个密文,发送给服务端。

step7:服务端收到密文后,用自己的私钥进行非对称解密将第三个随机数取出,这个时候,服务端一共有三个随机数,分别是(1)step1客户端发送过来的。(2)step2自己生成的。(3)step6 解密后得到的。服务端将三个数用特定的算法整合,生成一个会话密钥。并将之前的密文发回(代表自己已经知晓会话密钥,协商完成)。与此同时,客服端同样知晓这个三个随机数是多少,因为这个三个随机数,分别是(1)step1自己生成的。(2)step服务端发送过来。(3)step6自己生成的。正好与服务器的一一对应,也就是说,用同样的特定的算法,客户端也可以计算出会话密钥。(会话密钥在客户端和服务器端均由三个随机数计算得到,没有经过网络传输)。

step8:利用协商好的密钥进行数据加密解密并传输。

总结:这样做不仅安全性高。体现在(1)每个会话的会话密钥都不一样。(2)第三方无法知晓会话密钥(会话密钥没有经过网络传输,且即使特定的算法被第三方知晓,第三也方无法得知第三个随机数是多少,从而无法推断出会话密钥)。

传输速度快:只有在协商会话密钥的时候采用了非对称密钥,正式进行数据传输时采用的对称加密方式。

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

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