https原理|青训营笔记

147 阅读3分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第2篇笔记。

https包含以下概念:

  • 对称加密
  • 非对称加密
  • CA认证机构

对称加密

就是存在一个密钥,可以对文件加密,同时也可以对文件解密。

如果https只采用对称加密,并且只有客户端和服务端知道该密钥,那么确实可以保证传输的安全性了,但是前提是得让对方获得该密钥,当服务端生成密钥传给客户端的时候被别人劫取了,那就嗝屁了。

非对称加密

就是存在一个私钥一个公钥,有两种加密解密方式:

  • 公钥加密,私钥解密
  • 私钥加密,公钥解密 就是同一把钥匙没法对自己加密的文件进行解密。

如果https只采用非对称加密,服务器将公钥传给客户端,客户端每次传输都用公钥对内容进行加密,服务端用私钥进行解密,私钥一直没有暴露,确实可以保证传输的安全性,但是当服务器传用私钥加密的数据时,却是不安全的(服务器一开始将公钥传出去的,存在被窃取的风险)。

非对称加密和对称加密结合

1.服务器存在公钥A和私钥A-;
2.服务器将公钥明文传给客户端;
3.客户端生产用于对称加密的密钥X,并用公钥A对X进行加密,传给服务器;
4.服务器解密后,获得密钥X。
这种方式貌似确实可以保证密钥X不被窃取,从而保证传输的安全性,但其实还是存在风险。

风险:

黑客窃取了服务器的公钥A,替换成自己的公钥B,并传给用户,用户收到后也无法判断公钥的真实性,会直接将密钥X加密后传给服务器,这时候又被黑客劫去,黑客便神不知鬼不觉的拿到了密钥X,黑客再将密钥X用公钥A加密传给服务器。

CA认证机构

从上面的风险中,可以看出只要用户能判断公钥的真实性,就可以保证安全了。

CA认证机构便横空出世,服务器像CA申请数字证书(包含持有者信息,公钥信息),为了防止数字证书被篡改,CA会对数字证书进行生成数字签名

签名过程:
数字证书->hash->散列值
散列值->CA私钥V->数字签名 这样服务器只需要将数字证书和数字签名一起传给客户端就可以啦。

黑客再次进行窃取时,只能修改数字证书中的公钥,而数字签名他却无法改成对应的签名(黑客不知道CA的私钥),客户端收到证书和签名后一对比便知道数据被篡改了。

验证过程:
数字证书->hash->散列值
数字签名->CA私钥V_->散列值 对比两散列值是否相同。