HTTPS的过程

 

 

 

主要有发起请求、验证身份、协商秘钥、加密会话 4大步骤

 

     1)客户端向服务端发起建立HTTPS请求。

     2)服务器向客户端发送数字证书。

     3)客户端验证数字证书,证书验证通过后客户端生成会话密钥(双向验证则此处客户端也会向服务器发送证书)。

     4)服务器生成会话密钥(双向验证此处服务端也会对客户端的证书验证)。

     5)客户端与服务端开始进行加密会话。

 

 

1. 客户端请求服务端(随机数R1,支持的加密算法和哈希算法)

2. 服务器返回给客户端(随机数R2,自己的证书,证书里包含公钥机构,选用哪个加密算法和哈希算法用于后续的会话密钥的生成)

3. 客户端校验证书(浏览器内置的TSL完成)

  a. 从内置的证书列表中找到这个机构,然后从证书里面取出公钥,网址,有效期等

  b. 验证证书的合法性和有效性,用公钥进行解密,查看有效期

  c. 生成随机数R3,使用R1,R2,R3及选用的算法,生成会话密钥

  d. 将R3返回给服务端

4. 服务端根据R1,R2,R3及选用的算法,生成会话密钥

5. 使用会话密钥进行加密通信

 

非对称加密算法(一对公钥私钥,公钥加密私钥解密,私钥加密公钥解密):RSA、DSA/DSS、Elgamal、Rabin、D-H、ECC等

对称加密算法:有AES、DES、3DES、TDEA、Blowfish、RC4、RC5、IDEA等。

HASH算法:有MD5,SHA1,SHA256。用于数据完整性校验

数字证书:包含证书发布机构,证书有效期,公钥,证书所有者,签名使用的算法,指纹以及指纹算法。数字证书可以保证里面的公钥一定是证书持有者的。

数字签名:将明文通过Hash算法加密生成摘要,再将消息体和摘要用私钥加密后就是签名了。

 

优点:   安全可靠

缺点: 慢,耗资源,要钱

      1、HTTPS 由于使用了 SSL(包括 TLS) 而变得安全可靠,但是 SSL 由于要进行加密处理会导致整个通信变慢,频繁的加密、解密会消耗服务端和客户端的硬件资源。

      2、SSL 不仅会导致通信慢,还会由于大量消耗 CPU 和内存等资源,导致整个处理速度变慢,和 HTTP 相比,网络负载可能可能会变慢 2 到 100 倍

      3、如果使用了 HTTPS,那就意味着要增加硬件成本,此外从数字认证机构购买证书也是需要开销的。

 

参考 https://www.cnblogs.com/hld123/p/15255526.html

posted @ 2024-03-21 15:53  坏男银  阅读(42)  评论(0编辑  收藏  举报