HTTPS

记录HTTPS认证过程。

HTTPS是基于SSL/TLS来加密的HTTP安全协议。

如图所示,HTTPS协议可分为两部分:安全认证加密传输

安全认证

Client & Server 利用CA证书验证、RSA非对称加密实现传输密钥的安全传递。

1> Client发起认证申请,向Server请求CA证书RSA公钥

2> Server接收到认证申请,向Client端下发CA证书RSA公钥

3> Client验证CA证书的有效性(签名校验、有效期校验等);

4> Client生成AES密钥,向Server发送RSA公钥加密过的AES密钥

5> Server接受到加密过的AES密钥,利用RSA私钥解密得到AES密钥

加密传输

Client & Server 利用AES对称加密实现数据的加密与解密。

1> Client利用AES密钥加密Request请求;

2> Server利用AES密钥解密接受到的请求,再次利用AES密钥加密Response返回;

3> Client端利用AES密钥解密接受到的返回。

那为什么需要使用两种加密方式呢?

由于RSA适用于不适用于大文件的加密,会导致整个加密过程很缓慢,相反,AES会好很多。

How much faster is AES than RSA?