HTTPS协议加密原理

news2024/12/27 11:00:40

目录

一、什么是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认证+非对称加密+对称加密的方式。

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

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

相关文章

BGP路由协议的那些事?(下)

BGP路由协议的那些事?(下) 上期问题:在BGP联盟内部的EBGP和IBGP对等体互相传递路由时,LP属性和MED属性是如何变化的呢? 还记得我们说BGP联盟的规则时,有两条关于LP属性和MED属性的规则怎么说来着: 1:路由的LOCAL_PREF属性在整个联盟中都被保留,而不仅仅是在为它们…

Fooocus-开源AI绘画工具 无需繁琐配置 一键下载安装

工具介绍 Fooocus是一款免费开源的AI绘画工具,基于SDXL模型在SD webui的基础上进行了改进,提供了一系列强大功能,并提供直观易懂的界面,离线、开源、免费,无需手动调整参数等等,一键下载安装,用…

什么是回调函数(callback function)?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 回调函数(Callback Function)⭐ 示例⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这…

ZDH-智能营销模块

本次介绍基于ZDH v5.1.2版本 项目源码 zdh_web: GitHub - zhaoyachao/zdh_web: 大数据采集,抽取平台 营销模块后端服务: 开发中 预览地址 后台管理-登陆 用户名:zyc 密码:123456 安装包下载地址 登录预览系统-可下载安装包 重要提示 当前模块支持的…

sql:知识点记录二

(1)索引的优势劣势 (2)索引分类和建立索引命令语句 查看表中的索引: (3)索引的结构 (4)哪些情况适合建立索引 (5)哪些情况不适合建立索引 &#x…

harbor私有仓库的迁移

harbor出现故障或者镜像仓库需要迁移时就会用到镜像仓库的迁移 需要迁移的镜像跟日志 进入usr/local/harbor目录打开docker-compose.yuml文件 进入两个目录中打包所有的资源 进入另一个数据迁移账号中 都是空的 然后把之前tar包放在他应该在的地方并解压 然后重启

guassian filter and bilateral filter

在用CRF 后处理segmentation的时候有一项 d.addPairwiseGaussian(sxy(5, 5), compat3, kerneldcrf.DIAG_KERNEL,normalizationdcrf.NORMALIZE_SYMMETRIC)# This adds the color-dependent term, i.e. features are (x,y,r,g,b).d.addPairwiseBilateral(sxy(5, 5), srgb(13, 13…

Orchestrator介绍一 简介安装与web端管理

目录 一 Orchestrator简介 二 Orchestrator功能 1 Discovery(发现复制拓扑) 2 Refactoring(重构复制拓扑) 3 Recovery(恢复主库故障) 三 orchestrator支持的操作方式 四 部署要求 五 下载 六 安装 1 下载软件包 2 解压软件包 3 创建账号 第一种是 orc后端MySQL数据…

五、多表查询-3.2连接查询-外连接

一、语法 二、演示-左外连接 【例】查询emp1表的所有数据(17条),和对应的部门信息(左外连接) 【 左外连接和内连接区别】 内连接只能查到16条数据,dept_id为null的值查不到 左外连接可以查到17条所有数据…

screen

可以参考博客:https://blog.csdn.net/nima_zhang_b/article/details/82797928 Linux中的screen是一个命令行工具,可以让用户在同一个终端会话中创建多个虚拟终端。它非常有用,因为它允许用户在后台运行长时间的进程**,即使用户断…

2070. 每一个查询的最大美丽值;2416. 字符串的前缀分数和;2261. 含最多 K 个可整除元素的子数组

2070. 每一个查询的最大美丽值 核心思想:枚举优化(二分)。简单想法就是枚举每一次的查询,然后枚举出小于等于查询值在items中的最大美丽值,这种做法肯定超时了,那么如何进行优化,就是利用二分法…

管家婆往来分析功能介绍

往来分析是企业管理的重要工具之一,主要用于监控和查询与往来单位的业务往来情况,包括进货金额、付款金额、销售金额、回款情况、此前应收应付、应收应付余额、应收应付限额及其超限余额等。通过往来分析,企业可以更好地了解和控制与往来单位…

一名阿里服务端开发工程师的进阶之路

一名阿里服务端开发工程师的进阶之路 一、前言 目前,资讯、社交、游戏、消费、出行等丰富多彩的互联网应用已经渗透到了人们生活和工作的方方面面,正深刻改变着信息时代。随着用户规模的增长和应用复杂度的上升,服务端面临的技术挑战越来越严…

技术新浪潮:正在崛起的AI工程师

最近在latent.space上看到一篇关于AI工程师正在崛起的文章,引起了作者一些兴趣,经过进一步收集和整理了一些关于AI工程师的最新发展和资讯。作者梳理为本篇文章,希望能对大家有所帮助,共同探讨学习。 随着技术的日益发展&#xff…

韶音骨传导耳机可以水洗吗,韶音骨传导耳机好不好

现如今的韶音骨传导耳机已经将防水区分开了,而在市面上最主要的产品为韶音OpenRun Pro以及韶音OpenSwim,其中韶音OpenRun Pro的防水是只有IPX5级,原因是在发声单元的表层存在着开孔的网状设计,所以无法直接在水龙头下冲洗&#xf…

PointNet论文解读及代码详解

一、论文解读 PointNet是第一个直接以三维点云作为输入的深度学习网络,点云的特点如下: # 无序:无论点的顺序如何打乱,点云传达的内容不变。 # 组合表达:某个点需要结合附近的点才能表达局部信息,仅看单个…

通讯录(C语言)

通讯录 一、基本思路及功能介绍二、功能实现1.基础菜单的实现2.添加联系人信息功能实现3.显示联系人信息功能实现4.删除联系人信息功能实现5.查找联系人信息功能实现6.修改联系人信息功能实现7.排序联系人信息功能实现8.加载和保存联系人信息功能实现 三、源文件展示1.test.c2.…

使用WSL修改docker文件存储位置

按照以下说明将其重新定位到其他驱动器/目录,并保留所有现有的Docker数据。 首先,右键单击Docker Desktop图标关闭Docker桌面,然后选择退出Docker桌面,然后,打开命令提示符: wsl --list -v您应该能够看到&a…

三极管NPN、PNP的区别及简单应用

目录 一、NPN、PNP三极管的概念 二、NPN、PNP三极管的区别 三、三极管NPN、PNP的简单应用 一、NPN、PNP三极管的概念 NPN型三极管: 由两块N型半导体和一块P型半导体组成,P型半导体在中间,两块N型半导体在两侧。 三极管是电子电路中最重要的…