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

news2024/11/15 17:18:21

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

(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.coloradmin.cn/o/1421069.html

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

相关文章

代码随想录刷题笔记-Day15

1. 完全二叉树的的节点个数 222. 完全二叉树的节点个数https://leetcode.cn/problems/count-complete-tree-nodes/ 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没…

物联网操作系统-Alios Things

阅读引言: 本篇文章我想给大家分享一下Alios Things这款物联网操作系统的一些相关知识, 并且, 在文章的最后会给出我自己写的,非常详细的学习笔记, 学习笔记的思路清晰, 物联网操作系统的核心知识点都有涉…

vs 撤销本地 commit 并保留更改

没想到特别好的办法,我想的是用 vs 打开 git 命令行工具 然后通过 git 命令来撤销提交,尝试之前建议先建个分支实验,以免丢失代码, git 操作见 git 合并多个 commit / 修改上一次 commit

Redis -- 背景知识

目录 特性 为啥Redis快? 应用场景 Redis不能做什么? Redis是在内存中存储数据的一个中间件,用作为数据库,也可以用作为缓存,在分布式中有很高的威望。 特性 In-memory data structures:在内存中存储数据key-val…

MySQL原理(二)存储引擎(3)InnoDB

目录 一、概况: 1、介绍: 2、特点: 二、体系架构 1、后台线程 2、内存池(缓冲池) 三、物理结构 1、数据文件(表数据和索引数据) 1.1、作用: 1.2、共享表空间与独立表空间 …

vue异步跟随表单上传图片 单张or多张

下面是获取的后台照片展示 &#xff0c;我这里限制了图片数量 limit 为限制的图片数量多少 dialogVisibles 为控制是否有图片 contractPicUrl为展示的图片后台url 若有多张图片 需要使用for循环方法 <el-form-item label"合同照片" prop"contractPic" …

数字化时代,元宇宙展厅越来越受欢迎,知道原因吗?

在数字化时代&#xff0c;元宇宙展厅越来越受欢迎。元宇宙展厅可以针对公司的发展历程以及荣誉成就&#xff0c;打造设计一个虚拟的展示空间&#xff0c;让参观者在虚拟环境中参观和交互&#xff0c;并步进式漫游公司介绍、业务板块、经典案例以及荣誉资质等模块&#xff0c;让…

如何在Shopee印尼站点进行有效的选品策略?

在Shopee印尼站点进行选品是卖家们提高产品销售业绩的重要一环。然而&#xff0c;要在竞争激烈的市场中脱颖而出&#xff0c;卖家需要制定一套有效的选品策略。本文将介绍一些关键的策略&#xff0c;帮助卖家们在Shopee印尼站点上实现成功的选品。 先给大家推荐一款shopee知虾…

tritonserver学习之六:自定义c++、python custom backend实践

tritonserver学习之一&#xff1a;triton使用流程 tritonserver学习之二&#xff1a;tritonserver编译 tritonserver学习之三&#xff1a;tritonserver运行流程 tritonserver学习之四&#xff1a;命令行解析 tritonserver学习之五&#xff1a;backend实现机制 1、环境准备…

网络隔离场景下访问 Pod 网络

接着上文 VPC网络架构下的网络上数据采集 介绍 考虑一个监控系统&#xff0c;它的数据采集 Agent 是以 daemonset 形式运行在物理机上的&#xff0c;它需要采集 Pod 的各种监控信息。现在很流行的一个监控信息是通过 Prometheus 提供指标信息。 一般来说&#xff0c;daemonset …

NoMachine局域网桌面远程控制管理工具软件,下载配置教程

近期入手了一台雷神MIX Mini主机&#xff0c;用于开发使用&#xff0c;但是因为主机没有显示器和键盘等输入设备&#xff0c;如果需要对Mini主机进行控制&#xff0c;则要频繁插入显示器和键盘&#xff0c;操作起来相当的不方便。 在体验了一些常见的桌面控制软件&#xff0c;…

如何使用docker快速安装Plik并实现固定公网地址远程访问

文章目录 推荐1. Docker部署Plik2. 本地访问Plik3. Linux安装Cpolar4. 配置Plik公网地址5. 远程访问Plik6. 固定Plik公网地址7. 固定地址访问Plik 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点…

现代C++之万能引用、完美转发、引用折叠FrancisFrancis

转载&#xff1a;现代C之万能引用、完美转发、引用折叠 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/99524127 后期参考(还未整合)&#xff1a;C 完美转发深度解析:从入门到精通_c完美转发-CSDN博客https://blog.csdn.net/qq_21438461/article/details/129938466 0.导语 …

Docker部署Plik系统并结合内网穿透实现远程访问本地上传下载文件

文章目录 1. Docker部署Plik2. 本地访问Plik3. Linux安装Cpolar4. 配置Plik公网地址5. 远程访问Plik6. 固定Plik公网地址7. 固定地址访问Plik 本文介绍如何使用Linux docker方式快速安装Plik并且结合Cpolar内网穿透工具实现远程访问&#xff0c;实现随时随地在任意设备上传或者…

Likeshop社区团购源码系统-社区团购更加便捷

一、什么是社区团购&#xff1f; 社区团购是一种基于社区的一种团购模式&#xff0c;依托于社区居民的消费需求&#xff0c;由社区团长组织发起&#xff0c;通过集中采购、批量销售的方式&#xff0c;为社区居民提供优质、优惠的商品。这种模式既满足了消费者对于优惠、便捷的…

Google Chrome 常用的几个参数

1 右键--Google Chrome--属性--目标 参数作用--disable-infobars此计算机将不会再收到 Google Chrome 更新&#xff0c;因为 Windows XP 和 Windows Vista 不再受支持。适用于 xp、2003 的 49.x.x.x 版本。示例1--ingore-certificate-errors忽略证书错误--disable-background-…

【三】【C++】类与对象(二)

类的六个默认成员函数 在C中&#xff0c;有六个默认成员函数&#xff0c;它们是编译器在需要的情况下自动生成的成员函数&#xff0c;如果你不显式地定义它们&#xff0c;编译器会自动提供默认实现。这些默认成员函数包括&#xff1a; 默认构造函数 (Default Constructor)&…

springboot外出务工人员信息管理系统源码和论文

网络的广泛应用给生活带来了十分的便利。所以把疫情防控期间某村外出务工人员信息管理与现在网络相结合&#xff0c;利用java技术建设疫情防控期间某村外出务工人员信息管理系统&#xff0c;实现疫情防控期间某村外出务工人员信息的信息化。则对于进一步提高疫情防控期间某村外…

Aleo项目详细介绍-一个兼顾隐私和可编程性的隐私公链

Aleo上线在即&#xff0c;整理一篇项目的详细介绍&#xff0c;喜欢的收藏。有计划做aleo节点的可交流。 一、项目简介 Aleo 最初是在 2016 年构思的&#xff0c;旨在研究可编程零知识。公司由 Howard Wu、Michael Beller、Collin Chin 和 Raymond Chu 于 2019 年正式成立。 …

AST反混淆实战-jsjiamiv7最高配置

js加密混淆网站 https://www.jsjiami.com/一、混淆demo生成 01 打开目标网址 https://www.jsjiami.com/ 02 按照顺序加密混淆二、混淆前后demo 混淆前的源码 (function(w, d) { w.update "2023年01月17日05:34:29更新"; d.info "本站历时1年半研发的新版本V7…