身份认证防止重放攻击的challenge-response方法
或者叫询问-应答机制。
基于挑战/应答(Challenge/Response)方式的身份认证系统就是每次认证时认证服务器端都给客户端发送一个不同的"挑战"字串,客户端程序收到这个"挑战"字串后,做出相应的"应答",以此机制而研制的系统.认证过程为:
1) 客户端向服务器发出认证请求;
2) 认证服务器从用户数据库中查询用户是否是合法的用户,若不是,则不做进一步的处理;
3) 认证服务器内部产生一个随机数,作为Challenge,发送给用户;
4) 客户将口令和随机数合并,使用单向Hash函数 ( 例如MD5算法 ) 生成一个字节串作为Response;
5) 认证服务器将Response与自己的计算结果比较,如两者相同,则通过一次认证,反之认证失败;
6) 认证服务器通知客户端认证成功或失败。
以后的认证由客户不定时发起,过程中没有了客户认证请求一步。两次认证的时间间隔不能太短,否则就给网络、客户和认证服务器带来太大的开销;但也不能太长,否则不能保证用户不被他人盗用IP地址,一般定为1-2分钟。
以后的认证由客户不定时发起,过程中没有了客户认证请求一步。两次认证的时间间隔不能太短,否则就给网络、客户和认证服务器带来太大的开销;但也不能太长,否则不能保证用户不被他人盗用IP地址,一般定为1-2分钟。
密钥的分配和管理:
密钥的分配由维护模块负责,当用户进行注册时,自行设定自己的口令。用户的密钥由口令生成。
一个口令必须经过两次口令检查。第一次由注册程序检查,强制口令必须有足够的长度。口令被加密后送入数据库,这个口令标记为“未检查的”。第二次,由离线的口令检查工具进行检查,将弱口令进行标记,当下次用户认证时,认证服务器将强制用户修改口令。
密钥的在线修改由认证服务器完成,其过程与认证过程基本类似。
Challenge/Response认证的安全性分析:
下面就常见的对认证服务器攻击方法来分析其安全性。
1) 网络侦听 ( sniffer )
认证过程中,密钥和口令不是明文不在网络上传输,所以sniffer很难从听到的报文中得到用户的口令。在密钥在线修改过程中,新口令使用旧密钥加密传送,sniffer攻击仍然无效。
2) replay attack
每次challenge不同,所以replay attack无效。
3) password guessing
在知道了认证算法后,侦听者可以对用户的口令进行猜测。这种攻击方法直接有效,特别是当用户的口令有缺陷时。解决方法是使用合适的口令。
4) 跟踪地址攻击
攻击者在看到用户认证后,设法将自己的机器地址改为用户的IP地址,从而冒充用户。但由于攻击者无法完成后续的认证,在1-2分钟内,攻击失效。
身份认证防止重放攻击的challenge-response方法的更多相关文章
- 转:细说ASP.NET Windows身份认证
转自:https://www.cnblogs.com/fish-li/archive/2012/05/07/2486840.html 细说ASP.NET Windows身份认证 阅读目录 开始 认识A ...
- 细说ASP.NET Windows身份认证
上篇博客我谈到了一些关于ASP.NET Forms身份认证方面的话题,这次的博客将主要介绍ASP.NET Windows身份认证. Forms身份认证虽然使用广泛,不过,如果是在 Windows Ac ...
- 类型:.net;问题:asp.net window验证;结果:细说ASP.NET Windows身份认证
细说ASP.NET Windows身份认证 阅读目录 开始 认识ASP.NET Windows身份认证 访问 Active Directory 在ASP.NET中访问Active Directory ...
- ASP.NET Web API 2系列(四):基于JWT的token身份认证方案
1.引言 通过前边的系列教程,我们可以掌握WebAPI的初步运用,但是此时的API接口任何人都可以访问,这显然不是我们想要的,这时就需要控制对它的访问,也就是WebAPI的权限验证.验证方式非常多,本 ...
- 关于Membership和身份认证的记录
在今天写好的code中测试环节,当我用webconfig中的测试数据库就是ok的,但是更替为正式的就不行了: 报错的类是MemberShip,那就关系到身份认证的环节了 找了几个链接,记录下 1.身份 ...
- HMAC在“挑战/响应”(Challenge/Response)身份认证的应用
HMAC的一个典型应用是用在"挑战/响应"(Challenge/Response)身份认证中. 认证流程 (1) 先由客户端向服务器发出一个验证请求. (2) 服务器接到此请求后生 ...
- PHP中对用户身份认证实现两种方法
用户在设计和维护站点的时候,经常需要限制对某些重要文件或信息的访问.通常,我们可以采用内置于WEB服务器的基于HTTP协议的用户身份验证机制. 当访问者浏览受保护页面时,客户端浏览器会弹出对话 ...
- [认证授权] 4.OIDC(OpenId Connect)身份认证授权(核心部分)
0 目录 认证授权系列:http://www.cnblogs.com/linianhui/category/929878.html 1 什么是OIDC? 看一下官方的介绍(http://openid. ...
- [认证授权] 4.OIDC(OpenId Connect)身份认证(核心部分)
1 什么是OIDC? 看一下官方的介绍(http://openid.net/connect/): OpenID Connect 1.0 is a simple identity layer on to ...
随机推荐
- 清北学堂模拟赛d7t3 天上掉馅饼
题目描述小 G 进入了一个神奇的世界,在这个世界,天上会掉下一些馅饼.今天,天上会随机掉下 k 个馅饼.每次天上掉下馅饼,小 G 可以选择吃或者不吃(必须在下一个馅饼掉下来之前作出选择,并且现在决定不 ...
- python浅拷贝与深拷贝
今天写程序,人为制造了一个由浅拷贝引起的bug,有必要归纳一下.先附上源代码: class PerformanceTest(object): def __init__(self): ....... s ...
- 洛谷——P1031 均分纸牌
https://www.luogu.org/problem/show?pid=1031#sub 题目描述 有 N 堆纸牌,编号分别为 1,2,…, N.每堆上有若干张,但纸牌总数必为 N 的倍数.可以 ...
- N天学习一个linux命令之yum
yum命令 用途 yum(Yellowdog Updater Modified),RedHat系Linux操作系统包管理器,基于rpm,从源远程仓库下载rpm包安装,同时解决依赖关系,使用Python ...
- Clojure:两步发送iOS推送通知(apns)
首先在project.clj中,添加对notnoop 类库的引用:[com.notnoop.apns/apns "0.2.3"] 然后使用如下方法就可以发送推送消息了: (ns d ...
- [Cypress] Test XHR Failure Conditions with Cypress
Testing your application’s behavior when an XHR call results in an error can be difficult. The use o ...
- ICMP报文类型
类型代码 类型描写叙述 0 响应应答(ECHO-REPLY) 3 不可到达 4 源抑制 5 重定向 8 响应请求(ECHO-REQUEST) 11 超时 12 參数失灵 13 时间戳请求 14 时间 ...
- 线段树 hdu3255 Farming
做了这么多扫描线的题,,基本都是一个思路. 改来改去,,无非就是维护的节点的内容以及push_up越写越复杂了而已 首先将价格排序处理一下编号,变成编号越大的powerfol越大 然后后面加入扫描线的 ...
- CodeForces - 811C Vladik and Memorable Trip(dp)
C. Vladik and Memorable Trip time limit per test 2 seconds memory limit per test 256 megabytes input ...
- bzoj 3029 守卫者的挑战 —— 概率DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3029 设 f[i][j][k] 表示第 i 次挑战,已经成功 j 次,剩余容量为 k 的概率 ...