4、应用层https27

https协议加密流程:使用ssl加密。

一、HTTPS协议

对HTTP协议进行加密后的一个新的协议。

1、加密概念

单说数据加密过去狭义,更多的是防止数据被监听劫持。

加密包含俩个方面:身份验证,加密传输。

1.1身份验证

验证对端的身份是否是受信任的。

eg:黑客劫持客户端的请求,然后伪装服务器向客户端发送响应。

解决方案:CA认证——使用第三方权威机构进行身份验证

通信双方需要被验证的一方或俩方,先到权威机构颁发一个CA证书,建立连接后,双方或需要被验证身份的一方将自己的CA证书发送给对端,对端对证书进行解析,先判断证书颁发机构是否是自己信任的权威机构,然后到权威机构对对方的身份进行验证。

1.2加密传输

让外界无法直接获取到通信内容。

1.2.1 对称加密

加密和解密使用相同的密钥,加解密效率高,但是密钥的协商过程容易被监听劫持,不安全

1.2.2非对称加密

加密和解密使用的秘钥不同,秘钥分为公钥和私钥。

公钥是通信前交给对方的秘钥,对方使用公钥进行数据加密,自己收到公钥加密的数据之后,使用私钥进行解密(公钥无法解密数据)。

优点是安全度更高,缺点是加解密效率低下。

1.2.3 混合加密

过程:

  1. 建立连接后,先使用非对称加密,将自己的公钥发送给对方
  2. 双方使用对方的公钥,对“对称秘钥”协商过程进行加密
  3. 对称秘钥协商完毕后,往后通信使用对称加密

2、ssl加密流程

假设服务器需要被验证身份。

  1. 服务器首先自己生成一对秘钥(公钥和私钥),拿着公钥去权威机构颁发CA证书,CA证书包含了:权威机构信息,机构信息,公钥信息......
  2. 连接建立成功后,服务器将自己的CA证书发给客户端
  3. 客户端对证书进行解析
  4. 判断权威机构是否是自己信任机构
  5. 如果是则去权威机构进行身份验证
  6. 客户端拿着证书中的公钥,将一个随机数+自己支持的对称算法列表发送给服务器
  7. 服务器收到之后,使用私钥进行解密,给客户端也回复一个随机数+自己支持的对称算法列表
  8. 双方使用俩个随机数以及双方支持的算法列表,计算得到一个对称秘钥

http协议使用的端口是80端口

https协议使用的端口是443端口

猜你喜欢

转载自blog.csdn.net/weixin_56316833/article/details/131752288