银行动态口令令牌工作原理简析

银行动态口令令牌工作原理简析_第1张图片

RSA SecurID SID700是当前市面上流行使用的动态口令令牌。

银行动态口令令牌工作原理简析_第2张图片

种子文件
用户从银行获取的动态口令令牌卡,其内部存储着一份与银行服务器完全一致的种子文件(即图中钥匙所代表的seed),种子文件产生自一种衍变于AES-128 的算法(AES-128 也是目前顶尖级的对称加密技术)。令牌在硬件上可能存在某种设置,即当令牌卡被人为打开时,种子文件将从令牌卡的内存上擦除。
算法

动态口令令牌,不使用任何对称或者非对称加密的算法,而采用时间同步型动态口令算法,即TOTP(Time-Based One-Time Password Algorithm)。

采用TOTP算法,令牌卡对种子文件和当前时间(令牌卡内部有自己的时钟,不依赖电脑时区)进行运算,以源源不断地产生不同的动态口令,并显示到屏幕上,与此同时,银行服务器会进行同样操作。

由此可见,时间同步型动态口令对令牌卡和服务器的时间同步要求很高,时间误差会造成整个令牌的失灵,所以每一次用户成功使用令牌认证,服务器都会做相应的时间误差矫正。具体过程如下:令牌卡根据当前时间计算口令并发送至服务器,服务器再根据当前时间前后的数个时间点分别计算口令,若其中某个口令匹配则认为认证成功,并记录误差值,此后服务器在口令认证时,直接在当前时间加上误差值以计算口令。

参考资料
[1] http://blog.jobbole.com/97877/

你可能感兴趣的:(密码学)