网络原理(二)—— https

ops/2025/1/12 21:20:51/

https__0">https 简介

https 也是一个应用层协议,他是由 http 和 SSL 组成的(在 http 的基础上进行加密,把原本http 的明文传输变为了密文传输),简称为 https

加密的方式大体分为两大类,分别是对称加密和非对称加密。

对称加密

对称加密就是只生成一个密钥,这个密钥既是用来加密,也是用来解密的。

大致流程如下:
首先客户端生成一个密钥,然后通过网络传输发送给服务器,服务器先保存起来,之后两者之间传输的数据均由这个密钥进行加密或者解密。

https://i-blog.csdnimg.cn/direct/672e9c593c0e44cc9f0240ddb02d6780.png" alt="在这里插入图片描述" />

非对称加密

由于对称传输使用的密钥是直接公开在网路中的,如果此时有一个路由器被黑客劫持,那么就可能会被黑客篡改信息,造成不良的影响,如下图:

https://i-blog.csdnimg.cn/direct/1a5250cd5359462b8a860bb23150147e.png" alt="在这里插入图片描述" />
因此如果密钥只用一个并且是公开传输,其实很不安全,这时候引入非对称传输。

非对称传输使用两个密钥,一个是公钥,另一个是私钥,公钥就是和上面的对称传输的密钥类似,是公开出去的,而私钥是自己保存的,不对外公开的。

公钥既可以用来解密,也可以用来加密,私钥也是,但是公钥和私钥两者只能做其中一件,例如,如果使用公钥来加密,那私钥就是用来解密的,如果私钥是用来加密,那公钥就是用来解密的。

公钥和私钥由服务器生成,服务器会把公钥公开出去,私钥会自己保存。

https://i-blog.csdnimg.cn/direct/8681c2c0b39d4a53a0317a6749cd7522.png" alt="在这里插入图片描述" />

由于非对称加密消耗的算力比较大,所以一般我们使用非对称加密的是对称加密产生的密钥,不涉及庞大的业务数据。
对称加密则是针对业务数据加密的,只要非对称加密安全,就能保证对称加密的密钥不会泄漏,也就保证了此次会话的安全性。

中间人攻击

非对称加密也不一定安全,黑客可以利用设备伪装成服务器,给客户端发送假冒的公钥,如下图所示:
https://i-blog.csdnimg.cn/direct/a8a682f8ffec4f08a89bdbb36c3278ed.png" alt="在这里插入图片描述" />
这就是中间人攻击

数字证书

为了避免发生中间人攻击,我们需要验证从服务器获得公钥是不是来自服务器的。

在服务器使用https 之前,会像CA机构进行权威认证,申请一份数字证书。

服务器把证书传输给浏览器,浏览器从证书里获取公钥,证书就如身份证,证明服务端公钥的权威性

数字证书的制作:
首先CA机构会使用非对称加密算法生成公钥和私钥,使用私钥来对数字证书进行加密,数字证书包含服务器的域名、公钥、数字签名、证书所有者、证书有效日期等等,通过算法把这些数据进行加密,客户端通过公钥进行解密验证,只要出现错误就会弹出警告这个网站不安全。

首先公钥的传输不是通过网络传输的,而是在电脑安装系统的时候就会把公钥一同保存到电脑里,这样黑客就无法进行中间人攻击伪造假证书。

有了数字证书之后,服务器和客户端之间的通信如下图所示:
https://i-blog.csdnimg.cn/direct/73c92912aa7447f98eff75b946615430.png" alt="在这里插入图片描述" />
在对称加密基础上引入非对称加密,在非对称加密的基础上又引入了数字证书,这样就保证了我们的数据传输的安全性。


理解数字签名:
数字签名本质上就是校验和,首先对一串数据进行哈希函数运算获得散列值,然后使用CA自己的私钥进行加密散列值,然后这串原始数据和加密过的散列值会一起存放在数字证书里,客户端使用CA的公钥对散列值进行解密获得校验和1,对原始的数据使用相同的散列函数运算得到校验和2,如果这两个校验和是一致的就说明签名是合法有效的。


客户端验证数字证书的步骤:
首先判断证书是否过期
其次判断证书的发布机构是否可以信任(操作系统中已内置的受信任的证书发布机构)
最后验证证书是否被篡改:从系统获取该证书机构的公钥,对签名进行解密获得校验和1,然后计算整个证书的hash值,得到校验和2,判断两个校验和是否相等。相等则说明证书没有被篡改过。


为什么黑客篡改不了数字签名,因为一旦篡改,里面的校验和也要跟着改,黑客没有CA的私钥,无法进行正确的加密,这样客户端使用公钥解密就会发现两个校验和对不上。


http://www.ppmy.cn/ops/149553.html

相关文章

将光源视角的深度贴图应用于摄像机视角的渲染

将光源视角的深度贴图应用于摄像机视角的渲染是阴影映射(Shadow Mapping)技术的核心步骤之一。这个过程涉及到将摄像机视角下的片段坐标转换到光源视角下,并使用深度贴图来判断这些片段是否处于阴影中。 1. 生成光源视角的深度贴图 首先&…

机器学习之决策树的分类树模型及决策树绘制

决策树分类模型 目录 决策树分类模型决策树概念组成部分:决策树的构建过程:优缺点决策树的优点:决策树的缺点: 熵概念算法数据理解 决策树的三种分法ID3(Iterative Dichotomiser 3)概念算法步骤 C4.5概念信…

【k8s】监控metrics-server

metrics-server介绍 Metrics Server是一个集群范围的资源使用情况的数据聚合器。作为一个应用部署在集群中。Metric server从每个节点上KubeletAPI收集指标,通过Kubernetes聚合器注册在Master APIServer中。为集群提供Node、Pods资源利用率指标。 就像Linux 系统一样…

MySQL入门学习二(SQL语句基础)

2.1 SQL简介 SQL 是结构化查询语言 (Structure Query Language) 的缩写,它是使用关系模型的数据库应用言。 SQL 的起源可以追溯到 20 世纪 70 年代。当时,数据库管理系统主要采用层次模型和网状模型,数据的 存储和检索非常复杂。为了解决…

在线工具箱源码优化版

在线工具箱 前言效果图部分源码源码下载部署教程下期更新 前言 来自缤纷彩虹天地优化后的我爱工具网源码,百度基本全站收录,更能基本都比较全,个人使用或是建站都不错,挑过很多工具箱,这个比较简洁,非常实…

vmware-ubuntu22.04配置虚拟机win10,重新上网成功

打开问题显示 Hardware配置 Options配置 最后的Advanced,第一次用了BIOS,然后启动中有更新,然后关闭,再用UEFI启动

每日学习30分轻松掌握CursorAI:Cursor AI自然语言编程入门

Cursor AI自然语言编程入门 1. 自然语言编程概述 自然语言编程是一种革命性的编程方式,让开发者能够使用日常语言描述需求,由AI将其转换为可执行的代码。让我们通过系统化的学习来掌握这项技能。 2. 自然语言编程基础 2.1 工作原理流程图 2.2 指令模…

Web3 游戏 2024:牛市下的缺席者?

2024 年,Web3 游戏行业呈现复杂态势,在取得重大进展的同时也面临诸多挑战。虽然日活跃用户数激增超 300%,传统游戏公司也开始具体布局该领域,但从市场表现来看,该板块市值仅增长 60.5%,显著落后于 Meme 币和…