如果偷了网站的私钥,SSL真的会被破解吗?

安全 数据安全
密钥对数据安全至关重要,不禁让我们产生了一个疑问,如果服务器的私钥被第三人窃取,是不是意味着历史数据、正在传输的数据,以及未来要传输的数据,都会被破解?

近几年来,随着网上支付以及网上交易业务的日益频繁,SSL证书得到许多像网上银行、基金交易平台、电商购物等业务场景的青睐。随着各大搜索引擎公布优先收录https站点后,很多中小型网站也开始安装使用SSL证书。

[[401050]]

SSL证书最大的优势是保护数据传输安全,当客户端向服务器发出请求后,它们之间会开始一系列操作,使用非对称加密方式传递会话密钥,建立连接。

密钥对数据安全至关重要,不禁让我们产生了一个疑问,如果服务器的私钥被第三人窃取,是不是意味着历史数据、正在传输的数据,以及未来要传输的数据,都会被破解?

首先,我们要明白一个问题:通信双方SSL是如何写上出加密/解密密钥的?

有两种方法:

RSA Key Exchange

首先,客户端单向认证服务器的真实身份,信任服务器RSA证书的公钥。客户端使用伪随机函数,随机生成字符串(Pre-Master Key),该字符串用于加密和解密通信双方的传输内容,所以它是一种对称加密。

紧接着,客户端使用服务器的公钥,加密Pre-Master Key,并发送给服务器。服务器再使用与公钥对应的私钥解密,得到客户端发过来的Pre-Master Key。

最后双方使用Hash算法,计算出相同的Master Key,推导出加密/解密的密钥,以及HMAC算法密钥,后者用于数据校验。

完成以上步骤后,通信双方都知道了密钥,使用这一密钥进行通信即可。

很显然,服务器的私钥很关键,如果泄露,就会发生中间人攻击,它可以随意窃听。

DHE Key Exchange

DHE是Diffie-Hellman Ephemeral的缩写,一次性DH密钥交换算法。

首先基于SSL证书,客户端认证了服务器的真实身份,双方各自交换自己的公钥,注意该公钥是动态计算得来的,并不保存,双方还会交换各自的随机码。

拿到对方的公钥后,和自己的私钥计算出Pre-Master Key。再用随机码计算得到Master Key。接下来的过程与第一种方法一样。

不难看出来,服务器私钥的作用,仅仅只是保证公钥在传输过程中,不会被中间人篡改而已。

所以,即便服务器私钥被偷了,第三者也无法得到Pre-Master Key和加密/解密的密钥,自然无法解密被加密的数据。

那么,如果第三者要解密数据,该怎么办呢?只需拥有任何一方的私钥即可。

但是由于这个私钥是临时的、一次性的,通信双方在得到Pre-Master Key后,就会被删除,也不会在网络上传输,所以第三者根本无法得到私钥。

 

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2020-10-21 10:53:33

Google垄断法浏览器

2019-08-22 10:35:10

SSL协议安全

2018-03-19 16:05:51

前端程序员

2012-03-01 11:20:45

2023-07-03 08:01:38

AI模型AIGC

2013-09-30 10:34:22

移动互联网预装软件

2021-10-09 11:31:20

代码中文编程

2020-06-08 10:14:55

OpenSSLSSL证书Linux

2011-04-15 13:18:47

FlashHTML 5

2014-11-19 09:15:35

2021-03-15 10:01:20

CDNIP黑客

2021-04-23 09:49:59

加密RSA密码

2021-04-01 22:30:19

人工智能机器人机器学习

2023-12-18 08:52:15

RustOxlint工具

2013-06-14 11:16:14

2021-04-11 18:05:17

SSL证书数据安全数据泄露

2011-08-10 13:32:24

Web

2019-09-03 10:14:02

Linux技术DevOps

2013-08-15 10:58:47

云计算SaaS企业应用

2021-04-07 19:44:27

JavaStringHashMap
点赞
收藏

51CTO技术栈公众号