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

标签: IT技术 安全 | 发表时间:2016-02-15 17:35 | 作者:v7
出处:http://blog.jobbole.com

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

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. 欢迎勘误。

参考链接:

银行的动态口令令牌是什么原理,首发于 博客 - 伯乐在线

相关 [银行 动态口令 原理] 推荐:

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

- - 博客 - 伯乐在线
有网银的少年们一般都收到过银行给的这样一个令牌,俗称动态口令,在支付的时候输入自己的密码和动态口令上的动态密码,就能完成验证,银行就相信你不是坏人了,今天我们来简述一下这个动态口令令牌是个什么原理. PS:本篇阅读可能需要读者有一些密码学基础,预警一下. 如图的RSA SecurID SID700是当前市面上流行使用的动态口令令牌,在笔者准备资料的过程中发现国内描写动态口令的野生博客有不少谬误,其中大多是对银行这一套认证机制结构的不了解,所以首先要强调的是:.

正确使用银行卡

- - 雨中发呆
请大家看清楚了,是网上银行汇款. 不是银行柜台上汇!柜台上的手续费比网上银行贵的. 但有一个例外,邮政储蓄要收0.5%. 工行:0.9%,最低0.9元/笔,最高45元/笔. 农行:0.4% ,最低1元/笔,最高20元(柜台手续费是0.5%,最高50元).  跨省:如果对方是银行卡:转账金额的0.06% (也就是万分之六),最低1元/笔,最高12元/笔.

银行与银行之间的现金是如何流转的?

- - 知乎每日精选
***2015-08-05有更新***. 首先,题主说的「现金」,银行术语叫「现钞」. 银行术语的「现金」包含范围更广,有现钞,也有你账户下的数目字. A君将100万现钞存入X银行:X银行在A君的账户下贷记100万(增加100万);现钞进库房,第二天可能去柜台可能去ATM机,满足其他储户的提现要求.

黑客轻易入侵花旗银行

- Wuvist - Solidot
Visame 写道 "盗取超过200,000名花旗银行客户资料的黑客使用了一种极其简单的方法入侵. 此举被称作是近年来最大胆的一次银行入侵. 黑客们仅仅是简单地登录花旗公司的信用卡客户专区,然后把浏览器地址栏中自己的帐号替换成他人的帐号,便可顺利进入他人的帐号. 随后黑客们使用计算机程序重复这一过程.

银行瘦身势在必行

- 品味视界 - FT中文网_英国《金融时报》(Financial Times)
弗兰克•帕特洛伊为英国《金融时报》撰稿. 一些银行近期宣布的裁员消息和银行股价下跌从两方面表明,这两个问题的答案远比你可能想象的数字要小. 截至周三午盘,上周均宣布裁员的巴克莱(Barclays)和瑞士信贷(Credit Suisse)股价当月跌幅超过20%. 汇丰银行(HSBC)股价下跌17%,该银行将裁员3万人,占员工总数的10%.

中小银行的云计算后台

- Draven - 每日鲜果精选
城市商业银行规模虽小,但对IT的需求却与大银行没有太大差别. 云计算给了他们解决这一矛盾的思路. 中国的中小银行一直以来都有一个尴尬的现实——虽然规模小,业务却大而全. 因此,中小银行对IT系统的要求,与大型银行几乎差别不大. 但是从资源和实力上来讲,中小银行却与大银行相差甚远. 根据易观国际的统计,2010年我国城市商业银行等区域性银行的IT投入是41.8亿元,2011年将达到47.7亿元.

各个银行卡的知识

- wei - 草榴社區
1 中国工商银行:办卡费5元,年费10元/年,低于300元收小额账户管理费3元/季度,同城跨行取款2元/笔2 中国农业银行:办卡费5元,年费10元/年,低于300元收小额账户管理费3元/季度,同城跨行取款2元/笔(广东省4元). 3 中国建设银行:办卡费5元,年费10元/年,低于500元收小额账户管理费3元/季度,且这类账户不给利息,同城跨行取款4元/笔+取款额的1%(就是说比其他银行异地取款的费用还高,黑心到家了,明显逼着自己的客户不去别的银行取钱,这样别的银行客户来自己ATM取钱可以坐收佣金,所以大家即便拿着别的银行的卡跨行免费也不要去建行取钱).

“下一代银行”在路上

- yuza - 爱范儿 · Beats of Bits
周一 ifanr 参加了由渣打银行举行的《极客——让银行转型》博主论坛. 各位与会博主精彩的提问带领我们共同展开对银行业务创新,特别是科技创新所带动的银行转型的思考. Jeff——渣打银行渠道创新总监,分享了 Scrum 理念为渣打银行带来的改变. Breeze Living 是渣打银行在中国地区首先推出的一个优惠券分享程序,借助现实增强技术以抓风筝的形式.

BankSimple打算再造个人银行

- 小宇 - 36氪
”2009年风险投资家Jerry Neumann收到的一封电子邮件中的标题写到. 发件人是他以前的下属Josh Reich,这个华尔街常客早就受够了个人银行经历,莫名其妙的收费,让人摸不着头的术语,糟糕的客服,于是他发誓要做一家更靠谱的银行. 于是Reich和他的合伙人Shamir Karkal创建了BankSimple.

中国银行存款加剧外流

- 微笑!?~ - Solidot
bonnae1982 写道 "据《中国证券报》报道,在通胀压力不减(一年期存款利率为3.5%,8月居民消费价格指数则同比上涨6.2%,负利率明显)、股市楼市财富效应黯淡的背景下,中国银行存款正加剧外流,或流向民间借贷市场. 报道称,9月以来,存款加速流出银行体系. 前15日,工行、农行、中行、建行四大国有商业银行存款较8月末减少4200亿元左右,出现罕见天量负增长.