目录
- 第一组,非对称加密
- 第二组,非对称加密
- 第三组,对称加密
- 证书签名
HTTPS使用的是非对称加密加对称加密的方案
(非对称加密:公钥加/解密,私钥解/加密)
(对称加密:一组对称密钥进行加/解密)
三组密钥:
第一组,非对称加密
- 非对称密钥:CA的私钥 — 客户端持有的其信任的CA机构的公钥
- 作用:验证证书是否可信,即证书中携带的来自服务端的公钥是否可信
- 证书中包含了明文信息和经CA用其私钥加密后的签名,客户端验证时,会用其已持有的公钥(如浏览器会持有其信任的CA机构的公钥)对签名解密形成摘要,同时使用公开的hash算法将明文信息散列成摘要,两部分对比无误即证明证书有效,证书中含有的公钥可信任。
第二组,非对称加密
- 非对称密钥:服务端的公钥(经证书传输给了客户端)— 服务端的私钥
- 作用:对客户端的对称密钥加密传给服务端
- 在验证证书中携带的公钥有效的前提下,客户端使用从证书中获得的公钥对自己生成的对称密钥进行加密发送给服务端,服务端获得该对称密钥,使用其持有的对应的私钥对收到的信息解密,得到客户端的对称密钥。
第三组,对称加密
- 对称密钥:客户端的对称密钥
- 作用:用于通信
- 经过前两步,此时客户端与服务端都拥有了对称密钥,后续传输数据即可使用该对称密钥进行加密传输。
证书签名
证书签名过程为什么要先形成摘要再加密:缩小密文长度,加快加解密速度,同时有些加密算法对密文长度有要求,经过hash散列可形成定长摘要。