https 原理

基本原理原理

对称加密

加密和解密用的同一套算法,比如

原文 “abc”, 加密 “所有字母序号+1”

密文 “bcd”, 解密 “所有字母序号-1”

非对称个加密

基于大数的分解困难,加密解密用不同的文件
原文 “abc…”, 加密 “私钥”

密文 “…bcd”, 解密 “公钥”

加密传输

A 保有私钥,将公钥发给 B

A:原文加密成密文, 取原文的hash
发出的消息为密文 + hash

B:将密文解密成原文1, 取原文1hash1
如果hash===hash1,则原文是从 A 发出的,并且原文 === 原文1没有被更改过

证书

在于如何将公钥发给 B?

或者说如何证明给 B 发消息的是 A?

和加密传输类似,需要向一些可信任的机构申请证书

CE 的私钥, A 取得 CE 的公钥, 浏览器也有 CE 的公钥

A: A的信息中包含自己的信息,比如域名,将其发送给CE
CE: CEA的信息用私钥加密,并将A的信息hash,加在一起就成了 A 的证书

浏览器(用户 B): 与 A 通信系时先取得A的证书,用 CE 的公钥解密验证 hash,即可取得A的信息

这个信息是经过CE认证的,浏览器预先信任了CE,所以也就信任了A的信息

也就证明了这个证书确实是A的, 浏览器确实在与 A 通信