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

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

(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)认证过程比较简单,安全性高,且容易实施。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV 8 - 模糊处理(均值滤波,高斯滤波,中值滤波,双边滤波)

模糊处理原理: Blur是图像处理中最简单和常用的操作之一,使用该操作的原因为了给图像预处理时候减低噪声使用,Blur操作其背后是数学的卷积计算, 通常这些卷积算子计算都是线性操作,所以又出线性虑波。 假设有6x6的图像像素点矩阵。卷积过程:6x6上面是个3x3的窗口,从左向右,…

秒级响应,显著增效:明日控股携手奇点云,打造大宗贸易的数据中台标杆

业务流程复杂、场景个性化、交易金额大、高度依赖人工的大宗贸易行业也能做到业务实时分析,甚至还能自动化? 这样的图景在三年前,只是不太现实的假想。 明日控股集团(浙江明日控股集团股份有限公司)IT团队曾坦言&…

使用WAF防御网络上的隐蔽威胁之反序列化攻击

​ 什么是反序列化 反序列化是将数据结构或对象状态从某种格式转换回对象的过程。这种格式通常是二进制流或者字符串(如JSON、XML),它是对象序列化(即对象转换为可存储或可传输格式)的逆过程。 反序列化的安全风险 反…

多线程(Day22)

死锁 概述 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或由于彼此通信而造成的一种阻塞现象。若无外力作用,他们将无法进行下去,此时称系统处于死锁状态,这些永远在互相等待的进程称为死锁进程。 原理 1 某个线程执行…

Docker(第三部分)

1,Docker复杂安装说明 今天的优势会被明天趋势所取代 一切在云端 安装mysql主从复制 主从复制原理,默认你懂 主从搭建步骤 1,新建主从服务器容器实例3307 docker run -p 3307:3306 --name mysql-master\ -v /mydata/mysql-master/log:…

一二三应用开发平台文件处理设计与实现系列之7——minio多节点共享磁盘模式验证

背景 在不了解minio架构设计之前,我根据既往经验推测minio是将文件读写封装实现了一个应用系统,如要实现高可用,则需要部署两个minio节点,共享同一块磁盘。两个minio节组成一个集群,使用nginx实现负载均衡&#xff0c…

【C深度解剖】const关键字

简介:本系列博客为C深度解剖系列内容,以某个点为中心进行相关详细拓展 适宜人群:已大体了解C语法同学 作者留言:本博客相关内容如需转载请注明出处,本人学疏才浅,难免存在些许错误,望留言指正 作…

菜单栏应用管理 -- Bartender 4

Bartender 4是一款旨在优化和简化Mac菜单栏管理的强大工具。它具有以下特色功能: 组织和管理菜单栏图标:Bartender 4允许用户轻松组织和管理菜单栏中的图标,可以隐藏不常用的图标,保持菜单栏的整洁和简洁。同时,用户还…

雾锁王国多人联机专用服务器推荐!最高支持16人联机

Steam平台24日新上线一款奇幻生存冒险建造动作RPG游戏《ENSHROUDED雾锁王国》,玩家将置身于一个广阔的可编辑改造的体素世界中,在被灾祸笼罩的先祖之地上展开生存之旅。在《雾锁王国》中,玩家可以独自冒险,也可以与最多16名玩家联…

Ajax入门与使用

目录 ◆ AJAX 概念和 axios 使用 什么是 AJAX? 怎么发送 AJAX 请求? 如何使用axios axios 函数的基本结构 axios 函数的使用场景 1 没有参数的情况 2 使用params参数传参的情况 3 使用data参数来处理请求体的数据 4 上传图片等二进制的情况…

漫画图解 Go 并发编程之:Channel

当谈到并发时,许多编程语言都采用共享内存/状态模型。然而,Go 通过实现 Communicating Sequential Processes(CSP)而与众不同。在 CSP 中,程序由不共享状态的并行处理器组成;相反,他们使用 Chan…

基于Redis实现短信登录

首先我们要思考一下利用redis来存储数据,那么到底使用哪种结构呢?由于存入的数据比较简单,我们可以考虑使用String,或者是使用哈希,如下图,如果使用String,同学们注意他的value,用多…

第4章 数据表示与特征工程

目录 1. 分类变量1.1 One-Hot编码(虚拟变量)检查字符串编码的分类数据 1.2 数字可以编码分类变量 2. 分箱、离散化、线性模型与树3. 交互特征与多相似特征4. 单变量非线性变换总结(2~4)5. 自动化特征选择5.1 单变量统计5.2 基于模…

C语言菜鸟入门·判断语句(if语句、if...else语句、嵌套if语句)详细介绍

目录 1. if语句 2. if...else语句 3. if...else if...else 语句 4. 嵌套if语句 C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。 语句描述if语句一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。if...else语句一个 if 语句 后可跟…

Unity3d实现简单的战斗

使用u3d实现一个简单的战斗demo,记下学到的知识点,以备后查。 1.判断是否点中指定物体 if (Input.GetMouseButton(0)) {Ray ray Camera.main.ScreenPointToRay(Input.mousePosition);if (Physics.Raycast(ray, out RaycastHit hit)){//坐标转换Vector…

Flink问题解决及性能调优-【Flink rocksDB读写state大对象导致背压问题调优】

RocksDB是Flink中用于持久化状态的默认后端,它提供了高性能和可靠的状态存储。然而,当处理大型状态并频繁读写时,可能会导致背压问题,因为RocksDB需要从磁盘读取和写入数据,而这可能成为瓶颈。 遇到的问题 Flink开发…

世微AP5125 LED外置MOS降压恒流驱动IC 12-36V 9V 1A驱动方案

本品特点:宽输入电压范围:9V~100V ◆ 固定工作频率:140KHZ◆ 可设定电流范围:10mA~6000mA ◆ 内置抖频电路,降低对其他设备的 EMI 干扰◆ 平均电流模式采样,恒流精度更高◆ CS 电压…

136832-63-8,活细胞示踪剂CMFDA(绿色),5-氯甲基荧光素二醋酸酯,广泛应用于细胞追踪和标记实验中

136832-63-8,活细胞示踪剂CMFDA(绿色),5-氯甲基荧光素二醋酸酯,CellTracker Green CMFDA,可以用于基因表达分析等实验中,广泛应用于细胞追踪和标记实验中 您好,欢迎来到新研之家 文章关键词:1…

c语言学习笔记之字符串库函数和逗号表达式

逗号表达式 #include <stdio.h>int main(){int a 10;int b 5;int c 6;int d (a 23,b a-4,c b2);printf("%d",d); }打印结果为: 逗号表达式,从左往右依次进行,将最后一个表达式的值赋值给变量. c语言字符串相关库函数 求字符串长度strlen长度不受限制的…

Qt开源版 vs 商业版 详细比较!!!!

简单整理Qt开源版与商业版有哪些差别&#xff0c;仅供参考。 简单对比 开源版商业版许可证大部分采用对商业使用不友好的LGPLv3具备商业许可证保护代码专有许可证相关大部分模块使用LGPLv3和部分模块使用GPL组成仅第三方开源组件使用Qt的其他许可证Qt模块功能支持支持技术支持…