计网复习 https的加密过程
参考:HTTP和HTTPS的简单认识和区别以及HTTPS的加密过程
HTTTP是超文本传输协议(应用层),Https是在http上增加了一个安全层(SSL/TLS)。
对称加密:1.客户端向服务端发送请求连接, 服务端的确认请求连接中带上一个随机生成的秘钥
2.客户端接收到密钥后,发送信息时需要将明文通过密钥加密后再发送给服务端
3. 服务端接收到加密后的信息后通过密钥进行解密,就可以得到信息了
缺陷:约定加密方式是明文,容易被拦截
非对称加密:1客户端向服务断发送连接请求,服务端返回一个公钥
2.客户端通过公钥给自己生成的私钥a进行加密,服务端用私钥解密,获得私钥a
3.双方通过私钥a通信
缺陷:第一次过程中的公钥还是可能被截获、替换,导致后续密文不安全
CA证书:
-
服务端发送公钥给证书颁发机构申请证书
-
证书颁发机构通过自己的私钥对服务端公钥进行加密,并且通过服务端网址等信息生成一个证书签名,证书签名同样经过机构的私钥加密。证书制作完成后,机构把证书发送给了服务端
-
当客户端向服务端请求通信时,服务端不再直接返回自己的公钥,而是把自己申请的证书返回客户端
-
客户端收到证书后,首先验证证书的真伪,之后取出服务端的公钥
-
客户端按照同样的签名规则,自己也生成一个证书签名,如果两个签名一致,说明证书是有效的。
-
验证成功后,再次利用机构公钥,解密出服务端的公钥
-
需要说明的是:各大浏览器和操作系统已经维护了所有权威证书机构的名称和公钥。因此在客户端本地就可以创建签名和解密。
-
客户端拿到服务端的公钥后,再对自己的密钥进行加密后发送给服务端。
-
最后服务端拿到加密后的公钥后,使用自己的私钥进行解密得到客户端的密钥
-
接下来就可以使用密钥加密通信了