HTTPS靠什么保障通信安全?

大多数人都听说过HTTPS,也清楚它的作用是保障通信安全,但如果没仔细研究过,大概率说不清它到底是怎么做到的。

这篇文章围绕三个核心问题展开:

1、HTTPS到底是什么?

2、它跟HTTP有哪些不同?

3、HTTPS靠什么保障通信安全,又解决了哪些隐患?

1. HTTPS到底是什么?

HTTPS本质上是一条以安全为目标的HTTP通道,在原有HTTP协议之上,叠加了传输加密和身份验证机制,从而确保整个传输环节的安全性。

从这个定义里,我们能提炼出两个关键词:传输加密、身份验证。接下来先认识一下HTTPS中会用到的加密手段和认证手段。

1)对称加密

加密数据离不开密钥对(包含加密密钥和解密密钥)。对称加密比较好懂,也就是:通信的两边各自拿着的加密密钥和解密密钥是同一把。

2)非对称加密

非对称加密顾名思义,就是:通信双方各自持有的加密密钥和解密密钥并不相同。自己私下保留的那把叫私钥,对外公开允许别人获取的那把叫公钥。实际应用中,一般是用公钥来加密通信内容,再用私钥解密,以此保障数据安全。

3)数字签名

用来确保数据在传输中没有被篡改,同时验证发送方的真实身份。数字签名其实是非对称加密和数字摘要两项技术的结合运用。通常先用hash算法对原始数据做一次数字摘要(生成一段独一无二的数据标识,这个过程不可逆),接着用私钥对这段摘要进行加密;接收方拿到数据后,用发送方提供的公钥解密,如果能成功解密,就说明数据确实来自发送方(解不开的话,说明对方是假冒的),然后再用同样的hash算法对解密出来的数据重新做一次摘要,跟之前那次对比,如果一致就代表数据没有被动过手脚,从而保障了数据的完整性。

4)数字证书

数字证书也叫数字标识,由用户主动申请,由证书颁发机构CA审核后签发,作用是对用户的公钥做背书。前面讲的几种技术,前提都是发送方本身是真实可靠的,但如果发送方本身就是冒充的,那后面所有的加密验证都白搭。而证书颁发机构通常都是权威组织,经由它签发的证书,就能确保发送方提供的公钥是值得信赖的。

上面这些理论单独看可能有些抽象,别急,跟着后面的推演过程走,会慢慢通透起来。

2. 和HTTP的区别

HTTPS跟HTTP的差异,这里不展开细讲,直接看一张图感受一下:

HTTPS靠什么保障通信安全?

从图中能很直观地看出,HTTPS就是在HTTP下面多加了一层SSL安全协议,简单理解就是HTTPS=HTTP+SSL,这层SSL协议负责保障通信全程的安全性。

具体体现在三个方面:

1)信息加密安全

2)信息完整性

3)身份认证

3. 到底怎么保障通信安全的

先回顾一下HTTP的一次完整数据通信流程。TCP建立连接和断开连接的部分就不展开了。

这里暴露出的安全隐患:

HTTPS靠什么保障通信安全?

1)图一中的步骤①和②都可能被黑客截获,用户信息直接泄露,非常危险。

HTTPS为了应对这个问题,让通信双方协商一种加解密方式,也就是对称加密,只有通信双方知道密钥,以此保障传输数据的安全;但紧接着又冒出一个新问题:双方怎么把这个密钥安全地交换给对方呢?

于是又引入非对称加密来完成密钥交换——服务端把自己的公钥发给客户端,客户端用这把公钥把密钥加密后传回服务端,服务端再用私钥解密拿到密钥,之后双方就用这把对称密钥进行后续通信。

HTTPS靠什么保障通信安全?

2)图二中的步骤②,假如被黑客拦截了会怎样?

黑客完全可以冒充服务器,把自己的公钥发给客户端,也就是说”服务器”从头到尾就是假的。这样一来,图二步骤③里客户端用公钥加密的那把密钥,黑客轻轻松松就能拿到,后续的通信全程被监听,信息彻底暴露。

HTTPS为此引入了”数字证书”。因为数字证书是权威机构颁发的,申请时要提交大量材料接受审核,正常情况下冒充者几乎不可能拿到证书,也就确保了服务端交出来的公钥是安全可信的。

HTTPS靠什么保障通信安全?

3)图三中步骤②发出的证书,要是被黑客中途截获并篡改了怎么办?

就算黑客拿到证书本身也用不了,但如果他故意把证书里的信息改了,客户端收到后根本察觉不到,照样存在安全风险。

所以,CA机构在生成证书的时候就加上了”数字签名”,用来保障证书的完整性。

原理是这样的:CA机构先用Hash算法对证书明文内容生成一段”信息摘要”,再用自己的私钥对这段摘要加密,生成数字签名,连同摘要一起放进数字证书里;客户端收到服务器发来的证书后,先用证书里指定的Hash算法对证书内容做一遍摘要得到”信息摘要”,再用CA机构的公钥去解密证书中的签名部分,如果解密出来的摘要和自己算出来的一致,就说明证书没被动过。(CA机构一般都是权威组织,所以它的公钥通常已经内置在客户端操作系统里了)

4)还有一种情况,客户端跟服务端通信的时候,黑客虽然没有”会话密钥”看不到真实内容,但他可以”篡改数据”,比如删掉一段信息,通信双方收到后并不知道数据已经被动过了。

HTTPS为了保障数据完整性,同样采用了”数字签名”机制,用的是HMAC算法来做签名,确保通信全程中信息没有被篡改。

到这里,HTTPS已经帮我们实现了通信双方之间的安全传输。

原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/jsjc/2902.html

Like (1)
Previous 2026年6月10日
Next 2026年6月11日

相关推荐