HTTPS 原理 对称加密 非对称加密 CA证书

HTTPS 原理 对称加密 非对称加密 CA证书

先介绍对称加密

通信的双方,使用同一个secretKey,可以对密文进行解密,得到明文。

问题:在开放的internet如何交换secretKey,这本身就是个问题。这个交换的过程也是需要加密的。这就套娃了无解了。

再介绍非对称加密

通信双方各自有一个公钥,还有私钥;私钥只有自己知道,公钥全世界都知道;非对称加密算法,保证了用公钥加密的信息,可以用 对应的 私钥解密。

比如:Curry和Klay 需要进行通信。

Curry有私钥privateKeyCurry 和公钥publicKeyCurry
Klay有私钥privateKeyKlay 和 公钥publicKeyKlay

只有Curry知道自己的私钥privateKeyCurry
只有Klay知道自己的私钥privateKeyKlay

但是全世界都知道他们的公钥。

这个视频 打了个比方,就像一个信箱,全世界都可以知道Curry和Klay的信箱地址(公钥),但是只有他们自己可以用信箱钥匙(私钥)打开信箱获取信息(解密)

HTTPS就是结合了对称加密和非对称加密

Curry 和 Klay 通信

需要先约定一个解密的秘钥。(之前说只用对称加密无法解决这个约定问题)

于是我们用非对称加密来解决这个约定问题。

Curry 对 Klay 说: 让我们约定对称加密的秘钥是 symmetricKey吧。于是Curry 找到Klay的公钥(全世界都知道),然后用他的公钥publicKeyKlay对symmetricKey 进行加密,发给Klay;

Klay收到加密的密文,用自己的私钥privateKeyKlay解密,得到了Curry提供的symmetricKey。

约定好了symmetricKey,从此以后他俩就可以愉快地使用对称加密,都用symmetricKey加密、解密要传输的信息了。

还有啥问题?

  • 通信的中间过程有可能信息被篡改
  • 攻击者Durant可以伪装成Klay跟你进行通信

如何解决这些问题?

这时候就需要CA证书了。

CA证书由第三方权威机构颁发,每个公司需要去申请这个证书。

当Klay开了一家叫Klay的公司,他就去花大价钱申请了一个CAKlay证书。CA这个权威机构会对Klay公司的证书明文做一些hash得到摘要,再进行加密(用CA权威机构的私钥),得到一个签名。

通信过程中,Curry先找Klay公司要证书,Klay公司返回证书明文以及证书签名,Curry拿到证书明文,使用相同的hash得到摘要abstractFromKlay;然后Curry客户端内用CA机构的公钥对签名进行解密,得到证书摘要(abstractFromCA),比较abstractFromCA和abstractFromKlay,如果一致则说明证书有效

流程图

这个流程图很不错
HTTPS 原理 对称加密 非对称加密 CA证书_第1张图片

参考

相关数学原理:可汗学院
掘金网文章
极客时间文章1
极客时间文章2

中间人攻击?

你可能感兴趣的:(计算机网络,https,CA证书,对称加密,非对称加密)