基于数字签名技术的挑战/响应式认证方式

挑战/响应式认证方式简便灵活,实现起来也比较容易。当网络需要验证用户身份时,客户端向服务器提出登录请求;当服务器接收到客户端的验证请求时,服务器端向客户端发送一个随机数,这就是这种认证方式的“冲击(挑战)”;当客户端接收到服务器的发送的随机数后,将此随机数传入令牌,令牌使用该随机数与内部存储的密钥进行加密运算,并将加密的结果传送给服务器,这就是这种认证方式中的“响应”;服务器在向客户端发送随机数的同时,也利用该随机数和存储在服务器端的密钥进行和客户端同样的运算。这样,当服务器端接收到客户端发送的加密结果后,就将客户端的加密结果与服务器端的加密运算结果进行比对,如果比对的结果相同,则认为该用户是合法用户。如果比对结果不同,则认为该用户为非法用户。

(1)客户端向服务器提出服务请求Request。

(2)服务器收到客户端服务请求后生成随机数R,并向客户端发送随机数R。

(3)客户端收到随机数R后,利用存储在令牌内的密钥C对随机数R进行Hash运算,并将Hash的结果H发送到服务器。

(4)服务器在将随机数R发送给客户端后,从后台的数据库中读取该用户对应的密钥C’,利用密钥C’对随机数R进行同样的Hash运算,得到Hash的结果H’。

(5)服务器收到用户端发送的Hash结果H后,将服务器进行Hash运算的结果H与H’进行对比。

(6)如果比较H与H’的结果不一致,则认为该用户是非法用户,重启认证流程。

(7)如果比较H与H’的结果一致,则认为该用户为合法用户,通过认证。

在挑战/响应的认证过程中,用户的密钥保存在用户持有的令牌内,服务器维护着一个用户的密钥数据库,服务器将用户对自己发送的随机数的加密结果和使用数据库中存储的该用户的密钥加密随机数的结果对比来完成认证。

该认证方式具有如下特点:

(1)能够抵御认证回放攻击。由于在挑战/响应的认证方式中,随机数是有服务器随机生成的,因此每次认证产生的随机数均不相同。如果攻击者获取了上次合法用户进行认证的数据并将该认证信息发送给服务器,但由于认证所需要的随机数已经改变,进行该次认证所需的信息也已经发生了改变,所以攻击者获取上次用户进行认证的数据并不能通过该次认证。因此,可以有效地抵御认证回放攻击。

(2)不能抵御中间人攻击。在挑战/响应地认证方式中,因为攻击者不具有用户持有地令牌,也不具有存储在令牌中地密钥,攻击者不能冒充合法用户对服务器发送的随机数进行加密。但由于挑战/响应认证的过程中,双方使用的随机数是明文形式,当攻击者能够使用自己控制的计算机充当认证双方通信的第三方时,就可以对双方通信的数据进行窃取和篡改。通过使用辅助手段,如通过使用加密技术使通信的双方通过加密的专用信道进行通信可以提高系统抵御中间人攻击的能力,但并不能提高认证本身抵御中间人攻击的能力。

(3)可以抵御密钥猜测攻击。用户令牌内的密钥是事先在令牌内产生的,在认证的过程中密钥并没有在网上传输,因此能够抵御在线的密钥猜测攻击。即使攻击者能够获取用户的信息,由于Hash函数的性质,使得每次加密之后的结果都大不相同,因此,攻击者很难从这些密文中破解出用户的密钥。但是为了提高抵御密钥猜测攻击的能力,建议每隔一定的时间就刷新一次令牌内的密钥。

(4)认证过程比较简单,安全性高,且容易实施。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/357564.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ArcGIS Pro如何新建字段

无论是地图制作还是数据分析,字段的操作是必不可少的,在某些时候现有的字段不能满足需求还需要新建字段,这里为大家讲解一下在ArcGIS Pro中怎么新建字段,希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的水…

响应式商业服务专利版权申请 公司网站模板源码系统 带完整的搭建教程

随着互联网的普及和发展,企业对于建立专业、高效的网站的需求日益增长。为了满足这一市场需求,罗峰给大家分享一款响应式商业服务专利版权申请公司网站模板源码系统。该系统不仅功能强大,而且易于搭建和定制,极大地降低了企业建立…

单片机学习笔记---定时器计数器(含寄存器)工作原理介绍(详解篇2)

目录 T1工作在方式2时 T0工作在方式3时 四种工作方式的总结 定时计数器对输入信号的要求 定时计数器对的编程的一个要求 关于初值计算的问题 4种工作方式的最大定时时间的大小 关于编程方式的问题 实例分析 实例1 实例2 T1工作在方式2时 51单片机,有两个…

python3.8 安装缺少ssl、_ctypes模块解决办法

问题 安装pyhton3.8安装默认不依赖ssl 运行Flask项目时报错&#xff1a; Traceback (most recent call last):File "/usr/local/python3/bin/flask", line 8, in <module>sys.exit(main())File "/usr/local/python3/lib/python3.8/site-packages/flask…

C语言递归篇章+系统讲解分析+深入理解递归+根源进行讲解+进制转换+操作环境+实例剖析+万字+百张图片精细化讲解

递归的讲解系统分析 什么是递归 本质上就是一种算法 最简单递归 栈溢出 没有限制条件 导致无穷尽的调用自己 从而溢出 最后变成死递归 _________________________________________________________________________________________________________________________________…

SAP MM 采购发票输入税额,模拟时候发现没有税科目记账税额!

原因&#xff1a;行项目税额和抬头不一样导致&#xff0c;以下是调整过的截图&#xff0c;原来底下是J2

去中心化世界的奇迹:深度解析Web3

随着科技的飞速发展&#xff0c;我们正逐渐进入一个新的数字时代&#xff0c;而Web3技术正是这个时代的奇迹之一。本文将深入解析Web3&#xff0c;揭示它在构建去中心化世界方面的深远影响以及给我们带来的可能性。 什么是Web3&#xff1f; Web3是互联网的第三个时代&#xff…

低代码数字孪生平台

老子云平台 老子云平台专注于3D资源服务与应用在Web页面上的极致展示&#xff08;渲染与交互&#xff09; 老子云平台架构 核心优势-AMRT标准格式 2022年6月&#xff0c;在国家科技部科技成果鉴定中心的成果评定中&#xff0c;AMRT标准被评为国际先进成果&#xff0c;AMRT格式…

TCP常用端口号

知识改变命运&#xff0c;技术就是要分享&#xff0c;有问题随时联系&#xff0c;免费答疑&#xff0c;欢迎联系&#xff01; 厦门微思网络​​​​​​https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom 思科认证\CCNA\CCNP\CCIE Linux\RHCE\…

Git安装,Git镜像,Git已安装但无法使用解决经验

git下载地址&#xff1a; Git - 下载 (git-scm.com) <-git官方资源 Git for Windows (github.com) <-github资源 CNPM Binaries Mirror (npmmirror.com) <-阿里镜像&#xff08;推荐&#xff0c;镜…

shell脚本——函数与数组

目录 一、函数 1、什么是函数&#xff1f; 2、函数的定义与调用 2.1 函数的格式 2.2 函数的调用方法 3 、查看与删除函数 3.1 查看函数 3.2 删除函数 4、函数的返回值 5、函数的传参数 6、函数的作用范围 7、函数的递归 二、数组 1、什么是数组&#xff1f; 2、数…

【数据结构】(一)从绪论到各种线性表

目录 一、绪论Introduction 1、数据结构 2、逻辑结构&#xff08;数据元素之间的相互关系&#xff09; 3、物理结构&#xff08;数据逻辑结构在计算机中的存储形式&#xff09; 4、数据类型&#xff08;一组性质相同的值的集合及定义在此集合上的一些操作的总称&#xff09…

mysql之基本查询

基本查询 一、SELECT 查询语句 一、SELECT 查询语句 查询所有列 1 SELECT *FORM emp;查询指定字段 SELECT empno,ename,job FROM emp;给字段取别名 SELECT empno 员工编号 FROM emp; SELECT empno 员工编号,ename 姓名,job 岗位 FROM emp; SELECT empno AS 员工编号,ename …

数据结构-数组(详细讲解)

文章目录 数组数组的概述数组的图示一维数组二维数组 数组的定义一维数组的定义二维数组的定义 数组的取值赋值一维数组二维数组 数组的操作一维数组的操作索引实现指针实现 二位数组的操作矩阵转三元组矩阵的乘法 数组 数组的概述 概述&#xff1a;数组是一种线性数据结构&a…

【机器学习300问】21、什么是激活函数?常见激活函数都有哪些?

在我写的上一篇文章中介绍了感知机&#xff08;单个神经元&#xff09;的构成&#xff0c;其中就谈到了神经元会计算传送过来的信号的总和&#xff0c;只有当这个总和超过了某个界限值时&#xff0c;才会输出值。这也称为“神经元被激活”。如果想对神经网络是什么有更多了解的…

网络防御保护——课程笔记

一.防火墙 防火墙的主要职责&#xff1a;控制和防护 --- 安全策略 --- 防火墙可以根据安全策略来抓取流量之后做出对应的动作。 防火墙的分类 防火墙的发展进程 防火墙的控制 带内管理 --- 通过网络环境对设备进行控制 --- telnet&#xff0c;ssh&#xff0c;web --- 登录设备…

【Go 快速入门】包及依赖管理 | Go 第三方包发布 | 接口 | 反射

文章目录 包和依赖管理依赖管理go modgo get go.mod 文件go.sum 文件Go Modules 发布包 接口空接口接口值类型断言 反射reflect.TypeOfreflect.ValueOf结构体反射 项目代码地址&#xff1a;04-PackageInterfaceReflection 包和依赖管理 Go 使用包来支持代码模块化和代码复用&…

【Django开发】前后端分离美多商城项目:项目准备和搭建(附代码,文档)

本系列文章md笔记&#xff08;已分享&#xff09;主要讨论django商城项目开发相关知识。本项目利用Django框架开发一套前后端不分离的商城项目&#xff08;4.0版本&#xff09;含代码和文档。功能包括前后端不分离&#xff0c;方便SEO。采用Django Jinja2模板引擎 Vue.js实现…

分表过多引起的问题/Apache ShardingSphere元数据加载慢

目录 环境 背景 探寻 元数据的加载策略 如何解决 升级版本到5.x 调大max.connections.size.per.query max.connections.size.per.query分析 服务启动阶段相关源码 服务运行阶段相关源码 受到的影响 注意事项&#xff08;重要&#xff09; 其他 环境 Spring Boot 2…

数据结构3、基于栈的后缀算术表达式求值

1 题目描述 图1 中缀表达式转化为后缀表达式题目描述 图2 基于栈的后缀算术表达式求值题目描述 2 题目解读 借助一个运算符栈&#xff0c;可将中缀表达式转化为后缀表达式&#xff1b;借助一个运算数栈&#xff0c;可对后缀表达式求值。借助一个运算符栈和一个运算数栈&#xf…