理论教育 实验:一次性口令机制实现

实验:一次性口令机制实现

时间:2023-10-31 理论教育 版权反馈
【摘要】:最常见的一次性口令认证方案是S/Key 和Token 方案。S/Key口令保护认证系统不受外来的被动攻击, 但是无法阻止窃听者对私有数据的访问, 无法防范拦截并修改数据包的攻击, 无法防范内部攻击。2) 实验步骤 选择一个一次性口令的算法。

实验:一次性口令机制实现

1. 实验背景

现有一个Web 应用系统, 用户访问系统资源前需经过身份认证, 身份认证主要采用口令认证机制。 要求设计该用户认证过程, 保证用户的口令在网络中传输时进行了加密, 并且在网络中传输时能防止重放攻击。

2. 实验目的

(1) 了解口令机制在系统安全中的重要意义。

(2) 掌握动态生成一次性口令的程序设计方法。

3. 实验原理

一次性口令认证又称会话认证, 认证中的口令只能被使用一次, 然后被丢弃, 从而减少了口令被破解的可能性。 在一次性口令认证中, 口令值通常是被加密的, 避免明文形式的口令被攻击者截获。 最常见的一次性口令认证方案是S/Key 和Token 方案。

S/Key 口令基于MD4 算法和MD5 算法产生, 采用客户端-服务器模式。 客户端负责用哈希函数产生每次登录使用的口令, 服务器端负责一次性口令的验证, 并支持用户密钥的安全交换。 在认证的预处理过程中, 服务器将种子以明文形式发送给客户端, 客户端将种子和密钥拼接在一起得到S。 然后, 客户端对S 进行哈希运算, 得到一系列一次性口令。 S/Key口令保护认证系统不受外来的被动攻击, 但是无法阻止窃听者对私有数据的访问, 无法防范拦截并修改数据包的攻击, 无法防范内部攻击。

Token (令牌) 方案要求在产生口令时使用认证令牌。 根据令牌产生的不同, 该方案分为两种方式: 时间同步式和挑战/应答式。

4. 实验内容和步骤

1) 实验内容

(1) 编写一个基于客户端-服务器模式的一次性口令程序。

(2) 运行该口令程序, 屏幕上弹出一个仿Windows 窗口, 提示用户输入用户名、 口令和验证码, 并给出验证码的提示模式。

(3) 用户输入用户名、 口令和验证码, 要求利用验证码对用户名和密码做一定的运算,使信息在网络上传输时, 根据验证码的不同而变化。 服务器端按照一次性算法进行计算并比较, 若符合则给出合法用户提示; 否则给出非法用户提示。(www.daowen.com)

(4) 再一次运行口令程序, 如果输入与上一次的验证码相同, 则系统应当拒绝, 提示此为非法用户。 每次提示和输入的验证码都应不一样。

(5) 写出设计说明(含公式、 算法、 随机数产生法、 函数调用和参数传递方式)。

2) 实验步骤

(1) 选择一个一次性口令的算法。

(2) 选择随机数产生器。

(3) 给出口令(密码) 输入提示。

(4) 用户输入口令(密码)。

(5) 给出用户确认提示信息。

(6) 调试、 运行、 验证。

5. 思考题

(1) 使用一次性口令机制后, 对网络中传输的口令做了何种处理?

(2) 一次性口令机制可以防止何种攻击?

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈