当前位置:文档之家› 基于动态口令的身份认证机制及其安全性分析

基于动态口令的身份认证机制及其安全性分析

1一种基于动态口令的身份认证系统研究 傅德胜1,陈 昕2 (南京信息工程大学 计算机与软件学院, 江苏 南京 210044)

摘 要:身份认证在信息安全中起着非常重要的作用,建立安全的身份认证机制成为终端安全的关键之一。作为一种新型的认证模式,动态口令比传统的静态口令更加安全、可靠。本文阐述了动态口令的原理及现有动态口令方案的缺点,设计了一种新型的身份认证系统,并对其有效性进行了分析。 关键词:动态口令;身份认证;安全性 中图法分类号:TP309 文献标识码: A

A Study of Authentication System based on Dynamic Password

FU De-sheng1, CHEN Xin2 (Department of Computer & software, Nanjing University of Information Science & Technology, Nanjing Jiangsu 210044, China)

Abstract: Identity authentication plays a very important role in the system security, establishing a secure authentication mechanism becomes one of the keys in the terminal security. As a new mode of authentication, dynamic password is more secure and reliable than traditional static password. This paper describes the principle of dynamic password and disadvantages of the existing dynamic protocols, designs a new type of authentication system and analyzes the effectiveness of it. Key words: dynamic password; identity authentication; security

0 引言 身份认证是系统安全中最重要的问题,只有在进行安全可靠的身份认证的基础上,各种安全产品才能最有效地发挥安全防护作用;也只有完成了身份认证,网络系统才可能安全、高效地开放和共享各种网络资源、系统资源、信息资源。 目前大部分网络系统所使用的访问控制方法是传统的静态口令认证技术,通过用户名和口令的匹配来确认用户的合法性。但是,随着网络技术的进一步发展,以静态口令为基础的认证方式面临着很多的安全问题,渐渐无法满足用户的需求。动态口令的概念就是在这样的情况下产生的,它采用了基于同步或者异步方式而产生的一次性口令来代替传统的静态口令,从而避免了口令泄密带来的安全隐患。目前,基于动态口令的身份认证系统已应用在电子商务,电子政务,银行,证券等诸多领域。 1 传统的身份认证方式

传统的身份认证方式就是用户名口令核对法:系统为每一个合法用户建立一个ID/PW对,当用户登录系统时,提示用户输入自己的用户名和口令,系统通过核对用户输入的用户名,口令与系统内已有的合法用户的ID/PW是否匹配,来验证用户的身份。 这种静态口令认证方式存在很多问题,最常见的是网络数据流窃听、截取/重放、暴力破解、窥探等攻击方式。静态口令的不安全因素是信息系统普遍存在的隐患。基于口令认证的身份鉴别的安全性成为信息安全中迫切需要解决的一个问题,动态口令认证方式应运而

1 傅德胜,男(1950--),教授,主要研究领域:信息安全

2 陈昕,女(1984--),在读硕士研究生,主要研究领域:信息安全

http://www.elecfans.com 电子发烧友 http://bbs.elecfans.com 电子技术论坛2

生。 2 动态口令认证的常用技术

20世纪80年代初,美国科学家Leslie Lamport针对静态口令认证的缺陷,首次提出了利用散列函数产生动态口令(OTP:One Time Password)的思想,即用户每次登录系统时使用的口令是变化的。根据动态因素的不同,动态口令认证技术主要分为两种,即同步认证技术和异步认证技术。其中同步认证技术又分为基于时间同步认证技术(Time Synchronous)和基于事件同步认证技术(Event Synchronous);异步认证技术即为挑战/应答认证技术(Challenge/Response)。 (1)基于事件同步技术 这种方法的原理是通过某一事件的序列及种子密钥作为输入值,通过散列算法运算出密码。也就是说,用户输入一次ID就会产生一个密码,变化单位是用户的使用次数,如果客户端和服务器所算出的密码一致,就认证了用户的合法身份。 (2)基于时间同步技术 以用户登录时间作为随机因素,选择单向散列函数作为口令的生成算法,这种方式对时间准确度要求较高,一般采取分钟为变化单位。这样可以保证散列函数算出的口令是在不断变化的,又减少了认证双方的交互过程。 (3)基于挑战/应答技术 用户要求登录时,系统产生一个挑战码(随机数)发送给用户,客户端通过单向散列函数将用户的密钥和随机数进行运算,把结果(应答数)发送给系统,系统用同样的方法做验算即可验证用户身份。由于每个用户的密钥不同,不同的用户对同样的挑战值能算出不同的应答数,只有某一用户用指定的令牌才能算出正确的应答数,并且这个应答数只使用一次,所以能保证很高的安全性。 (4)S/Key技术 目前在实际应用中,使用最广泛的动态口令是S/Key方式,它也是挑战/应答技术的一种。每个用户都有一个账号,每个账号配有种子(Seed)、迭代值(Iteration)和秘密通行短语。使用秘密通行短语、种子以及变化的迭代值就能够产生一系列口令,每个口令用户只能使用一次。口令为一个单向的前后相关的序列,系统只用记录第 N个口令。用户用第N-1个口令登录时,系统用单向算法算出第N个口令与自己保存的第N个口令匹配,以判断用户的合法性。由于N是有限的,用户登录N次后必须重新初始化口令序列。 3 动态口令认证系统的设计

S/Key动态口令具有一次性,可以有效防止重放攻击,但是对小数攻击很脆弱,而且用户登录一定次数之后必须重新初始化。传统的挑战/应答机制向用户发送不重复的挑战数,不需要初始化,但是该方案只能提供单向身份认证,不能认证服务器,无法防范假冒的服务器欺骗用户。针对这些问题,本文提出了一个改进后的动态口令身份认证方案。 3.1 系统设计思想 本文采用的是基于挑战/应答的认证技术,用MD5算法和公钥体制为口令加密。用户U选择账户ID和口令PW,由安全信道完成在认证服务器AS上的注册,AS保存用户U的用户账户和口令对{ID,PW}。 身份验证的过程如下: (1)U→AS:ID 用户输入账户ID,将身份验证请求上传至服务器AS。 (2)U←AS:R 服务器AS查询用户信息,如果账户ID不是已经注册的账户,就拒绝请求;否则产生

http://www.elecfans.com 电子发烧友 http://bbs.elecfans.com 电子技术论坛3

一个随机数r,计算R= ay mod p(p为大素数,a为Zp的本原元),将挑战数R提交给用户。 (3)U→AS: h(h(PW)||R⊕V,h(h(PW)||R||V) 用户输入PW并计算h(PW),选择随机数x,计算V= ax mod p,然后把h(PW)和R连

接后的hash值与V作异或运算。同时为保证V的完整性以进行认证,计算h(h(PW)||R||V)。将h(h(PW)||R⊕V和h(h(PW)||R||V)一起传给认证服务器AS。 (4)U←AS: h(V+1) 服务器用自己的私钥解密h(PW),计算h(h(PW)||R,然后将其与h(h(PW)||R⊕V进行异或运算求得V’,计算h(h(PW)||R||V’)。若h(h(PW)||R||V’)与收到的h(h(PW)||R||V)相等,则认为用户合法,通过验证,计算h(V+1)并作为应答信息传给用户;否则,服务器拒绝用户的认证。 (5)U→AS:验证服务器 用户将收到的应答值与自己计算的结果h(V+1)进行比较。如果二者相等,则通过对服务器的验证,登录成功;否则,用户拒绝登录。 在此后的会话过程中,用户和服务器双方使用K = axy mod p作为会话密钥加、解密通

信内容。 动态口令的认证过程可用图1表示。

图1 动态口令认证过程 3.2 动态口令认证系统的组成 动态口令认证系统由两部分组成:客户端和认证服务器。其基本结构如图2所示。

图2 动态口令认证系统结构图 用户注册 身份认证 用户数据

认证服务器AS

网络 用户 令牌 用户 令牌

客户端

User

服务器端

AS

认证请求ID挑战值R

应答值H(V+1)验证服务器

h(PW,R,V)

http://www.elecfans.com 电子发烧友 http://bbs.elecfans.com 电子技术论坛

相关主题