信息系统安全(第二章——S/Key认证)

基于口令的身份认证------S/Key认证:

① 在初始化阶段,选取口令pw和数n,以及Hash算法f。S/Key服务器也会同时给客户端发送一个

种子seed,这个种子往往是以明文的形式传输。口令计算模块会通过n次应用Hash算法f,计算

y=(pw+seed),y的值将通过客户端发送并存储在S/Key服务器上。

② 在用户首次登录时,利用口令计算模块计算y'=(pw+seed),客户端将y'的值作为响应信息

发送至S/Key服务器;服务器计算z=f(y'),并与S/Key服务器上存储的y'的值进行比较。若z=y,则

验证成功,允许用户正常的访问系统,n值减1,并用y'的值取代服务器上的y的值;否则的话,服

务器就会拒绝登录。

③ 用户下次登录时,利用口令计算模块计算y''=(pw+seed),作为本次登录的响应信息。登录成功,n值减1,依次类推,直至n=1。

从以上步骤可以看出,S/Key服务器的挑战信息实际上是由迭代值n和种子seed两部分构成。n的初

始值通常会设为1~100之间的一个数,且n值每次递减的值可以不为1。

S/Key实现身份认证的理论依据基于Hash算法的单向性,S/Key标准中定义的Hash算法的三个标准

接口,即MD4,MD5和SHA,其安全性主要体现在以下方面:用户的口令不会在网络上进行传

输,也不会存储在服务器端和客户端的任何地方,只有本人知道;依据Hash算法的单向性,服务

器端在已知本次登录的口令时,依次推导出下次用户认证的动态口令的难度非常大。

S/Key认证的缺点是:动态口令数量有限,由于迭代次数有限,用户登录一定次数后,当动态口令

用完时,就需要用户对S/Key认证服务进行重新初始化;不能防范伪造服务器攻击,是因为S/Key

口令认证是一种单向认证,无法验证系统服务器的真实性;S/Key口令认证的理论依据是Hash算法

的单向性,所采用的算法是公开的,当有关这种算法可逆计算研究有了新进展时,系统将不得不重

新算用其他更安全的Hash算法;可能遭遇小数攻击,在S/Key系统中,种子和迭代值均采用明文传

输,黑客可利用小数攻击来获取一系列口令冒充合法用户,即当用户向服务器请求认证时,攻击者

截取服务器传来的种子和迭代值,修改迭代值为较小值,并假冒服务器,将得到的种子和较小的迭

代值发送给用户,随后再次截取用户计算机得到的动态口令,利用已知的Hash算法依次计算较大

迭代值的动态口令,从而可或得用户后继的动态口令。

目前使用比较多的动态口令技术还有手机令牌技术,短信密码技术和矩阵卡技术等。手机令牌技术

是由运行在智能手机上的程序通过SIM卡(或软证书等方式)产生动态口令;短信密码技术则是系

统通过发送一串随机数字的短信给用户,用户在某一时限范围内,发送该串随机数字给认证系统实

现身份认证;矩阵卡技术则是在一张卡片上预先印刷好一些随机的数字,用户在每次登录时,系统

会要求用户按照某一规则输入卡片上的部分数字,从而得到用户这次和下次登录输入的密码内容不

一样的效果。

相关推荐
我变成萤火虫3 小时前
河南萌新联赛2026第(四)场:南阳理工学院
数据结构·c++·算法·贪心算法·stl·动态规划
To_OC6 小时前
LC 239 滑动窗口最大值:从暴力超时到单调队列一遍过
javascript·算法·leetcode
.道阻且长.7 小时前
9.LeetCode算法习题讲解--滑动窗口--无重复字符的最长字串
算法·leetcode·职场和发展·哈希算法
画中有画7 小时前
软件架构中质量属性(性能、安全、可扩展性)的权衡设计
java·运维·安全
Shaoxi Zhang7 小时前
JAVA学习笔记035——对象和JSON格式
java·笔记·学习
Oll Correct7 小时前
Adobe illustrator 案例六:手枪图标绘制
笔记·ui·adobe·illustrator
唐山柳林7 小时前
筑牢“数字堤坝”,守住安全底线——洞庭湖堤防安全监测平台为蓄滞洪区安上“智慧大脑”
安全
hoaxxcj7 小时前
零能力 Agent 骗过评测实测:朴素 harness 被骗 75%,加固后仍漏掉「抄答案」
网络·安全·大模型·工程化·ai实战
Tokenge8 小时前
AI 前沿日报|2026.08.19:模型安全按下减速键,智能体进入“可控落地”新阶段
人工智能·安全
ltl8 小时前
HNSW:图索引如何击败树索引
算法