动态口令身份认证.doc
3页动态口令身份认证1动态口令身份认证原理1.1主要思想动态口令认证就是在登录过程中加入不确定因素,使每次登录时传送的认证信息都不相同, 以提高登录过程安全性 动态口令认证技术消除了静态口令认证技术的大部分安全缺陷, 能有效抵抗静态口令认证技术所面临的主要安全威胁和攻击, 为网络应用系统提供了更加安全可靠的用户身份认证保障该技术主要思想是为每个用户分配一个帐号, 每个帐号配有种子、迭代值和通行短语,种子(时间)及变化的迭代值(随机数)就能够产生一系列口令,每个 口令用户只能使用一次,由于用户的秘密通行短语(时间对密钥加密结果)从来不在网上传 送,因此,系统不易受到重放攻击 (最初一般的基于时间的动态口令算法是将时间对密钥的加密结果作为验证数据,传送给服务器)1.2运行原理用户通过客户机访问服务器时, 首先向服务器传送自己的帐号, 服务器响应一个由与该帐号对应的种子和迭代值组成的挑战,客户机使用该挑战和秘密通行短语产生一个一次性口令, 并以该一次性口令登录, 作为对挑战的答复,服务器随即产生一次性口令与之对比, 从而完成服务器对登录用户的鉴别, 每次登录成功后,迭代值递减,当该值为0或秘密通行短语泄密后,必须重新初始化。
1.3动态口令框图动态口令身份认证主要包括 3个部分:认证服务器、客户端和用户信息数据库认证服务器是动态口令认证系统的核心,它主要由 3个模块构成:系统初始化模块、用户管理模块、动态口令认证模块其中系统初始化模块的主要功能是系统维护, 设置环境参数等用户管理模块负责用户的增减及用户口令、 权限、密钥的设置动态口令认证模块负责对用 户的身份进行认证系统的客户端采用软件来实现挑战应答器,作为挑战码的响应,它以 AS端产生的挑战码为输入,使用和AS端完全相同的动态口令产生机制, 连同User端保存的用户的秘密密钥,输 出一个大整数作为响应码用户信息数据库中含有用户认证信息表,该表的主要字段应有用户 ID、用户的公共密钥、秘密密钥等,其中用户ID是区分用户的标志,不可相同用户Vsei图1动态口令身份认证示意图2动态口令的产生动态口令的核心是口令生成算法和时间同步问题2.1 口令生成算法口令生成算法是基于时间的一种秘密算法, 它是根据用户密钥数据和当前的时间产生一固定长度的字符串以下是一种产生 16位动态口令的示范算法:1 )程序提取当前时间和用户密钥数据2) 利用时间对用户密钥数据进行加密3) 利用SHA-1算法提取加密结果的消息摘要。
4) 将所产生的消息摘要作为动态口令使用当然如果在需要用户输入动态口令的情况下,就还得对此口令进行代码转换,将其转换为 ASCI I码,否则用户无法输入2.2时间同步本算法一个非常重要的问题是时间的同步 如果服务器端和客户端的时间无法同步, 则产生出来的口令肯定不同, 从而无法进行认证 为了使用时间同步, 客户端可以在传送过程中将 当前的时间进行适当变换传送给服务器,服务器计算动态口令时可以此时间为基础进行计 算,并将此时间列入已使用过的时间, 下次客户端送来的时间必须在此之后, 否则不予认证这样可以很好地实现时间同步问题2.3用户密钥的产生和分配用户密钥数据是动态口令的产生的基础,因此必须在非常安全的情况下产生和分配: 1)密钥的分配和产生由维护模块负责,当用户进行注册时,服务器随机产生用户的密钥, 然后分发给用户(分发时最好是让用户亲自来取 ),并在自己的数据库中进行保存,以供以后 产生口令时使用2 )用户可以根据需要申请服务器重新产生密钥数据3)为了安全起见,密钥数据的保存必须经过加密保存3动态口令身份认证过程1) 客户向认证服务器发出请求,要求进行身份认证2) 认证服务器从用户数据库中查询用户是否是合法的用户,若不是,则不作进一步处理。
3) 认证服务器内部产生一个随机数,作为“提问” ,发送给客户4) 客户将用户名字和随机数合并,使用单向 Hash函数(例如MD5算法)生成一个字符串5) 客户端利用动态口令生成算法产生动态口令 (利用时间对密钥加密并摘要),利用自己的 动态口令对这个字符串进行加密,然后将加密的结果作为应答传给服务器6) 认证服务器根据当前的时间计算用户的动态口令,然后用该口令对所接收到的应答串进 行解密7) 认证服务器利用解密结果与自己的计算结果 (Hash值)进行比较,若相同(实则验证密钥), 则通过一次认证;否则,认证失败8 )认证服务器通知客户认证成功或失败以后的认证由客户不定时地发起,过程中没有了客户认证请求一步 两次认证的时间间隔不能太短, 否则就给网络、客户和认证服务器带来 太大的开销;也不能太长,否则不能保证用户不被他人盗用 IP地址,一般定为1-2分钟4结论文章分析研究表明,动态口令技术能抵御大部分针对静态口令认证的网络攻击, 提高了安全性,特别是能有效抵御网络窃听、截取/重放、社交工程等攻击, 但不能有效抵御伪造服务器攻击(伪造服务器发随机数, 即知道了需动态口令加密的字符串, 接收客户发来的加密字符串,可穷举出密钥)和来自内部的攻击。
现在有许多的改进方案,弥补了动态口令无法实 现双向认证和无法克服来自内部攻击的缺点, 并正在逐步取代传统的静态口令认证方式 随着认证市场的巨大需求,好的动态口令认证机制将越来越应用广泛。





