《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > 一种基于动态口令的挑战应答智能卡鉴别机制
一种基于动态口令的挑战应答智能卡鉴别机制
蒋立军,周安民
来源: 中国电表网
摘要: 本文中提出基于智能卡的动态口令鉴别机制,有效提高了口令的安全性。 智能卡
Abstract:
Key words :

      对于特定的信息系统资源,应该只有经过授权的合法用户才能访问,而问题的关键就在于如何正确地鉴别用户的真实身份。身份鉴别是系统查核用户的身份证明的过程,实质上是查明用户是否具有他所请求资源的存储和使用权。信息技术领域的身份鉴别是通过将一个证据与实体身份绑定来实现的。实体可能是用户、主机、应用程序甚至进程.证据与身份之间是一一对应的关系,双方通信过程中,一方实体向另一方提供这个证据证明自己的身份,另一方通过相应的机制来验证证据,以确定该实体是否与证据所宣称的身份一致。           
      目前采用的身份鉴别技术,主要分为基于口令的身份鉴别、基于智能卡的鉴别、基于密码的身份鉴别、基于生物特征的身份鉴别等几类.其中,口令鉴别是一种根据已知事物验证身份的方法,因价格低廉、容易实现、方便使用等特点而被广泛采用。但是,这种鉴别方式同时也是用户鉴别机制中最容易攻破的形式。如果网络上的窃听者得到秘密口令,他就能假冒用户。一旦窃听者能假冒用户,服务器就无法阻止窃听者做合法用户授权所做的任何事情。          
      口令鉴别又分静态口令鉴别和动态口令鉴别.已有的研究表明传统的静态口令身份鉴别技术存在固有的安全性缺陷。因此有必要对口令身份鉴别技术在安全性方面进行加固.采用动态口令身份鉴别技术可以显著提高口令身份鉴别方案的安全性。动态口令身份鉴别是根据每次用户登录系统时动态口令鉴别信息互不相同,使得通过直接的网络窃听来进行口令猜测和重放攻击变得根更加困难。但是,如果这些动态口令鉴别信息是从一个用户记忆的口令推导而来,那么这个由用户记忆的口令仍然容易受到口令猜测的攻击。另外,如果这些动态口令是全部写在纸片上让用户保存的话,虽然可以防止上述攻击,且口令验证码也不会被重用,但对于用户来说,需要携带大量的口令验证码和保证这些口令验证码的安全,并且每次都要输入相对复杂的字符串,这是很不方便的。另外,这种方法也容易造成口令泄漏或中间人攻击。   
      为了有效地改进口令鉴别的安全性,众多文献进行了探讨,如通过增加口令的强度,提高抗穷举攻击和字典攻击的能力;将口令加密防止在传输中被窃听;采用动态的一次性口令系统防止口令的重放等。为了解决上述问题,本文中提出基于智能卡的动态口令鉴别机制,有效提高了口令的安全性。           
      智能卡身份鉴别是一种结合“用户已知和已拥有”的身份鉴别方式。智能卡具有嵌入卡片内部的CPU和存储器,同时还有一系列的安全机制来保证内部数据的安全.利用智能卡具有数据处理能力,可以在卡上进行密钥对的产生和进行卡上的签名和验证计算等较复杂的操作。用户访问系统时,系统首先判断智能卡的合法性,然后由智能卡通过输入的PIN来对持卡人的合法性进行鉴别,然后系统对智能卡的合法性作进一步的鉴别。因此,这种方法比基于口令的身份鉴别方法具有更好的安全性,在一定程度上解决了口令身份鉴别方式中的问题1(攻击者可能对通信信道实施窃听或截取通信内容.)和问题2(攻击者可能利用系统中存在的漏洞获取系统的口令文件进行有关攻击。目前智能卡正在不断地取代磁卡作为一种更为有效的用来鉴别身份的个人持有物。虽然基于智能卡的身份鉴别方式,更好的安全性。但普通的智能卡的使用,需要智能卡读卡器,这严重影响了其使用的方便性。随着计算机通用串行总线标准USB接口的普及与发展,基于USB接口和智能卡技术的USB
      KEY得到了快速的发展。基于USBKEY的身份鉴别方式将是一种方便、安全、经济的身份鉴别技术。

1 动态口令和智能卡         
      动态口令也称一次性口令.动态口令随产生口令的运算因子的变化而变化.动态口令的产生因子一般都采用双运算因子:其一,为用户的私有密钥.它是代表用户身份的识别码,是固定不变的。其二,为变动因子。正是变动因子的不断变化,才产生了不断变动的动态口令。采用不同的变动因子,形成了不同的动态口令认证:基于时间同步认证、基于事件同步认证和挑战/应答方式的认证技术。

     1)基于时间同步认证是把时间作为变动因子,所谓“同步”是指用户口令卡和认证服务器所产生的口令在时间上必须同步。 
      2)基于事件同步认证技术是把变动的数字序列(事件序列)作为口令产生器的一个运算因子,与用户的私有密钥共同产生动态口令。其同步是指每次认证时,认证服务器与口令卡保持相同的事件序列。           
      3)挑战/应答方式的变动因子是由认证服务器产生的随机数字序列,它也是口令卡的口令生成的变动因子,动态口令技术采用一次一密的方法,有效地保证了用户身份的安全性,近年来被广泛应用。          
      智能卡身份认证是一种双因子认证方式(PIN码+智能卡),两个因子缺一不可.即使攻击者窃取了合法用户的智能卡,没有正确的用户PIN码,仍然无法通过认证系统;同理,攻击者只获得了用户PIN码,没有合法的智能卡也无法通过认证系统,在基于智能卡的身份认证方式中,由于智能卡特有的硬件制造工艺,可以抵御物理篡改攻击,伪造的难度和成本很高,其操作系统的安全机制可以防止攻击者利用软件方式窃取卡内的机密信息,极大地提高了安全性。

 2 智能卡的动态口令鉴别机制设计        
      提出了一种利用挑战/应答方式的双向鉴别机制,客户端和服务器的数据库中拥有一个相同的计数器,初态保持同步.新的机制包括注册阶段,登录阶段和鉴别阶段.为方便叙述,对本文中用到的符号和标识作如下说明:

          ·U:表示用户
          ·S:远程服务器
          ·ID:用户身份标识符
          ·PW:用户登录口令
          ·Ks:服务器密钥,用于构建注册用户的秘密信息
          ·hk(·):HMAC.SHA一1算法,密钥为k
          ⊕:异或运算

2.1 注册阶段

         1)用户自由选择登录口令PW,计算M1=h(ID⊕PW),通过安全信道向服务器发送C 1和ID 进行注册。
          2)s收到注册请求后,生成随机数r,取出密钥KS ,计算 K=h(ID⊕KS), K1=h(ID⊕r),V=
      k⊕hK1(C1),S将包含信息(r,V,h(·),hk (·)|的智能卡通过安全信道签发给用户,此时,s保存r。

2.2 登录阶段

          1)用户U要登录到服务器S,把智能卡插入终端,提交身份ID和口令PW。

          2)智能卡判断用户身份ID的合法性,若ID不合法,拒绝发送登录请求;否则取出R和V,计算Ml  1=h(PW),k1 *
      =h(ID⊕r),k *= V⊕hkl  * ,(M1* ),并生成一个随机数b,计算c1= h( k *⊕TUI)⊕( k1
      *⊕TUI),其中TUI是用户当前的时间戳。

          3)发送信息{ ID,C1,TU1 }给远程服务器,请求登录。

2.3 鉴别阶段

          服务器.S收到登录请求后,服务器s和智能卡会执行下列操作:

         1)S验证ID的有效性.若ID不合法,S拒绝登录请求;否则,S证TU1和TS1之间的有效性.如果TS 1- TU1≥△,服务器拒绝登录请求;否则,s计算C1 *=h( k ⊕TUI)⊕h( k1 ⊕TUI),比较C1* 与C1,若C1* ≠C1,S中止本次会话;否则,S通过对用户U的认证。其中,TS1是服务器当前的时间戳,△ 为期望的有效时间间隔。

          2)为实现双向认证,S计算C2=h( K⊕TS2)⊕r)发送{C2,TS2}给智能卡,其中TS2是服务器当前的时间戳。

          3)智能卡收到验证信息后,验证TU2和 TS2之间的有效性。如果TU2-TS2≥△ ,用户拒绝服务器登录;否则,智能卡取出r,计算C2 *=h((K* ⊕r),比较C2 *与C2,若C2 *≠C2,中止本次会话;否则,通过对 S 的身份认证。其中TU2是用户当前的时间戳,△为期望的有效时间间隔。

 3 安全性和有效性分析

      1)能够有效抵抗重放攻击和小数攻击,在鉴别过程中引人了随机数,保证了每次认证信息的新鲜性,不易实现猜测和伪造,能够有效抵抗重放攻击。而由于实现原理与S/Key不同,所以,不存在小数攻击。

       2)实现了双向身份鉴别,用户的身份以及服务器的合法性得到了保护。同时本机制采用了双因子认证方式(动态口令+智能卡),攻击者要想进行口令猜测攻击,两者缺一不可。另外,由于用户自由选择口令进行注册,并且服务器总动生成随机数结合口令进行哈希运算,口令信息的随机性更增加了口令猜测的难度。


       4)采用了挑战应答机制,引入了时间戳保持了客户端与服务器的同步性,同时保证了鉴别信息的随机性,能够有效抵抗假冒攻击和重放攻击。

        5)本机制采用智能卡自带的哈希运算,计算代价低,同时,服务器不需要保存认证成功的口令,减小了系统开销,一定程度上大大提高了执行性能。

4 结束语

         
      本文中提出的动态口令机制采用了智能卡的双因子身份认证,在挑战应答机制中引入时间戳,保持通信双方的同步性,同时加入了动态口令使鉴别信息不断变动,此外,由于单向函数的安全性及复杂性,大大增加应用系统的安全性和有效性,实现了双向身份鉴别,能够有效抵抗一些典型的攻击。但是,客户端和服务器端运算还是比较多,需要进一步的完善。
 

此内容为AET网站原创,未经授权禁止转载。