| |
|
开发:
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.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地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |