网络原理——HTTPS

HTTPS是 在HTTP的基础上,引入了一个加密层(SSL)。

1. 为什么需要HTTPS

在我们使用浏览器下载一些软件时,相信大家都遇到过这种情况:明明这个链接显示的是下载A软件,点击下载时就变成了B软件,这种情况是运营商劫持。

当我们点击下载时其实就是给服务器发送了一个HTTP请求,这个请求通过网络传输是就会通过很多设备,其中就有运营商的设备,服务器接收到请求之后,服务器会返回一个响应,这个响应就带有软件的下载链接,当这个响应经过运营商的设备时,运营商就可以把其中的链接篡改,于是就导致了我们得到的下载链接和想要下载的软件不一致。这就叫运营商劫持。

 不仅如此,我们的信息也可能会被泄露。

为了解决此类问题,加密就是一个很好的方法,于是诞生了HTTPS。

2. 什么是HTTPS?

HTTPS,全称为HyperText Transfer Protocol Secure,即超文本传输安全协议,是HTTP的安全版。通过使用SSL/TLS协议,HTTPS在传输层对数据进行加密,从而确保网络通信过程中的安全性和完整性。通常,HTTPS被用于安全地传输个人信息、金融交易数据、登录凭证等敏感信息,以防止被恶意攻击者窃取或篡改。

2.1 密钥

密钥在加密通信中扮演着至关重要的角色,它用于加密和解密数据,确保数据传输的安全性。在HTTPS等加密通信中,通常会涉及到两种类型的密钥:对称密钥和公钥/私钥(非对称密钥)。

  1. 对称密钥: 对称密钥是一种加密系统中使用的密钥,用于对数据进行加密和解密。在对称加密算法中,加密和解密使用相同的密钥,因此被称为对称密钥。对称加密算法的优点是加密解密速度快,缺点是密钥传输的安全性相对较低。在HTTPS握手过程中,通常会使用对称密钥来加密通信内容,以提高传输效率。

  2. 公钥/私钥(非对称密钥): 公钥/私钥是一对密钥,其中一个用于加密数据,一个用于解密数据。公钥可以自由发布给他人,而私钥则必须保密。非对称加密算法的优点是密钥传输的安全性高,缺点是加密解密速度较慢。在HTTPS的握手过程中,服务器会将其公钥发送给客户端,客户端使用该公钥加密生成的对称密钥,然后发送给服务器,从而建立安全连接。

3. HTTPS工作过程 

3.1 引入对称加密

对称加密时,客户端和服务器使用同一个密钥进行加密和解密,并且为了进一步提高安全,不同的客户端使用的密钥不相同,所以每个客户端连接到服务器时,都需要生成一个随机的密钥,并且把这个密钥告知给 服务器/客户端 ,但是由于密钥明文传输才能被对端理解,所以导致了黑客也能获取并理解密钥,一旦黑客拿到了密钥就意味着加密操作无意义了

 

3.2 引入非对称加密

使用非对称加密主要是用于对对称密钥进行加密。

服务器会把用于加密的公钥明文发送给客户端,客户端使用公钥对对称加密的密钥进行加密传输给服务器,由于黑客不持有私钥,所以无法的到对称密钥,后续客户端和服务器就可以使用对称加密来进行通信。

由于非对称加密的资源消耗要远大于对称加密,所以不太适合用于正式的数据交互加密。

3.3 中间人攻击 

在我们3.2 中的加密方式还存在一个漏洞 :

服务器可以创建出一对公钥和私钥,那么黑客同样可以,于是当服务器发送公钥给客户端时,黑客可以把公钥修改为自己生成的公钥,客户端接受到这个公钥,就会用这个公钥对生成的对称密钥加密,然后发送给服务器,黑客就可以知道对称密钥,为了不被服务器发现,黑客会对客户端发送的对称密钥用服务器生成的公钥重新加密,再发送给服务器,于是后续客户端和服务器使用对称密钥通信时,黑客也能获取到并解密出数据。

3.4 证书 

中间人攻击能成功的最关键的一点就是客户端无法验证接受到的公钥是不是服务器的,为了防止中间人攻击,于是引入了证书。证书是一个结构化的数据,里面包含了很多属性,例如服务器的主域名,公钥,证书有效期等,以字符串的形式储存。证书是搭建服务器的公司要从第三方的公证机构申请。证书中有一个属性叫“签名”,这个“签名”本质上是一个经过加密的校验和,公证机构再发布证书时,会给这个证书计算出校验和,然后用非对称密钥的私钥进行加密,这个私钥不会公布出去,对应的公钥会内置在常见的系统中。服务器给客户端发送公钥时,会直接把证书发送过去,客户端拿到证书后会对证书中的校验和用该公证机构的公钥进行解密,再通过证书中提供的校验和算法对证书再次计算校验和然后和解密的到的校验和进行对比,即可判断出证书是否被修改。如果被修改过,浏览器就会提示  “你访问的网站有风险”。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/706366.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机设计大赛 深度学习手势检测与识别算法 - opencv python

文章目录 0 前言1 实现效果2 技术原理2.1 手部检测2.1.1 基于肤色空间的手势检测方法2.1.2 基于运动的手势检测方法2.1.3 基于边缘的手势检测方法2.1.4 基于模板的手势检测方法2.1.5 基于机器学习的手势检测方法 3 手部识别3.1 SSD网络3.2 数据集3.3 最终改进的网络结构 4 最后…

深入理解Python中的JSON模块:基础大总结与实战代码解析【第102篇—JSON模块】

深入理解Python中的JSON模块:基础大总结与实战代码解析 在Python中,JSON(JavaScript Object Notation)模块是处理JSON数据的重要工具之一。JSON是一种轻量级的数据交换格式,广泛应用于Web开发、API通信等领域。本文将…

WinForms中的Timer探究:Form Timer与Thread Timer的差异

WinForms中的Timer探究:Form Timer与Thread Timer的差异 在Windows Forms(WinForms)应用程序开发中,定时器(Timer)是一个常用的组件,它允许我们执行定时任务,如界面更新、周期性数据…

Matlab 矩阵基础

Matlab 基础 MATLAB 是“矩阵实验室matrix laboratory”的缩写。其他编程语言大多一次处理一个数字,MATLAB 主要用于处理整个矩阵和数组。 所有 MATLAB 变量都是多维数组,无论数据类型如何。矩阵是常用于线性代数的二维数组。 若要创建一个包含单行中…

osi模型,tcp/ip模型(名字由来+各层介绍+中间设备介绍)

目录 网络协议如何分层 引入 osi模型 tcp/ip模型 引入 命名由来 介绍 物理层 数据链路层 网络层 传输层 应用层 中间设备 网络协议如何分层 引入 我们已经知道了网络协议是层状结构,接下来就来了解了解下网络协议如何分层 常见的网络协议分层模型是OSI模型 和 …

Flink CDC 3.0 Starrocks建表失败会导致任务卡主!

Flink CDC 3.0 Starrocks建表失败会导致任务卡主! 现象 StarRocks建表失败,然后任务自动重启,重启完毕后数据回放,jobMaster打印下面日志后,整个任务会卡主 There are already processing requests. Wait for proce…

windows 连接 Ubuntu 失败 -- samba服务

1. windows10连接ubuntu的时候,提示不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接,中断与此服务器或共享资源的所有连接,然后再试一次 2. 换一台同事的电脑却又可以连上,我之前一直能用的,隔一段时间…

PostgreSQL创建数据库、数据库管理员用户、该库的只读用户

1.创建用户: create user pgdbAdmin with password "Pgdb_15432";2.创建数据库: create database pgdb owner pgdbAdmin;3.创建SCHEMA; create schema pgdbAdmin;4.赋予数据库管理员用户权限: grant all privileges…

UE5 C++ 单播 多播代理 动态多播代理

一. 代理机制,代理也叫做委托,其作用就是提供一种消息机制。 发送方 ,接收方 分别叫做 触发点和执行点。就是软件中的观察者模式的原理。 创建一个C Actor作为练习 二.单播代理 创建一个C Actor MyDeligateActor作为练习 在MyDeligateAc…

【蓝桥杯】包子凑数(DP)

一.题目描述 二.输入描述 三.输出描述 四.问题分析 几个两两互质的数,最大公约数是1,最小公倍数是他们的乘积。 两个互质的数a和b最小不能表示的数就是(a-1)(b-1)-1,即,两个互质的数…

uniapp_微信小程序日历

一、需求要求这样 二、代码实现 <view class"calender" click"showriliall"><text class"lineText">探视日期&#xff1a;</text><text class"middleText">{{timerili}}</text><image src"/s…

Ubuntu服务器fail2ban的使用

作用&#xff1a;限制ssh远程登录&#xff0c;防止被人爆破服务器&#xff0c;封禁登录ip 使用lastb命令可查看到登录失败的用户及ip&#xff0c;无时无刻的不在爆破服务器 目录 一、安装fail2ban 二&#xff0c;配置fail2ban封禁ip的规则 1&#xff0c;进入目录并创建ssh…

CVE-2024-0713 Monitorr 服务配置 upload.php 无限制上传漏洞

### Monitorr是一个自托管的PHP网络应用&#xff0c;可以监控本地和远程网络服务、网站和应用的状态。经过分析&#xff0c;该系统存在文件上传漏洞&#xff0c;攻击者可以通过该漏洞上传webshell至目标系统从而获取目标系统权限。 漏洞的位置在 assets\php\upload.php &#…

非阻塞式 I/O 模型的工作原理【NIO】-2

优化上一篇文上的代码。 import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.*; import java.util.Iterator; import java.util.Set;public class NonBlockingServer {public static void main(String[] …

JG/T 263-2010 建筑门窗用未增塑聚氯乙烯彩色型材检测

建筑门窗用未增塑聚氯乙烯彩色型材是指以未增塑聚氯乙烯型材为基材&#xff0c;以共挤、覆膜、涂装、通体着色工艺加工的建筑门窗用型材。 JG/T 263-2010建筑门窗用未增塑聚氯乙烯彩色型材检测项目 测试项目 测试标准 外观与颜色 JG/T 263 尺寸和偏差 JG/T 263 共挤层厚…

【c++leetcode】1382. Balance a Binary Search Tree

问题入口 DSW (DAY, STOUT & WARREN) ALGORITHM 时间复杂度O(n) class Solution { public:int makeVine(TreeNode* grand, int cnt 0){auto n grand->right;while (n ! nullptr){if(n->left ! nullptr){auto old_n n;n n->left;old_n->left n->righ…

服务器如何使用https 自签证书

前言 在使用自签名证书&#xff08;Self-Signed Certificate&#xff09;配置 HTTPS 的情况下&#xff0c;您可以按照以下步骤进行操作。请注意&#xff0c;自签名证书在生产环境中可能不是最佳选择&#xff0c;因为它们不受任何第三方信任机构的验证。在生产环境中&#xff0…

力扣hot100题解(python版18-21题)

18、矩阵置零 给定一个 *m* x *n* 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法**。** 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]]示例…

CSS常见选择器

CSS&#xff08;层叠样式表&#xff09;中包含了多种用于选择和定位HTML文档中元素的选择器&#xff0c;以便为这些元素应用样式。以下是CSS中常见的一些选择器及其详细解析&#xff1a; 1. 基础选择器 元素&#xff08;标签&#xff09;选择器&#xff1a; p {color: red; }这…

Stable Diffusion WebUI 折腾新篇章

原文&#xff1a;https://blog.iyatt.com/?p13123 1 前言 第一次玩 Stable Diffusion WebUI 是三十几天前&#xff0c;当时还在用四年半前&#xff08;大学前暑假&#xff09;买的轻薄本&#xff0c;而在半年前独显还坏了&#xff0c;所以是纯纯的用 CPU 折腾&#xff0c;刚…