彻底搞懂https的加密原理-为什么要进行https加密

25 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情

大家都知道https是基于http的一种安全升级,做了数据加密处理。现如今,越来越多的公司为了数据安全,也都把网站逐步升级成https了,但是https到底是如何加密的呢?是如何保证数据传输的安全性呢?

在搞明白https是如何保证数据传输安全之前,首先需要了解下为什么要进行https加密。

http传输不安全

之所以要进行https加密,很显然是因为http传输数据不安全。那么,问题又来了,为什么http传输数据不安全呢?主要因为以下几点:

第一,http在数据传输过程中,采用的是明文数据传输。

当我们在从客户端那里请求服务端数据,或者服务端从客户端那里接收数据时,从表面上看,我们只是简单发起或接收了一个网络请求。看似简单的一个请求,其实中间却经过了各种网络物理节点,如 路由器、wifi热点、代理服务器,网络运营商等等。在传输的过程中,由于数据是未加密的明文,传输的数据内容就完全暴露了此时的数据,便可完全被“中间人”窃取查看。

第二,http在传输数据时,无法证明传输数据的完整性。

这样如果在某些情况下被“中间人”篡改了传输的信息,便会迫使接受数据的一方,在无感知情况下,接收到被篡改后的错误数据。比如,用户原本想下载一个官方的应用软件A,结果在传输 的过程中,被篡改成了软件A1,此时,用户完全无感知,直接安装后,便会遭到“中间人”的破坏。

第三,http不验证通信方的身份。

这样的话,“中间人”完全有可能冒充服务端或者客户端进行伪装通信,窃取用户信息。比如,用户在访问购物网站A时,自以为是在和网站A进行通信(比如转账等) 如果此时服务端已经被冒充了,那么用户实际上是在和一个钓鱼网站在通信,但是,此时对于用户来说,完全是无感知的,可以想象,后果将非常危险。

总结:http传输数据之所以不安全,主要归纳为以下3点:明文传输,容易被窃听;无法验证数据完整性,容易被篡改;不验证通信方身份信息,容易被冒充。