摘要认证和签名认证

常见的安全算法-整理 文章中介绍了各种安全算法,这一节整理下算法的使用场景。

  • 为什么需要认证[应对场景]
  • 摘要认证原理
  • 摘要认证实现
  • 签名认证原理
  • 签名认证实现

为什么需要认证-场景

经由Http协议进行通讯的数据大都是未经加密的明文,包括参数、返回值、cookie、head数据,外界通过对通信的监听,可以轻而易举的根据请求和响应的格式,伪造请求和响应。

http协议的攻击门槛低,通过插件可以清楚的看到http请求生成的参数及响应的body,甚至有时候都能看到用户请求的用户名和密码。

鉴于第三方可以模拟请求和响应,就相当于数据被中途拦截和修改,那么服务端就需要对传输的数据进行校验,来确保内容未经篡改。

摘要认证原理

摘要认证的目的是确保数据在网络传输过程中不被篡改。原理就是在传输的内容后面追加一个偏移量(secret),然后利用数字摘要算法,生成数字摘要,连同传输内容,一起传输到服务端。

服务端接收到数据后,对内容+secret也做摘要运算,将得到的摘要与接收的摘要进行对比,相同则表示内容未经修改。

整个过程中secret比较重要,一旦泄漏则无法保障安全。

摘要认证实现

摘要认证分为4个环节,3、4基本与1、2相同,不做介绍。

  • 1、客户端摘要生成;
  • 2、服务端摘要验证;
  • 3、服务端响应摘要生成;
  • 4、客户端响应摘要验证。

1、请求参数摘要生成过程
在这里插入图片描述

2、服务端摘要验证过程
在这里插入图片描述

签名认证原理

摘要认证能够在一定程度上防止通信内容的篡改,但算法的安全性取决于secret的安全性。因此最好能够不依赖单一的secret,就引出了签名认证,即客户端将内容的摘要信息进行分对称加密,形成签名;服务端利用公钥对签名进行解密,得到客户端摘要信息,然后生成服务端摘要信息,两者比较看是否被篡改。

签名认证实现

签名认证也分为4个环节,3、4基本与1、2相同,不做介绍。

  • 1、客户端签名生成;
  • 2、服务端签名验证;
  • 3、服务端响应签名生成;
  • 4、客户端响应签名验证。

1、客户端签名生成
在这里插入图片描述

2、服务端签名验证

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/loongshawn/article/details/88207673