天天看点

【HTTPS】交换密钥1.原始非对称加密传递2.专用密钥交换算法

目录

1.原始非对称加密传递

2.专用密钥交换算法

1.原始非对称加密传递

【HTTPS】交换密钥1.原始非对称加密传递2.专用密钥交换算法
  1. 客户端给服务端发送请求;
  2. 服务端返回客户端自己的公钥 PuK;
  3. 客户端产生本次对话的对称密钥 SK,并用 PuK 进行加密得到 SK_Enc 后传给服务端;
  4. 服务端收到 SK_Enc 后用自己的私钥 PrK 解密得到 SK;若成功,则返回客户端 OK,否则终止对话.
  5. 接下来,客户端和服务端的对话均用 SK 加密后传输。

2.专用密钥交换算法

方法 1 是被大部分人熟知的,但是存在一个问题:如果服务端的私钥 PrK 泄露了,那么 HTTPS 所做的加密也就不安全了。

因此,就有了密钥交换算法(有说法是 keyless 方法)。方法原理笔者没有深究(数学功底有限,看到大量的公式证明还是会烦…),DH 和 ECDH 协商密钥算法大致过程如下:

【HTTPS】交换密钥1.原始非对称加密传递2.专用密钥交换算法

ECDH 算法中的 A 和 B,在有的材料中也被称为PreMaster-Secret。最终协商得到的密钥 SK 也被称为Master Secret,也被称为Session Key。