HTTPS协议加密原理

目录

一、什么是HTTPS

 二、什么是加密/解密

三、为什么要加密

四、常见的加密方式

1.对称加密

2. 非对称加密

 五、HTTPS加密方式探讨

1.只使用对称加密

2.只使用非对称加密

3.非对称加密+对称加密 

4.非对称加密+对称加密+CA认证

六、总结


 一、什么是HTTPS

HTTP 协议:是客户端浏览器或其他程序与Web服务器之间的应用层通信协议 。

HTTPS 协议:可以理解为HTTP+SSL/TLS, 也就是在HTTP协议的基础下加入了 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。

SSL(安全套接字层):SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。

TLS(传输层安全性协议):其前身安全套接字层(SSl)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。

 二、什么是加密/解密

加密就是将我们能一眼看明白并且很多人都能看懂的信息进行包装,变成很难理解的一段信息,即明文变成密文过程。

解密就是将已加密后的密文信息经过一系列的变换,还原为很容易理解的明文信息。

据记载,公元前400年,古希腊人就发明了置换密码;在第二次世界大战期间,德国军方启用了“恩尼格玛”密码机,所以密码学在社会发展中有着广泛的用途。在现代加密解密已经发展成⼀个独⽴的学科:密码学。而密码学的奠基⼈,也正是计算机科学的祖师爷之⼀, 艾伦·⻨席森·图灵

三、为什么要加密

因为http的内容是明文传输的,明文数据会经过中间代理服务器、路由器、wifi热点、通信服务运营商等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传输的信息且不被双方察觉,这就是中间人攻击。所以我们才需要对信息进行加密。

比如一个典型的"运营商劫持"案例:当我们通过非官网的途径,下载某个软件时,经常发生的就是下载完成后的软件与自己本要下载的是完全不同的两个。这是因为我们通过⽹络传输的任何的数据包都会经过运营商的⽹络设备(路由器,交换机等),那么运营商的⽹络设备就可以解析出你传输的数据内容,并进⾏篡改.点击"下载按钮",其实就是在给服务器发送了⼀个HTTP请求,获取到的HTTP响应其实就包含了该APP的下载链接.运营商劫持之后,就发现这个请求是要下载 A AA,那么就⾃动的把交给用户的响应给篡改成 BBB 的下载地址了。

四、常见的加密方式

1.对称加密

采⽤单钥密码系统的加密⽅法,同⼀个密钥可以同时⽤作信息的加密和解密,这种加密⽅法称为对称加密,也称为单密钥加密

  • 特征:加密和解密所⽤的密钥是相同的。
  • 常⻅对称加密算法:DES、3DES、AES、TDEA、Blowfish、RC2等。
  • 特点:算法公开、计算量⼩、加密速度快、加密效率⾼。
  • 对称加密其实就是通过同⼀个"密钥",把明⽂加密成密⽂,并且也能把密⽂解密成明⽂.

这种方式通俗一点来讲就好比一把钥匙和一道门,门作为信息,钥匙作为密钥,加密就是通过钥匙将门上锁,解密就是用钥匙把门打开。

⼀个简单的对称加密,按位异或
假设明⽂a=1234,密钥key=8888,则加密a^key得到的密⽂b为9834。然后针对密⽂9834再次进⾏运算b^key,得到的就是原来的明⽂1234。(对于字符串的对称加密也是同理,每⼀个字符都可以表示成⼀个数字)
当然,按位异或只是最简单的对称加密,HTTPS中肯定也不能是使⽤按位异或这种方式。

2. 非对称加密

需要两个密钥来进⾏加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。

  • 常⻅⾮对称加密算法:RSA,DSA,ECDSA
  • 特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,⽽使得加密解密速度没有对称加密解密的速度快。

⾮对称加密要⽤到两个密钥,⼀个叫做"公钥",⼀个叫做"私钥"。公钥和私钥是配对的,最⼤的缺点就是运算速度⾮常慢,⽐对称加密要慢很多。

使用方法:通过公钥对明⽂加密,变成密⽂,通过私钥对密⽂解密,变成明⽂。也可以反着⽤通过私钥对明⽂加密,变成密⽂通过公钥对密⽂解密,变成明⽂。
这种加密方式就好比一把锁、一把钥匙、一道门,其中门作为信息,锁作为公钥,钥匙作为密钥,锁是公开的,任何人都可以拿着这把锁把门锁上(加密),但是要把门打开,就只有使用这唯一的钥匙(解密)。

 五、HTTPS加密方式探讨

1.只使用对称加密

如果通信双⽅都各自持有同⼀个密钥X,且没有别⼈知道,这两⽅的通信安全当然是可以被保证的(除非密钥被破解)。

 但是在网络中,服务器与客户端需要建立连接之后才能进行通信,在首次建立连接时,怎样才能让双方都知道密钥,而又不能让其他人知道呢?

如果是服务器给客户端明文发送密钥,那么肯定很容易被劫持,但将密钥加密发送客户端肯定又看不懂。

如果统一规定服务器与客户端使用同一密钥,但是服务器与客户端的连接并不是一对一的,而是一对多的,那么这样密钥太扩散了,很容易就被黑客拿到了。

所以但使用对称加密是肯定不行。

2.只使用非对称加密

对于非对称加密,在服务器与客户端通信双方首次建立连接时,双方可以彼此交换自己的公钥,连接建立后,在给对方发送信息时,就可以使用对方的公钥进行加密,而要解密也只能对方使用自己私钥才能进行解密。

 如上方法看似很完美,但是要知道黑客的技术也是很厉害的。比如在客户端与服务器进行连接时,黑客将客户端发送给服务器的公钥C进行劫持,然后黑客把自己的公钥P发送给服务器,那么在后续服务器与客户端进行信息发送的过程中,服务器对信息进行加密的公钥不是客户端的,而是黑客的公钥P,那么服务器所发送的所有信息,黑客都可以通过自己的私钥P*进行解密查看,然后黑客再使用客户端公钥C再对信息进行加密发送给客户端,此时客户端也就能使用自己的私钥C*进行解密查看,再整个过程中客户端几乎是察觉不到信息发生了泄露。

又或是服务器先把公钥以明文方式传输给浏览器,之后浏览器向服务器传数据前都先用这个公钥加密好再传送,这条数据的安全似乎可以保障了!因为只有服务器有相应的私钥能解开公钥加密的数据。然而反过来由服务器到浏览器的这条路怎么保障安全?如果服务器用它的私钥加密数据传给浏览器,那么浏览器用公钥可以解密它,而这个公钥是一开始通过明文传输给浏览器的,若这个公钥被中间人劫持到了,那他也能用该公钥解密服务器传来的信息了。

所以只使用非对称加密也不安全

3.非对称加密+对称加密 

原理

客户端发起https请求,获取服务端公钥S,客户端在本地⽣成对称密钥C,通过公钥S加密,发送给服务器。由于中间的网络设备没有私钥,即使截获了数据,也⽆法还原出内部的原⽂,也就⽆法获取到对称密钥。服务器通过私钥S*解密,还原出客⼾端发送的对称密钥C。并且使⽤这个对称密钥加密给客户端返回的响应数据。

 漏洞

该方式也只能再服务器与客户端握手连接成功后才能保证信息的安全,如果黑客再服务器与客户端握手时进行劫持,那么就会出现与只使用非对称加密方式一样的漏洞。在服务器与发送公钥S给客户端时,黑客将公钥S替换为自己的公钥P,那么客户端接受公钥P后,再以此公钥加密对称密钥M给服务器时,黑客就能截获此密钥。所以再后续的信息传送的过程中,该密钥M已不能保证信息的安全了。

这种黑客攻击的方式也称为“中间人攻击(MITM)”。

4.非对称加密+对称加密+CA认证

 在探讨该方式前需要先几个概念:

a.数据摘要

  • 数据摘要(数字指纹):其基本原理是利⽤单向散列函数(Hash函数)对信息进⾏运算,⽣成⼀串固定⻓度的数字摘要。数字指纹并不是⼀种加密机制,但可以⽤来判断数据有没有被窜改。
  • 摘要常⻅算法:有MD5、SHA1、SHA256、SHA512等,算法把⽆限的映射成有限,因此可能会有碰撞(两个不同的信息,算出的摘要相同,但是概率⾮常低)
  • 摘要特征:和加密算法的区别是,摘要严格意义不是加密,因为没有解密,只不过从摘要很难反推原信息,通常⽤来进⾏数据对⽐

b.数字签名

  • 摘要经过加密后就得到数字签名

 CA认证
服务端在使⽤HTTPS前,需要向CA机构申领⼀份数字证书,数字证书⾥含有证书申请者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书⾥获取公钥就⾏了,证书就如⾝份证,证明服务端公钥的权威性。CA认证也就是相当于第三方,为我们提供一个辅助验证的功能。

当服务端申请CA证书的时候,CA机构会对该服务端进⾏审核,并专⻔为该⽹站形成数字签名,过程如下:
1. CA机构拥有⾮对称加密的私钥A和公钥A'
2. CA机构对服务端申请的证书明⽂数据进⾏hash,形成数据摘要
3. 然后对数据摘要⽤CA私钥A'加密,得到数字签名S
服务端申请的证书明⽂和数字签名S共同组成了数字证书,这样⼀份数字证书就可以颁发给服务端了。

加密原理

服务器需要先向CA机构申领一份数字证书,在客户端和服务器刚⼀建⽴连接的时候,服务器给客户端返回⼀个证书,证书包含了之前服务端的公钥,也包含了网站的身份信息。
当客户端获取到这个证书之后,会对证书进⾏校验(防止证书是伪造的)。

  • 判定证书的有效期是否过期
  • 判定证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构).
  • 验证证书是否被篡改:从系统中拿到该CA机构的公钥,对签名解密,得到⼀个hash值(称为数据摘要),设为hash1.然后计算整个证书的hash值,设为hash2.对⽐hash1和hash2是否相等.如果相等,则说明证书是没有被篡改过的。

只有当客户端验证该证书不是伪造的后,客户端再使用证书上的公钥对对称密钥进行加密,然后再发送给服务器,服务器再用自己的私钥进行解密,就得到了对称密钥,后续服务器与客户端就使用该对称密钥进行通信。

 解答你的几个疑问:

1.中间⼈有没有可能篡改该证书?

答:中间⼈即使篡改了证书的明⽂,由于他没有CA机构的私钥,所以⽆法hash之后⽤私钥加密形成签名,那么也就没法办法对篡改后的证书形成匹配的签名如果强⾏篡改,客⼾端收到该证书后会发现明⽂和签名解密后的值不⼀致,则说明证书已被篡改,证书不可信,从⽽终⽌向服务器传输信息,防⽌信息泄露给中间⼈。
2.中间⼈可能整个掉包证书吗?

答:因为中间⼈没有CA私钥,所以⽆法制作假的证书,所以中间⼈只能向CA申请真证书,然后⽤⾃⼰申请的证书进⾏掉包这个确实能做到证书的整体掉包,但是别忘记,证书明⽂中包含了域名等服务端认证信息,如果整体掉包,客户端依旧能够识别出来。永远记住:中间⼈没有CA私钥,所以对任何证书都⽆法进⾏合法修改,包括⾃⼰的。
 

六、总结

对称加密虽然性能好但是有密钥泄漏的风险,非对称加密(2组公钥+2私钥双向传输)安全但性能低下,因此考虑用非对称加密来传输对称加密所需的密钥,然后进行对称加密,但是为了防止非对称过程产生的中间人攻击,我们就引入第三方辅助认证,需要对服务器公钥和服务器身份进行配对的数字认证,CA认证+非对称加密+对称加密的方式。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue3+element下拉多选框组件

<!-- 下拉多选 --> <template><div class"select-checked"><el-select v-model"selected" :class"{ all: optionsAll, hidden: selectedOptions.data.length < 2 }" multipleplaceholder"请选择" :popper-app…

git及GitHub的使用

文章目录 git在本地仓库的使用github使用创建仓库https协议连接(不推荐&#xff0c;现在用起来比较麻烦)ssh连接&#xff08;推荐&#xff09;git分支操作冲突处理忽略文件 git在本地仓库的使用 1.在目标目录下右键打开git bash here 2.创建用户名和邮箱(注&#xff1a; 下载完…

ms-tpm-20-ref 在linux下编译

1、代码地址&#xff0c; GitHub - microsoft/ms-tpm-20-ref: Reference implementation of the TCG Trusted Platform Module 2.0 specification.Reference implementation of the TCG Trusted Platform Module 2.0 specification. - GitHub - microsoft/ms-tpm-20-ref: Refe…

Nodejs-nrm:快速切换npm源 / npm官方源和其他自定义源之间切换

一、理解 Nodejs nrm Nodejs nrm 是一个管理 npm 源的工具。由于 npm 在国内的速度较慢&#xff0c;很多开发者会使用淘宝的 npm 镜像源&#xff0c;但是也会遇到一些问题&#xff0c;例如某些包在淘宝镜像源中不存在&#xff0c;或者淘宝镜像源本身也会有问题。 Nodejs nrm …

CSS scoped 属性的原理

scoped 一、scoped 是什么&#xff1f;二、实现原理 一、scoped 是什么&#xff1f; 在 Vue 组件中&#xff0c;为了使样式私有化&#xff08;模块化&#xff09;&#xff0c;不对全局造成污染&#xff0c;可以在 style 标签上添加 scoped 属性以表示它的只属于当下的模块&am…

【MOS管的作用和工作原理】

数电/模电知识学习与分享001 MOS管的作用和工作原理1、MOS管基本概念2、MOS管基本原理3、MOS管广泛作用4、MOS管特点4、参考文献 MOS管的作用和工作原理 1、MOS管基本概念 MOS管&#xff08;Metal-Oxide-Semiconductor Field-Effect Transistor&#xff09;是一种常用的半导体…

Unity 之利用 localEulerAngle与EulerAngle 控制物体旋转

文章目录 概念讲解localEulerAngle与EulerAngle的区别 概念讲解 欧拉角&#xff08;Euler Angles&#xff09;是一种常用于描述物体在三维空间中旋转的方法。它使用三个角度来表示旋转&#xff0c;分别绕物体的三个坐标轴&#xff08;通常是X、Y和Z轴&#xff09;进行旋转。这…

AI Agent在情景猜谜场景下的AgentBench基准测试

目录 AgentBench评估哪些场景? 近日,来自清华大学、俄亥俄州立大学和加州大学伯克利分校的研究者设计了一个测试工具——AgentBench,用于评估LLM在多维度开放式生成环境中的推理能力和决策能力。研究者对25个LLM进行了全面评估,包括基于API的商业模型和开源模型。 他们发现…

安卓移动应用开发实训室建设方案

一 、系统概述 安卓移动应用开发作为新一代信息技术的重点和促进信息消费的核心产业&#xff0c;已成为我国转变信息服务业的发展新热点&#xff1a;成为信息通信领域发展最快、市场潜力最大的业务领域。互联网尤其是移动互联网&#xff0c;以其巨大的信息交换能力和快速渗透能…

es的索引管理

概念 &#xff08;1&#xff09;集群&#xff08;Cluster&#xff09;&#xff1a; ES可以作为一个独立的单个搜索服务器。不过&#xff0c;为了处理大型数据集&#xff0c;实现容错和高可用性&#xff0c;ES可以运行在许多互相合作的服务器上。这些服务器的集合称为集群。 &…

docker项目实战

目录 1、使用mysql:5.6和 owncloud 镜像&#xff0c;构建一个个人网盘。 1&#xff09;拉取mysql:5.6和owncloud镜像 2&#xff09;后台运行容器 3&#xff09;通过ip:端口的方式访问owncloud 2、安装搭建私有仓库 Harbor 1&#xff09;首先准备所需包 2&#xff09;安装h…

JavaScript——为什么静态方法不能调用非静态方法

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

RabbitMQ---订阅模型-Fanout

1、 订阅模型-Fanout Fanout&#xff0c;也称为广播。 流程图&#xff1a; 在广播模式下&#xff0c;消息发送流程是这样的&#xff1a; 1&#xff09; 可以有多个消费者 2&#xff09; 每个消费者有自己的queue&#xff08;队列&#xff09; 3&#xff09; 每个队列都要绑定…

C++:命名空间,缺省参数,函数重载,引用,内联函数

个人主页 &#xff1a; 个人主页 个人专栏 &#xff1a; 《数据结构》 《C语言》《C》 文章目录 前言一、命名空间命名空间的定义命名空间的使用 二、缺省参数缺省参数概念缺省参数分类 三、函数重载函数重载的概念 四、引用引用的概念引用特性引用的使用场景引用与指针的区别 …

vr内容编辑软件降低了虚拟现实项目开发门槛

VR虚拟场景编辑器是一种专门用于创建、修改和设计虚拟场景的工具。它利用vr虚拟现实技术&#xff0c;让用户可以在三维空间中直接对场景进行操作和编辑。这种编辑器的出现&#xff0c;使得用户可以更加直观、自由地进行场景设计和制作&#xff0c;为诸多领域带来了新的可能性。…

目标检测(Object Detection):Fast R-CNN,YOLO v3

目录 目标检测(Object Detection) R-CNN SPPNet Fast R-CNN YOLO v1 YOLO v2 YOLO v3 目标检测(Object Detection) 任务是计算机视觉中非常重要的基础问题&#xff0c;也是解决图像分割、目标跟踪、图像描述等问题的基础。目标检测是检测输入图像是否存在给定类别的物体…

将公共组件提取到npm包中

多个前端项目中公共组件使用方案&#xff08;npm包方式&#xff09; - 简书

深入篇【C++】set和map(multiset/multimap)特性总结与使用

深入篇【C】set和map(multiset/multimap&#xff09;特性总结与使用 一.set/multiset总结二.map/multiset总结三.set/map应用 一.set/multiset总结 set是按照一定次序存储元素的容器在set中&#xff0c;元素的value也标识它(value就是key&#xff0c;类型为T)&#xff0c;并且每…

服务器数据恢复-EVA存储磁盘故障导致存储崩溃的数据恢复案例

EVA系列存储是一款以虚拟化存储为实现目的的中高端存储设备。EVA存储中的数据在EVA存储设备工作过程中会不断进行迁移&#xff0c;如果运行的任务比较复杂&#xff0c;EVA存储磁盘负载加重&#xff0c;很容易出现故障的。EVA存储通过大量磁盘的冗余空间和故障后rss冗余磁盘动态…

“车-路-网”电动汽车充电负荷时空分布预测(matlab)

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序参考《基于动态交通信息的电动汽车充电负荷时空分布预测》和《基于动态交通信息的电动汽车充电需求预测模型及其对配网的影响分析》文献模型&#xff0c;考虑私家车、出租车和共用车三类交通工具特性和…