HTTPS

embedded/2024/12/22 18:32:19/
重要:面试关于HTTPS的工作流程
关于HTTPS的基本概念

HTTPS = HTTP + SSL

https>https://i-blog.csdnimg.cn/direct/7c5293f7eec846959f94a59fbb73bb83.png" width="954" />

https>https://i-blog.csdnimg.cn/direct/648d5dd8f9d54e34974e42992f3a46bf.png" width="954" />

https>https://i-blog.csdnimg.cn/direct/4866c81e3a3c4038b74b14e2697a3860.png" width="750" />
加密
既然要保证数据安全, 就需要进⾏ "加密".
⽹络传输中不再直接传输明⽂了, ⽽是加密之后的 "密⽂".
加密的⽅式有很多, 但是整体可以分成两⼤类: 对称加密 和 ⾮对称加密

明文:真正要表达的意思

密文:经过加密之后得到数据

https>https://i-blog.csdnimg.cn/direct/ffd14ea2bb364c9cadfbf832b55fbb18.png" width="683" />

https>https://i-blog.csdnimg.cn/direct/c5f22b8f3fa74ec79cc3e29a648e3994.png" width="944" />

对称加密:加密和解密使用同一个密钥,加密解密速度比较快,使用的解密算法是DES AES

https>https://i-blog.csdnimg.cn/direct/87a76a6732a3488d831214858af997c1.png" width="879" />

https>https://i-blog.csdnimg.cn/direct/ff3f172c1c344b52a04f4f63536576a8.png" width="921" />

⽐较理想的做法, 就是能在客⼾端和服务器建⽴连接的时候, 双⽅协商确定这次的密钥是啥~

https>https://i-blog.csdnimg.cn/direct/f86ef5398e8248ad85814f1ef11e1017.png" width="924" />

https>https://i-blog.csdnimg.cn/direct/610df8d41aa24ff3af7660e05680cab9.png" width="936" />

非对称加密:密钥是一对(分别是公钥和私钥),加密解密速度比较慢,安全性更高,如果是公钥加密,私钥解密,私钥加密公钥解密,RSA

https>https://i-blog.csdnimg.cn/direct/93d4b4af6a4b4c2392d1dbe725fd7a03.png" width="916" />

客⼾端在本地⽣成对称密钥, 通过公钥加密, 发送给服务器.
由于中间的⽹络设备没有私钥, 即使截获了数据, 也⽆法还原出内部的原⽂, 也就⽆法获取到对称密
服务器通过私钥解密, 还原出客⼾端发送的对称密钥. 并且使⽤这个对称密钥加密给客⼾端返回的响
应数据.
后续客⼾端和服务器的通信都只⽤对称加密即可. 由于该密钥只有客⼾端和服务器两个主机知道, 其
他主机/设备不知道密钥即使截获数据也没有意义.
由于对称加密的效率⽐⾮对称加密⾼很多, 因此使用⾮对称加密是对对称加密的密钥进行加密, 传输业务逻辑仍然使⽤对称加密.
客⼾端如何获取到公钥并且确定不是⿊客伪造的?

黑客可以通过中间人攻击来获取到对称密钥,大致流程如下

https>https://i-blog.csdnimg.cn/direct/388658978dc348d8a516ff073bd14307.png" width="1200" />

如何解决中间人攻击引入证书
服务端在使⽤HTTPS前,需要向公正机构申领⼀份数字证书,数字证书⾥含有证书申请者信息、公钥信 息等。服务器把证书传输给浏览器,浏览器从证书⾥获取公钥就⾏了,证书就如⾝份证,证明服务端
公钥的权威性
这个 证书 可以理解成是⼀个结构化的字符串, ⾥⾯包含了以下信息:
证书发布机构
证书有效期
服务器的 公钥
证书所有者
持有者网站的主域名
最重要的字段:数字签名,这个字段是经过加密之后的校验和(根据上述五个字段),基于CRC/MD5
当服务端申请公正证书的时候,公正机构会对该服务端进⾏审核,并专⻔为该⽹站形成数字签名,过程如
下:
1. 公正机构拥有⾮对称加密的私钥A和公钥A'
2. 公正机构对服务端申请的证书明⽂数据进⾏hash,形成数据摘要
3. 然后对数据摘要⽤公正私钥A'加密,得到数字签名S
服务端申请的证书明⽂和数字签名S 共同组成了数字证书,这样⼀份数字证书就可以颁发给服务端了,服务器会保存好该证书
https>https://i-blog.csdnimg.cn/direct/1949616d06c04e5e8472e88caf39d977.png" width="954" />
当客⼾端获取到这个证书之后, 会对证书进⾏校验(防⽌证书是伪造的).
判定证书的有效期是否过期
判定证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构).
验证证书是否被篡改: 
        1)根据这五个字段来计算校验和称为校验和1
https>https://i-blog.csdnimg.cn/direct/7e67cc2dd0b04e009791cbc2b251a960.png" width="239" />
2)针对证书的数字签名进行解密,由于数字签名是基于公证机构的私钥来进行加密的,所以解密需要公正机构的公钥,这个公钥是操作系统内置公正机构的公钥,用这个公钥来进行解密得到的校验和2
3)客户端来比较校验和1和校验和2是否相等,如果相等证明证书没有被篡改过
https>https://i-blog.csdnimg.cn/direct/e2177767032641e5918819ee47d7079a.png" width="1200" />
https>https://i-blog.csdnimg.cn/direct/331ae557fb1d47c79b41bb14da2e5340.png" width="1031" />

http://www.ppmy.cn/embedded/93404.html

相关文章

Adobe Substance 3D Sampler v4.2.2.3719 解锁版下载安装教程(3D材质管理软件)

前言 Substance 3D Sampler简称“Sa”是一款由Adobe新推出的3D真实材质贴图制作软件。允许用户通过调整和混合现有材料,或通过扫描(单个或多个图像)中提取新材料来创建和迭代材料集合,从而轻松将真实的图片转换为具有真实感的表面…

WordPress原创插件:Category-id-list分类ID显示查看

WordPress原创插件:Category-id-list分类ID显示查看 插件设置位置在工具栏

蓝凌EKP二次开发资料大全 完整蓝凌二次开发资料 蓝凌 EKP开发实战教程 蓝凌OA二次开发资料大全 蓝凌OA java开发快速入门

蓝凌EKP二次开发资料大全 完整蓝凌二次开发资料 蓝凌 EKP开发实战教程 蓝凌OA二次开发资料大全 记得两年前花了非常贵的费用去现场学习的资料,把这些开发技术文档分享出来,希望通过这个资料, 为大家学习开发大大减少时间。期待大家能快速上…

修改pom.xml为阿里云仓库并且让他生效

一、项目pom.xml添加 <repositories><repository><id>aliyun-central</id><name>Aliyun Maven Central</name><url>https://maven.aliyun.com/repository/central</url></repository><repository><id>aliyu…

2024 某公司python 面试真题

Q: Can the type of options or labels of switch-case be floating? 在C语言中&#xff0c;switch-case语句的标签必须是整数类型&#xff0c;不能是浮点型。而在Python中&#xff0c;没有switch-case语句&#xff0c;但是可以使用字典来实现类似的功能&#xff0c;而字典的键…

leetcode:1822. 数组元素积的符号(python3解法)

难度&#xff1a;简单 已知函数 signFunc(x) 将会根据 x 的正负返回特定值&#xff1a; 如果 x 是正数&#xff0c;返回 1 。如果 x 是负数&#xff0c;返回 -1 。如果 x 是等于 0 &#xff0c;返回 0 。 给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的乘积。…

通过数组中元素或者key将数组拆分归类成新的二维数组

处理前的数组: 处理后的数组: 你希望根据 riqi 字段将这个数组拆分成多个二维数组,每个二维数组包含相同日期的项。在ThinkPHP中,你可以使用PHP的数组操作来实现这一拆分操作。以下是如何按照 riqi 字段拆分成新的二维数组的示例代码: $splitArrays = [];foreach ($list…

第十一届MathorCup高校数学建模挑战赛-C题:基于有限差分法的散热机理建模与海底数据中心优化设计

目录 摘 要 1 问题重述 1.1 问题背景 1.2 问题重述 2 问题分析 3 模型假设 4 符号说明 5 我们的工作 6 模型的建立与求解 6.1 建模前的准备 6.2 问题一的建模与求解 6.3 问题二的建模与求解 6.4 问题三的建模与求解 6.5 问题四的建模与解决 7 结果检验及误差分析 8 模型评价 9 …