Http

前言

介绍 Https 与其和 Http 的区别

与 Http 的区别

  • Http 的 URL 以 http:// 开头,而 Https 的 URL 以 https:// 开头
  • Http 默认80端口,Https 默认443端口
  • Http 处在应用层,Https 处在传输层
  • Http 明文传输,Https 通过ssl加密和身份认证
  • Http无需认证证书,Https 需要认证证书

![img](https://img.youpin.mi-img.com/jianyu/44586988305322c3cc46247c0dfc17b9.jpeg?w=1592&h=856 style=”zoom:50%;” )

Https 定义

超文本传输安全协议,Http 的安全版:Http + SSL加密处理(一般是SSL安全通信线路)+ 认证 + 完整性保护

SSL 过程

SSL是一种公认的加密协议,在网络传输层上提供一种基于 非对称密钥和对称密钥 技术用于浏览器和服务器安全连接的技术

  1. 服务端把自己的公钥a发给证书颁发机构,向证书颁发机构申请证书
  2. 证书颁发机构有一对公钥私钥,机构用私钥加密a,并且通过服务端网址等信息生成一个证书签名,证书签名也用私钥加密,证书制作完成,机构把证书发给服务端
  3. 客户端向服务端请求通信时,服务端把证书发给客户端
  4. 因为各大浏览器和操作系统已经维护了所有权威证书机构的名称和公钥,客户端知道证书的颁发机构,就可以从本地拿出对应的公钥进行解密
  5. 客户端按照同样的签名规则,自己也生成一个证书签名,如果两个签名一致,则证书有效
  6. 然后客户端用公钥解密a
  7. 客户端生成自己的对称加密密钥b,用a加密b,发给服务端
  8. 服务端用自己的私钥解开加密,得到b,然后,客户端和服务端就可以用b进行对称加密的通信
img

对称加密与非对称加密

对称加密(公开密钥加密)

  • 加密和解密都会用到同一个密钥,如果密钥被攻击者获得,此时加密就失去了意义。

  • 常见的对称加密算法有DES3DESAESBlowfishIDEARC5RC6

非对称加密(共享密钥加密)