一起搭建知识体系吧-网络篇【来说说https】

220 阅读2分钟

如果需要可以直接翻到最后查看最终版本

  • 安全层 ssl/tls 加密。对发送内容进行加密,对接收内容进行解密
  • 概念解析:对称加密和非对称加密
    • 对称加密:加密解密使用相同的密钥
    • 非对称加密:a加密只能用b解密 及公钥 私钥

第一版 对称加密

  • 使用对称加密。两边都有随机数和加密方法,生成一个密钥相互通信
  • 缺点:密钥和随机数都是明文传递,黑客可以截取合成密钥。那可以不明文传递吗?就出现了第二版
sequenceDiagram
客户端->>服务端: 加密套件,随机数
服务端-->>客户端: 选择一个加密方法,随机数
客户端-)服务端: 浏览器确认
服务端-)客户端: 服务端确认

第二版 非对称加密

  • 使用非对称加密 私钥一直在服务端 公钥给客户端加密数据。数据传输过程中 数据都是用公钥加密的。保证传输安全
  • 缺点:非对称加密效率低(所有数据都公钥加密了)。因为公钥是明文传递不能保证服务端安全
sequenceDiagram
客户端->>服务端: 加密套件
服务端-->>客户端: 选择一个加密方法,**公钥**
客户端-)服务端: 浏览器确认
服务端-)客户端: 服务端确认

第三版 非对称与对称结合

  • 使用非对称加密 传递密钥,使用对称加密 传输数据。浏览器服务端通过三个随机数生存最终秘钥,传输过程中对称加密使用
  • 缺点:虽然传输过程中安全了,但是黑客可以通过dns劫持ip,在黑客服务器上实现公钥私钥
sequenceDiagram
客户端->>服务端: 对称加密套件,非对称加密套件,客户端随机数
服务端-->>客户端: 选择对称加密方法和非对称加密方法,公钥,服务端随机数
客户端->>服务端: 生成随机数3,通过公钥加密给服务端(保证传输不会被截取)
服务端-)客户端: 服务端确认
客户端-)服务端: 浏览器传输
服务端-)客户端: 服务端传输

第四版 使用数字证书认证

  • 数字证书:ca权威机构颁发 && 包含公钥
  • 客户端多了一步证书验证。服务端把公钥传递改为数字证书传递
sequenceDiagram
客户端->>服务端: 对称加密套件,非对称加密套件,客户端随机数
服务端-->>客户端: 选择对称加密方法和非对称加密方法,数字证书,服务端随机数
客户端->>服务端: 生成随机数3,通过公钥加密给服务端(保证传输不会被截取)
服务端-)客户端: 服务端确认
客户端-)服务端: 浏览器传输
服务端-)客户端: 服务端传输

  • 客户端如何验证数字证书
    • 根据证书内容 验证ca 内容是否一致,并查找ca的顶级证书
  • 免费证书申请地址

参考链接