当前位置: 首页 > news >正文

基于https的数据加密技术

基于https的数据加密技术

  • 摘要
  • 一、引言
  • 二、加密方式
    • 2.1对称加密算法
    • 2.2 非对称加密
    • 2.3 混合加密
    • 2.4中间人攻击
  • 三、证书
    • 3.1数字签名
    • 3.2 CA认证
  • 四、HTTPS
    • 4.1 SSL/TSL
    • 4.2HTTPS
  • 五、总结

摘要

为解决HTTP协议明文传输导致的数据泄露风险,HTTPS协议通过引入SSL/TLS层实现了网络通信的安全化。本文核心内容围绕HTTPS的安全基石展开。首先,文章分析了其加密体系,阐明了如何通过结合非对称加密的安全密钥协商与对称加密的高效数据传输,构建出“混合加密”模型。其次,针对中间人攻击等身份伪造威胁,本文重点探讨了数字证书与CA认证机制。通过讲解数据签名和CA的信任背书,揭示了HTTPS如何验证通信对方的真实身份,确保连接的可信度。本文结论指出,HTTPS的安全性并非来自单一技术,而是依赖于混合加密与数字证书认证体系的协同作用,二者共同保障了网络通信的机密性、完整性与身份真实性。
关键词: HTTPS;网络安全;加密算法;数字证书;中间人攻击

一、引言

在当今高度发达的互联网时代,网络已成为信息交换、商业交易和社会互动不可或缺的基础设施。从在线购物、社交媒体到网上银行,海量的数据在复杂的网络环境中高速流转。这一切的基础是HTTP(超文本传输协议),它以其简洁高效的特性,支撑着万维网的运作。然而,HTTP协议的一个根本性缺陷在于其数据传输采用明文形式,这意味着任何在传输链路上的节点都有可能截获、窃听甚至篡改通信内容。这种透明性使得用户的密码、银行账户、个人隐私等敏感信息在网络世界中如同“裸奔”,极易遭受窃取和滥用,对个人和企业造成不可估量的损失。
为了应对这一严峻的安全挑战,HTTPS(Hypertext Transfer Protocol Secure)协议应运而生。HTTPS并非一个全新的协议,而是在HTTP协议的基础上,通过引入SSL/TSL(安全套接层/传输层安全)协议层,为数据通信提供了强大的安全保障。其核心目标是解决HTTP协议的三大安全问题:数据机密性(防止信息被窃听)、数据完整性(防止信息被篡改)和身份真实性(确保通信对方是其所声称的实体)。
本文将围绕HTTPS的实现原理展开系统性论述。首先,将深入剖析HTTPS所采用的加密方式,包括对称加密、非对称加密以及二者结合形成的混合加密机制,阐明其如何在保证安全性的同时兼顾通信效率。接着,将分析典型的网络攻击模式——“中间人攻击”,并以此引出仅靠加密无法解决的身份认证问题。随后,本文将重点介绍以数字证书为核心的解决方案,详细阐述数据签名与CA(证书颁发机构)认证在验证服务器身份、建立信任链中的关键作用。
通过本文的阐述,旨在帮助读者清晰地理解HTTPS是如何从根本上提升网络通信的安全性,构建一个从数据加密到身份可信的端到端安全通道,从而揭示其在现代网络安全体系中的基石地位。

二、加密方式

2.1对称加密算法

对称加密,又称为对称密钥加密(Symmetric-key Cryptography),是密码学中一种基础且高效的加密范式。其核心原理在于,通信双方在加密和解密数据时,共享并使用同一份密钥。该密钥在通信开始前必须通过某种安全方式进行分发,并在整个通信会话中保持机密。
对称加密的安全性并不依赖于加密算法本身的保密,而是完全建立在密钥的保密性之上。
为了阐明其基本工作机制,我们可以构建一个如图1所示的简化的概念模型。假设明文data为“123456”,通信双方约定使用一个简单的算术运算作为加密算法,并共享一个密钥 C=6。
在这里插入图片描述

图1对称加密算法图示图 1 对称加密算法图示1对称加密算法图示

首先是加密过程:服务端对明文执行减法运算:123456 - 6 = 123450。生成的“123450”即为密文,可通过不安全的信道传输。接着是解密过程:如客户端收到密文后,使用相同的密钥C执行逆运算——加法:123450 + 6 = 123456,从而恢复出原始明文。
在此模型中,即使攻击者截获了密文“123450”并推断出加密方式为加减运算,但由于缺乏关键的密钥信息K,其无法确定进行逆运算所需的正确数值,因而无法还原明文。需要强调的是,此示例仅为教学演示,实际的加密算法远比此复杂,以抵御各类密码分析攻击。
然而,对称加密在实际应用中面临一个根本性的挑战,如图2所示:密钥分发问题(Key Distribution Problem)。若要在服务器与众多客户端之间建立安全通信,如何管理和分发密钥成为关键。一种朴素的方案是所有客户端共用一个预设的密钥。这种方法的缺陷是显而易见的:任何一个客户端的密钥泄露,都将导致整个通信网络的安全体系崩溃。
在这里插入图片描述

图2密钥分发问题图 2密钥分发问题2密钥分发问题

为提升安全性,更理想的方案是为每个客户端生成唯一的会话密钥。但这又引出了新的难题:服务器如何将这个新生成的密钥安全地告知客户端?如果在建立加密通信之前,通过明文方式传输该密钥,那么任何能够监听信道的攻击者都能轻易截获此密钥。一旦攻击者获取了密钥,后续的所有加密通信对其而言都将形同虚设,完全失去了安全意义。
综上所述,对称加密具有以下显著特点:其算法结构相对简单,计算开销小,从而实现了极高的加密和解密速率。这种高效率使其成为对大量数据进行加密的理想选择。然而,其固有的密钥分发难题,使其无法单独作为构建一个完整、安全的网络通信协议的解决方案。

2.2 非对称加密

为解决对称加密中固有的密钥分发难题,非对称加密(Asymmetric Encryption),亦称公钥密码学(Public-key Cryptography),提供了一种创新的解决方案。公钥可以被广泛分发,对任何人公开;而私钥则必须由其所有者严格保密。这对密钥的功能是互补的,即由其中一个密钥加密的数据,只能由另一个密钥进行解密。
非对称加密主要存在两种核心的运作模式,分别服务于不同的安全目标。第一种是以数据机密性为目标的加密模式(公钥加密,私钥解密)在这种模式下,发送方使用接收方的公钥对数据进行加密。由于公钥是公开的,任何人都可以执行此加密操作。然而,被加密后的密文只能通过接收方持有的、与之配对的私钥才能解密。这种机制确保了只有预期的接收者能够读取信息内容,从而保障了通信的机密性。一个恰当的类比是公开的信箱:任何人都可以将信件(加密数据)投入信箱(使用公钥加密),但只有持有唯一钥匙(私钥)的信箱主人才能打开信箱并阅读信件。第二种是以身份认证与数据完整性为目标的签名模式(私钥加密,公钥解密)这类似于官方文件上的印章:只有授权机构(私钥持有者)才能盖章, 而任何人都可以通过比对公开的印章样本(公钥)来验证文件的真实性。
在网络通信中,由于双方都需要收发数据,如果采用非对称加密,那么就要采用两对公钥和私钥。假设服务端生成S和S这对密钥,客户端生成C和C这对密钥,采用私钥进行加密,公钥进行解密。我们可以构建一个简单的模型如图3所示。
在这里插入图片描述

图3非对称加密图3 非对称加密3非对称加密
如果在通信过程中黑客截取到了密文,就算它持有两个公钥S和C,但是解密报文需要私钥S和C,这个只有客户端和服务端分别持有,那么黑客就无法破解数据。每一个客户端与服务器都要维护两对密钥,那么这两对密钥就需要临时生成,在最开始需要进行公钥的交换,如图4所示。
在这里插入图片描述

图4非对称加密前的准备图4 非对称加密前的准备4非对称加密前的准备
最开始客户端与服务端互相不知道公钥,那么就需要互相告知自己的公钥,交换公钥的过程是不加密的,黑客就可以拿到公钥S和C,但是就算黑客拿到了两个公钥,它也破解不了报文。因为报文是拿公钥加密的,要拿私钥解密,而客户端与服务端之间各自生成私钥,根本没有把私钥发送到网络上,黑客就无法破解报文。尽管非对称加密巧妙地解决了密钥分发问题,但它并非完美无缺。其主要缺点在于计算复杂度高和无法抵御中间人攻击。此问题将在后续章节详细讨论。

2.3 混合加密

对称加密算法效率高,但如果黑客在交换密钥时入侵,加密会失效。非对称加密效率低,但如果黑客在交换密钥时入侵,加密依然有效。那么能不能结合一下两者,集合它们的优点?在对称加密中,主要是害怕第一次交换密钥会泄露,因此第一次交换密钥需要进行一次额外的加密。问题就变成了:在对称加密交换密钥时,需要对密钥加密。对这个对称密钥加密,不能采用对称加密的方式,必须采用非对称加密,因为非对称加密不怕交换密钥时的黑客入侵,这就是混合加密的思想。
在这里插入图片描述

图5混合加密过程图5混合加密过程5混合加密过程
如图5所示,混合加密流程如下:
1.服务端生成非对称密钥S与S*
2.服务端告知客户端公钥为S
3.客户端生成对称密钥C
4.客户端告知服务端对称密钥为C,并使用公钥S加密
5.服务端使用S*解密报文,得到对称密钥为C
6.后续所有通信采用对称密钥C
这个连接过程中,只有第一个报文告知S公钥是没有加密的,而非对称加密不怕公钥泄露。随后客户端利用这一层非对称加密,来加密密钥C,这样就可以保证C的安全性。随后所有的通信都采用C,就可以提高加密的效率,又不怕C被泄露,这就是结合前两者的混合加密。不过这种加密方式也害怕中间人攻击。

2.4中间人攻击

中间人攻击简称MITM,先前两种加密方式看似都很完美,但是都逃不过中间人攻击。
在进行密钥交换之前,必然要建立TCP连接,而在建立连接的过程中,有可能会有第三者入侵。我们建立一个简单的模型,如图6所示:当前TCP连接建立完成,但是发生了中间人入侵。
在这里插入图片描述

图6中间人入侵图 6中间人入侵6中间人入侵
中间人入侵后,此时server以为middle是客户端,client以为middle是服务端。以混合加密为例,展示中间人是如何绕开加密的。首先如图7所示,server生成非对称密钥S和S*,并发送公钥S给中间人(server以为中间人是客户端):
在这里插入图片描述

图7中间人入侵第一步图7中间人入侵第一步7中间人入侵第一步
你可能认为,公钥根本就不担心被公开,此时middle就算拿到了公钥S也没有任何作用。这确实没错,但是这也是中间人攻击最巧妙的一步:中间人会再生成一对非对称密钥M和M*,如图8所示。
在这里插入图片描述

图8中间人入侵第二步图8中间人入侵第二步8中间人入侵第二步
客户端接收到公钥M后,以为这是服务端发送来的消息,以为服务端的公钥是M。客户端生成对称密钥C,通过公钥M加密发送给中间人,如图9所示。
在这里插入图片描述

图9中间人入侵第三步图9中间人入侵第三步9中间人入侵第三步
此时中间人通过私钥M*解密报文,得到对称密钥为C,于是再伪装自己是客户端,把C利用公钥S加密发回给服务端。随后客户端与服务端采用C进行加密通信,如图10所示,至此中间人已经神不知鬼不觉地潜伏在了通信之中。
在这里插入图片描述

图10中间人入侵第四步图10中间人入侵第四步10中间人入侵第四步
客户端与服务端都以为自己完成了完美的加密过程,但是其实中间人早已经拿到了对称密钥C,后续的所有报文中间人都可以轻松破解。导致中间人攻击的源头,就是第一次交换公钥S,客户端无法得知自己收到的公钥是来自于服务端还是中间人。
中间人攻击成功的根源在于身份认证的缺失。在公钥交换的初始阶段,客户端无法验证其收到的公钥的真实归属权。它接收到一个公钥,但没有可靠的机制来确认这个公钥确实属于它想要通信的服务器,而非来自某个伪装的第三方。因此,单纯的加密算法,无论多么强大,都无法解决“与谁通信”这一根本性的信任问题。要抵御中间人攻击,就必须引入一种能够可靠验证通信对方身份的机制。

三、证书

在非对称加密体系中,公钥的分发与认证是一个核心安全问题。客户端在与服务端建立加密通信时,必须确保其获取的公钥确实隶属于目标服务器,而非由恶意第三方(即“中间人”)伪造或篡改。若无法验证公钥的真实性,中间人攻击(Man-in-the-Middle, MITM)便可轻易实施,从而截获并破解所有通信内容。为解决此信任问题,业界建立了基于数据签名和证书颁发机构(Certificate Authority, CA)的公钥基础设施(Public Key Infrastructure, PKI)。CA机构维护了一个公钥A和一个私钥A*,把公钥告知给所有的浏览器。当服务器发送数据前,可以找CA机构进行认证,生成一个证书,客户端拿到数据后,通过检验证书来得知与自己通信的是否是目标服务器。

3.1数字签名

数字签名是保障数据完整性、真实性和不可否认性的关键密码学技术,其实现依赖于非对称加密和哈希函数。签名生成的过程如图所示,发送方首先对原始数据(Data)应用一个单向的密码学哈希函数(如SHA-256),生成一个固定长度的哈希值(Hash Digest)。随后,发送方使用其自身的私钥对该哈希值进行加密,生成的结果即为数字签名,如图11所示。
在这里插入图片描述

图11签名生成图11签名生成11签名生成
如图12所示,签名验证:接收方收到数据和签名后,执行以下验证步骤:
1.使用与签名生成时相同的哈希函数,对接收到的数据(Data)独立计算出一个新的哈希值(hash1)。
2.使用发送方公开的公钥对数字签名进行解密,还原出原始的哈希值(hash2)。
3.比较两个哈希值(hash1 和 hash2)。
在这里插入图片描述

图12签名验证图12签名验证12签名验证
根据哈希函数的抗碰撞性(Collision Resistance)特性,任何对原始数据的微小改动都会导致其哈希值发生显著且不可预测的变化。因此,若hash1与hash完全一致,则可以高度确信数据在传输过程中未被篡改并且该签名确实是由持有相应私钥的实体生成的。
在TLS/SSL握手协议中,数字签名的首要应用便是对服务器公钥的认证。服务器将其公钥、域名及其他元数据打包,并对此数据包进行签名,以确保客户端收到的公钥是真实可信的。若中间人替换了公钥,客户端在验证签名时会因数据不一致而导致哈希值校验失败,从而识别出攻击。

3.2 CA认证

将域名,公钥等信息进行打包得到data,在加上这个data的签名,就是一个证书,也就是说证书 = 服务端信息 + 签名,如图所示。证书由CA机构进行颁发,用于保证证书的权威性。先前说过,CA机构会自己维护一个私钥A*,不透露给任何人,并且所有浏览器都会内置对应的公钥A。
在这里插入图片描述

图13CA认证图13 CA认证13CA认证
服务器配置HTTPS协议前,要想CA机构申请证书,服务器先生成非对称密钥S和S*,并把这些信息打包发送给CA机构。CA机构会对这些信息进行确认,如果验证通过,就利用哈希函数和私钥A*对这个数据生成签名,并把签名和服务端信息打包成证书,发送给服务端。
后续服务端再与客户端通信,只需要把证书发给客户端。由于浏览器内置了公钥A,客户端就可以检测签名是否正确,域名是否是目标域名,从而确认该公钥确实来自于服务器,随后执行混合加密过程,生成对称密钥C,完成真正的加密通信。基于这种CA认证的方式,中间人就无法对证书进行修改或者掉包。

四、HTTPS

先前的内容,只是HTTPS的基本原理,也就是使用混合加密 + 证书的模式,实际上HTTPS的流程还要稍微复杂一些。

4.1 SSL/TSL

HTTPS的加密部分,是由SSL/TSL协议完成的,具体关系在下一个小标题进行阐述。先前的”混合加密+证书”的模式中,对称密钥C完全由客户端生成,服务端完全没有参与这个过程,而在真正的SSL/TSL协议中,这个对称密钥是由双方进行协商得出的。
在这里插入图片描述

图14HTTPS通信过程图14 HTTPS通信过程14HTTPS通信过程
HTTPS通信过程如图14所示,首先,客户端要与服务端建立TCP连接,随后正式开始HTTPS协议。客户端发送一个Client Random随机数,这个随机数与后文的密钥相关,并发送一些其它的客户端本身的信息。服务端返回一个Server Random随机数,也与后文的密钥相关。服务端发送自己的证书。服务端发送一个密钥交换算法,以及这个算法的一些相关参数。发送Hello Done报文,表示结束。
在这里插入图片描述

图15密钥交换算法图15密钥交换算法15密钥交换算法
图14中涉及的ECDHE密钥交换算法内部如图15所示,客户端首先验证证书的可靠性,在这个证书中包含服务端的公钥S。随后给服务端也发送一个ECDHE的参数,并且这个报文由S公钥进行加密。此处不对ECDHE算法深入了解,只需要知道客户端与服务端会交换这个算法的部分参数。
当客户端与服务端拿到了ECDHE算法的参数,以及两个随机数Client Random和Server Random,就开始正式生成密钥。双方分别基于ECDHE算法,生成预主密钥Pre-Master,由于先前已经交换过参数,它们计算出的值是相同的双方分别基于Client Random和Server Random,对预主密钥Pre-Master进行再次计算,得到主密钥master secret。这个主密钥master secret又会进一步生成会话密钥session secret。随后客户端发送Change Clipher Spec报文,表示接下来的报文将使用会话密钥session secret加密。随后立刻发送Finished报文,这个报文也会被session secret加密,在这个报文内部,包含了客户端之前各种信息形成的哈希值。
服务端ACK确认该报文后,正式开始通信,当服务端第一次发送数据之前,也会发送发送Change Clipher Spec报文,表示接下来的报文将使用会话密钥session secret加密,再发送一个Finished报文,也包含了服务端之前各种信息生成的哈希值。
当双方的Finished报文都发送完毕后,就可以互相知道对方的哈希值,从而对比出之前是否有数据不统一,如果这两个哈希值一样,那么生成的session secret就是一样的。最后正式开始HTTPS通信。

4.2HTTPS

在这里插入图片描述

图16HTTP、HTTPS、SSL、TLS协议关系图16 HTTP、HTTPS、SSL、TLS协议关系16HTTPHTTPSSSLTLS协议关系
如图16所示,展示了HTTP、HTTPS、SSL、TLS协议之间的关系。其实HTTPS协议就是在HTTP协议基础上增加了一个加密层,而加密是由SSL或TLS实现的,其中SSL是TLS的前身。所以上一个小标题叫做SSL/TLS,这表示加密部分是由这两个协议实现的,并且两者是或的关系。

五、总结

综上所述,HTTPS协议通过将对称加密的高效性与非对称加密的安全性相结合,并辅以数字证书与CA认证机制,构建了一个兼顾机密性、完整性与身份真实性的安全通信体系。在这一过程中,混合加密有效解决了密钥分发与传输效率之间的矛盾,而数字签名与CA认证则从根本上防范了中间人攻击所引发的身份伪造问题。进一步而言,SSL/TLS作为HTTPS的实现核心,通过精细的握手机制和密钥协商流程,使通信双方能够在开放的网络环境中建立起可信赖的加密通道。可以认为,HTTPS的安全性并非依赖于某一单一技术,而是源于多层次加密与认证机制的协同作用。其在当今互联网中的广泛应用,不仅为电子商务、金融交易和个人隐私保护提供了坚实屏障,也奠定了现代网络安全体系的重要基础。


文章转载自:

http://XvK8VNFA.ppzgr.cn
http://9NtJPkzr.ppzgr.cn
http://AhP3L2Xn.ppzgr.cn
http://ciDlQyZx.ppzgr.cn
http://pq6dkBuG.ppzgr.cn
http://ZjV2grLM.ppzgr.cn
http://LzFuQmma.ppzgr.cn
http://M9a25s38.ppzgr.cn
http://4QSe8fmx.ppzgr.cn
http://9EfAGS2d.ppzgr.cn
http://0cPdn84r.ppzgr.cn
http://SIHAgFMm.ppzgr.cn
http://jSsdv8jB.ppzgr.cn
http://ExNIWVOv.ppzgr.cn
http://FeaVkirU.ppzgr.cn
http://94xb3YFO.ppzgr.cn
http://UXX2cdCf.ppzgr.cn
http://XjygPBXr.ppzgr.cn
http://gtYDUXDf.ppzgr.cn
http://mquT6D1S.ppzgr.cn
http://avuvGQMA.ppzgr.cn
http://buAozI1d.ppzgr.cn
http://H0jDE8aW.ppzgr.cn
http://y3zbYgpR.ppzgr.cn
http://8M0zwzfc.ppzgr.cn
http://dZzA83El.ppzgr.cn
http://nFoKCx19.ppzgr.cn
http://L5hysGuF.ppzgr.cn
http://gOcPj45p.ppzgr.cn
http://UclJ2TMh.ppzgr.cn
http://www.dtcms.com/a/384597.html

相关文章:

  • 自学嵌入式第四十一天:单片机-中断
  • 二分图 系列
  • DDAC工作流的PyCharm项目前置准备清单
  • 【Kubernetes】K8s 集群外服务配置 Service 访问
  • RESTFul API接口设计指南_V2
  • Linux第十七讲:应用层自定义协议与序列化
  • ESLint 自定义规则开发
  • 三维地震数据体:形态、处理流程与勘探应用笔记
  • HTTP标头全解析:保护你的Web应用!
  • 机器人控制器开发(定位——cartographer ros2 使用2)
  • 元学习原理与实验实战:让机器学会快速学习
  • [Cesium] 基于Cesium的二次开发的库
  • 红外IR的运用
  • 基于51单片机可燃气体报警、风扇、继电器断闸
  • Ubuntu下搭建vllm+modelscope+deepseek qwen3
  • 【 SQLMap】GET型注入
  • Actix-webRust Web框架入门教程
  • Docker Grafana 忘了密码修改方法
  • 移动端触摸事件与鼠标事件的触发机制详解
  • Go语言深度解析:从入门到精通的完整指南
  • CKS-CN 考试知识点分享(6) 日志审计
  • CentOS 7 环境下 PHP 7.3 与 PHP-FPM 完整安装指南(外网 yum / 内网源码双方案)
  • ubuntu24.04下让终端显示当前git分支的最简单的方法
  • 快速安装WIN10
  • 【bert微调+微博数据集】-实现微博热点话题预测与文本的情感分析
  • Java 黑马程序员学习笔记(进阶篇9)
  • 认知语义学中的隐喻理论对人工智能自然语言处理深层语义分析的启示与影响研究
  • 03-htmlcss
  • 【PSINS工具箱下的例程】用于生成平面上8字型飞行轨迹,高度和飞行速度等值可自定义|包括AVP(姿态、速度、位置)和IMU数据(加速度计与陀螺仪)
  • SSB-Based Signal Processing for Passive Radar Using a 5G Network