动态口令基本原理

  

动态口令,又叫动态令牌,动态密码。它的主要原理是:用户登录前,依据用户私人身份信息,并引入随机数产生随机变化的口令,使每次登录过程中传送的口令信息都不同,以提高登录过程中用户身份认证的安全性。
银行通常提供给用户两种动态口令:一种是固定数量的动态口令,最常见的就是刮刮卡。用户每次根据银行提示,刮开卡上相应区域的涂层,即可获得一个口令。刮刮卡成本低廉,使用方法简单,因此很多银行采用这种方法,如工商银行;另一种是硬件形式的动态口令,即电子令牌,它采用专用硬件,每次可以用自带的密码生成芯片得到一个当前可用的一次性动态密码,交通银行等就采用这种方式。一般来讲,每个客户端的电子令牌都有一个唯一的密钥,该密钥同时存放在服务器端,每次认证时令牌与服务器分别根据同样的密钥,同样的随机数和同样的算法计算出认证时的动态口令,从而确保口令的一致性和认证的成功。因每次认证时,随机数的参数不同,所以每次产生的动态口令也不同。每次计算时参数的随机性保证了每次口令不可预测,以保证系统安全。

  

这些随机数是怎样产生的呢?动态口令随机数分为以下几类。

  

1。口令为一个单向的前后相关的序列,系统只记录第N个口令。用户用第N - 1个口令登录时,系统用单向算法算出第N个口令与自己保存的第N个口令匹配,以判断用户的合法性,由于N是有限的,用户登录N次后必须重新初始化口令序列。

  

2。时间同步:以用户登录时间作为随机因素。这种方式对双方的时间准确度要求较高,一般采取以分钟为时间单位的折中办法。在这种动态口令中,对时间误差的容忍可达±1分钟。

  

3。事件同步:通过某一特定的事件次序及相同的种子值作为输入,使用相同的算法运算出一致的密码,其运算机理决定了其整个工作流程同时钟无关,不受时钟的影响。它节省了用户每次输入挑战信息的麻烦,但当用户的挑战序列与服务器产生偏差后,需要重新同步。

  

4。挑战/应答:也叫异步认证方式。它比时间/事件同步方式操作相对烦琐,实现相对复杂,一般用于对安全性要求更高的场合,比如登录网上银行等,需要附加认证的情形。当用户需要访问系统时,远程认证服务器根据用户的电子令牌资料产生一个随机的数字串,即“挑战码”,用户将该数字串输入到电子令牌中。电子令牌利用内置的种子密钥和算法计算出相应的应答数(通常也是一个数字串)。

  

5。用户将该应答数输入系统。系统根据所保存的该用户相应电子令牌信息(种子密钥和算法)计算出应答数,并与用户输入的应答数进行比较。如果两者相同,则认证通过。由于每个电子令牌的种子密钥不同,因此不同用户的电子令牌对同样的挑战数计算出应答数也并不相同。只有用户持有指定的电子令牌才能计算出正确的应答数以通过系统认证。从而可以保证该用户是持有指定电子令牌的合法用户。

  
 <代码>由于口令每次都变化,即使得到密码也没的用,而且这种动态口令由专用算法生成,随机性高,不太容易被破解。传统的* * *程序即使窃取到用户个人信息,拿去登录银行网页,也已经过期,因此,动态口令极大地提高了用户身份认证的安全性。 

动态口令基本原理