SSL为什么不直接用公钥加密数据?


当网站安装SSL证书后,建立连接的过程会发生改变,安全性大幅提高,其原理就是利用非对称加密传输会话密钥,再通过会话密钥加密客户端与服务器之间传输的数据。

问题来了,为什么不直接使用公钥加密数据,而是先用公钥加密会话密钥,再通过会话密钥加密数据呢?岂不是画蛇添足,多此一举。

我们先来看看网站安装SSL证书后,客户端与服务器建立连接的过程。

  1. 客户端提交https请求
  2. 服务器响应请求,把证书公钥发给客户端
  3. 客户端验证证书公钥的有效性
  4. 验证通过后,生成一个会话密钥
  5. 使用SSL证书的公钥,加密该会话密钥,并发送给服务器
  6. 服务器收到加密数据后,使用私钥解密,得到会话密钥
  7. 客户端与服务器利用该会话密钥,加密要传输的数据,进行通信

当客户端成功验证了SSL证书公钥的有效性后,便可以直接通过该公钥加密数据,与服务器传输数据,为什么还需要多出很多步骤出来呢?

其实这主要是为了解决速率太慢的问题。

RSA公钥算法的签名算法、验证算法耗时以及每秒所能完成的计算量如下:

我们以RSA 2048为例,普通电脑完成一次签名操作需要4.097毫秒,也就是说一秒钟可以完成的加密了为244.1*2048=499916.8bit/second=499.917kbps。

如此慢的速率,用户肯定无法接受。

非对称加密虽然安全性很高,但速率太慢是它一个致命的缺点。

对称加密恰恰相反,虽然安全性差,但速率很高。

SSL证书的智慧就体现在这里。首先利用非对称加密的高安全性,传输AES对称加密的密钥,服务器解密后,通信双方便有了会话密钥,这个会话密钥因为是通过RSA这一非对称算法进行加密的,不会被第三人监听或者窃取很安全。

此后丢掉速率很难的非对称加密,直接使用对称加密算法通信即可。

我们可以举一个更容易理解的例子。

A和B在不同的两个地方,他们想互相运送珍贵的货物,运送途中必须保证货物的安全。

他们现在有两种运输方式可以选择,一种是飞机,一种是货车。

A和B所在的地方很奇怪,陆路运输公司会配备专门的安保人员,而航空运输没有,所以经常发生劫机事件,陆路运输则比较安全。

迫于无奈,A和B只能选择陆路运输,但时间长了,它们发现这样做效率太低。经过调查发现,只要按照特定的航线航行,就不会发生劫机事件。

于是,B想了一个好办法,使用陆路运输将航线图运送到A的手中,A知道航线后,双方再使用航空运输,既能保证速度,又能保证安全性,一举两得。

从另一方面说,不使用公钥直接加密数据,也是为了安全考虑。假如直接使用公钥加密,一旦服务器私钥被获取,那么所有通信内容都将被解密,极其不安全。

如果公钥加密的是会话密钥,即便私钥被获取,由于通信内容是采用会话密钥进行加密的,第三人也无法解密数据。

PKI如何帮助缓解网络安全挑战

每个人都有安全痛点。这是当今各种规模企业的现实。全球IT智库451联盟最近研究了这一点。作为451 Research的一个部门,该组织向其成员询问了他们最大的安全问题。如下图所示,前两个包括用户行为和网络钓鱼。调查受访者还将端点安全,物联网和合规相关成本列为安...
服务器安全网络安全PKI

除了加密勒索,完整源码泄露的Babuk勒索还有哪些特征?

背景介绍近期Babuk勒索软件的完整源代码被泄露,据泄露源代码的黑客自称是想要改过自新,但是这一公开源代码的举动反而拉低了其他潜在犯罪团伙制作勒索软件的成本,后续是否会因此涌现更多的勒索软件不得而知。Babuk勒索最早曝光于2021年初,让他们“一跃成名”的是...
攻击服务器安全勒索软件数据泄露

DataGrip 数据导出与导入的实现示例

目录数据导入导出数据结构及数据导出结构导入数据datagrip是由jetbarins出品,当然datagrip也顺理成章成为了一个精品,这款软件是数据库管理与开发,各种智能提醒,各种数据库连接,让你更快速,更高效的完成任务。好了,不说废话。目前阶段,我也是初学...
数据库技术DataGrip导入导出

阿里云盾网站安全防御(WAF)的使用方法(图文)

将2个网站搬到阿里云,一个是因为阿里云稳定,另一个就是牛逼轰轰的云盾了。之前在博客联盟群里模拟CC攻击过搭建在阿里云ECS上的博客,结果云盾毫无反应,而网站已经挂了。这次特意细看了一下云盾上的CC防护功能,发现有部分朋友估计并未正确使用WAF。所以,我在本文就...
阿里云服务器安全WAF阿里云盾网站安全