SylixOS嵌入式操作系统|论坛

 找回密码
 注册
搜索
查看: 5771|回复: 0
打印 上一主题 下一主题

给大家科普一下 动态口令的原理

[复制链接]

4

主题

16

帖子

103

积分

版主

Rank: 7Rank: 7Rank: 7

积分
103
QQ
跳转到指定楼层
楼主
发表于 2014-12-29 11:24:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yygg_you 于 2014-12-29 11:26 编辑

我给大家科普一下吧
这样的产品 一般是
HMAC(静态因子 + 动态因子) = 20字节摘要。然后从这20字节里头取数据,比如Digest[19]低4位值作为索引  ,从前面16字节中取连续4个作为密码
静态因子: 是每个Key唯一的 这是在生产时烧录进去的 ,这个数据要同步到银行中心。这个算法是根据用户的序列号生成的,算法固定 不对外公布。
动态因子:1 时间 ,时间在生产时烧录进去,使用UTC时间,采用30s 或 60s步进一次的方法
               2 事件 ,按一次产生一次密码,然后事件值+1

HMAC算法:根据需要:有MD5-HMAC SHA1-HMAC SHA256-HMAC 还有SM3等等算法。  根据需要进行选择,只要和银行的中心能够匹配上就可以。

基于时间或事件的OTP(One Time Password)每一个设备的RTC或EventVal不一定能和中心同步,有了偏差怎么办? 银行的后台有一个窗口算法,会向下或向上计算10个密钥对来匹配用户当前输入的密钥,如果匹配上了,自动设置一个用户的偏差值,下次用户再次使用的时候呢在根据这个偏差值再次上下浮动10个(当然也可以更多,更多的话会加重服务器负担)来和用户时间/事件值同步。

这样的设备成本很低,但是数量很大,一般小企业做不起来,银行弄几个承兑给你就能耗死你的流动资金。


再补充一点,静态因子和动态因子都是保存在RAM中的,电池没电了以后 这个设备就会失效。如果想自己换电池,得确保设备不能掉电,切记~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|Acoinfo Inc. All Rights Reserved. ( 京ICP备15059934号

GMT+8, 2024-11-21 17:36 , Processed in 0.030968 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表