`

银行的动态口令令牌是什么原理

阅读更多
有网银的少年们一般都收到过银行给的这样一个令牌,俗称动态口令,在支付的时候输入自己的密码和动态口令上的动态密码,就能完成验证,银行就相信你不是坏人了,今天我们来简述一下这个动态口令令牌是个什么原理。

PS:本篇阅读可能需要读者有一些密码学基础,预警一下。

SID700.jpg

RSA SecurID SID700

如图的RSA SecurID SID700是当前市面上流行使用的动态口令令牌,在笔者准备资料的过程中发现国内描写动态口令的野生博客有不少谬误,其中大多是对银行这一套认证机制结构的不了解,所以首先要强调的是:

在大众用户手中的动态口令令牌,并不使用任何对称或者非对称加密的算法,在整个银行的认证体系中,动态口令令牌只是一个一次性口令的产生器,在其中运行的主要计算仅包括时间因子的计算和散列值的计算。

动态口令算法又叫一次性口令算法,英文写作OTP(One-Time Password Algorithm), 动态口令令牌使用的算法是OTP中的一类,TOTP(Time-Based One-Time Password Algorithm) — 时间同步型动态口令。

时间同步型动态口令产生口令的时候和时间有关系,我们可以通过其工作的原理图来看一下:

Screen Shot 2016-02-08 at 5.06.00 PM.png

图示给出了动态口令的工作原理,突出了整个认证机制中的动态口令部分,我们可以清楚看到在最左边和最右边有完全相同的两个流程,这里分别代表了用户的令牌卡和银行服务器的验证机器做的工作。本文的重点就在这两个完全相同的流程上。

在用户从银行手中拿到动态口令令牌卡的时候,在令牌卡的内部已经存储了一份种子文件(即图中钥匙所代表的seed),这份种子文件在银行的服务器里保存的完全一样的一份,所以对于动态口令令牌来说,这种方式是 share secret的。另外在令牌硬件上的设置中,假使有人打开了这个令牌卡,种子文件将会从令牌卡的内存上擦除(待考证)。

令牌卡中有了种子文件,并实现了 TOTP 算法,在预先设置的间隔时间里它就能不断产生不同的动态口令,并显示到屏幕上,而银行服务器上跟随时间做同样的计算,也会得到和令牌卡同样的口令,用作认证。

那么 TOTP 算法具体做了什么操作呢?在 RFC6238 中有详细的算法描述,这里也会做简单的叙述。

TOTP 是来自 HOTP [RFC4226] 的变形,从统筹上看,他们都是将数据文件进行散列计算,只是HOTP的因子是事件因子,TOTP将因子换成了时间因子,具体的TOTP计算公式(其中的HMAC-SHA-256 也可能是 HMAC-SHA-512):

TOTP = Truncate(HMAC-SHA-256(K,T))

其中: K 为这里的种子文件内容; T 为计算出来的时间因子

公式中的 HMAC是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。而公式中给出的哈希算法是 SHA-256,这种哈希算法目前并没有好的破解办法。

令牌卡中预先设置了要显示的口令长度,TOTP 中的 Truncate 操作剪切获得口令。

以上就是动态口令令牌卡的内部原理。

几点补充:

1.  时间同步型动态口令对令牌卡和服务器的时间同步要求很高,时间误差会造成整个令牌的失灵,所以每一次用户成功使用令牌认证,服务器都会做相应的时间误差矫正。

2. 种子文件的产生使用了一种AES-128 变形而来的算法, AES-128 也是目前顶尖级的对称加密技术。

3. 目前从加密技术上以及数学理论上整个银行机制的认证系统基本无解。

4. 欢迎勘误。

http://www.techug.com/what-principle
分享到:
评论

相关推荐

    基于MD5算法的动态口令技术的软件实现.pdf

    例如,银行和大型电子商务网站通常会为用户提供动态口令令牌或动态口令卡。然而,这些硬件设备的成本较高,对于中小型电子商务网站来说并不现实。因此,探索一种成本低廉且易于实现的软件解决方案变得尤为重要。 ##...

    基于事件同步及异步的动态口令身份认证技术研究

    动态口令的基本原理是生成一个仅在特定时间或特定事件下有效的口令,确保即使口令被截获,其有效性也极其短暂,从而大大降低了密码被盗用的风险。这一技术的核心在于动态令牌,一种集成有电源、密码生成芯片和显示屏...

    电子政务-动态口令电子密码锁.zip

    总的来说,动态口令电子密码锁是电子政务安全体系中的重要组成部分,通过其高效且安全的认证机制,提升了政府在线服务的质量,保护了公众的数据安全。了解并掌握这种技术,对于理解电子政务的发展趋势和保障信息安全...

    一次性口令身份认证的设计与实现c++

    在本文中,我们将深入探讨OTP身份认证的设计原理及其C++实现,同时关注MD5哈希算法在该过程中的应用。 首先,OTP的核心理念是每个密码只使用一次,确保即使攻击者截获了该密码,也无法再次使用。这种机制通常结合...

    网络游戏-网络上的安全动态凭证分发.zip

    本文将深入探讨网络游戏中的安全动态凭证分发机制、其工作原理、优点以及实际应用。 动态凭证的核心思想是每次登录时提供一个不同的、短时有效的验证码,这与传统的固定密码系统形成鲜明对比。这样,即使攻击者截获...

    Usbkey身份认证

    为了保障用户资金安全,各大银行采取了一系列措施,如提升用户安全意识、安装反病毒软件以及采用硬件认证手段,如Usbkey和动态口令令牌。Usbkey的私钥存储在密码保护的硬件中,理论上无法被非法读取,极大地提高了...

    网络安全与服务器.doc

    【网络安全与服务器配置管理】 网络安全是信息化社会的重要组成部分,它涉及到信息的保密性、完整性、可用性和抗...2. 口令令牌的伪随机技术分析,增强储户端防窃密技术的演示,PKI系统构建与证书发放,以及企业级VP

    epass1000ND验证注册登录

    epass1000ND是一种基于动态口令的硬件安全设备,通常用于银行、企业等高安全性需求的场景。它通过生成一次性密码(One-Time Password, OTP)来确保用户的身份安全,防止恶意攻击者通过窃取静态密码来非法访问系统。...

    USBKEY 认证方式的网上支付研究

    USBKEY,也称为数字证书令牌或硬件安全模块,是一种物理设备,用于存储用户的私钥和个人信息,以此来保护在线交易的安全性。本文将深入探讨USBKEY认证方式的原理、优势以及其实现网上支付的具体步骤。 首先,USBKEY...

Global site tag (gtag.js) - Google Analytics