poptest老李谈动态口令原理
poptest老李谈动态口令原理
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200。
动态口令,又叫动态令牌、动态密码。它的主要原理是: 用户登录前,依据用户私人身份信息,并引入随机数产生随机变化的口令,使每次登录过程中传送的口令信息都不同,以提高登录过程中用户身份认证的安全性。
银行通常提供给用户两种动态口令: 一种是固定数量的动态口令,最常见的就是刮刮卡。用户每次根据银行提示,刮开卡上相应区域的涂层,即可获得一个口令。刮刮卡成本低廉,使用方法简单,因此很多银行采用这种方法,如工商银行; 另一种是硬件形式的动态口令,即电子令牌,它采用专用硬件,每次可以用自带的密码生成芯片得到一个当前可用的一次性动态密码,交通银行等就采用这种方式。一般来讲,每个客户端的电子令牌都有一个唯一的密钥,该密钥同时存放在服务器端,每次认证时令牌与服务器分别根据同样的密钥,同样的随机数和同样的算法计算出认证时的动态口令,从而确保口令的一致性和认证的成功。因每次认证时,随机数的参数不同,所以每次产生的动态口令也不同。每次计算时参数的随机性保证了每次口令不可预测,以保证系统安全。
这些随机数是怎样产生的呢?动态口令随机数分为以下几类。
1. 口令为一个单向的前后相关的序列,系统只记录第N个口令。用户用第N—1个口令登录时,系统用单向算法算出第N个口令与自己保存的第N个口令匹配,以判断用户的合法性。由于N是有限的,用户登录N次后必须重新初始化口令序列。
2. 时间同步: 以用户登录时间作为随机因素。这种方式对双方的时间准确度要求较高,一般采取以分钟为时间单位的折中办法。在这种动态口令中,对时间误差的容忍可达±1分钟。
3. 事件同步: 通过某一特定的事件次序及相同的种子值作为输入,使用相同的算法运算出一致的密码,其运算机理决定了其整个工作流程同时钟无关,不受时钟的影响。它节省了用户每次输入挑战信息的麻烦,但当用户的挑战序列与服务器产生偏差后,需要重新同步。
4. 挑战/应答: 也叫异步认证方式。它比时间/事件同步方式操作相对烦琐,实现相对复杂,一般用于对安全性要求更高的场合,比如登录网上银行等,需要附加认证的情形。当用户需要访问系统时,远程认证服务器根据用户的电子令牌资料产生一个随机的数字串,即“挑战码”,用户将该数字串输入到电子令牌中。电子令牌利用内置的种子密钥和算法计算出相应的应答数(通常也是一个数字串)。
5. 用户将该应答数输入系统。 系统根据所保存的该用户相应电子令牌信息(种子密钥和算法)计算出应答数,并与用户输入的应答数进行比较。如果两者相同,则认证通过。由于每个电子令牌的种子密钥不同,因此不同用户的电子令牌对同样的挑战数计算出应答数也并不相同。只有用户持有指定的电子令牌才能计算出正确的应答数以通过系统认证。从而可以保证该用户是持有指定电子令牌的合法用户。
由于口令每次都变化,即使得到密码也没用,而且这种动态口令由专用算法生成,随机性高,不太容易被破解。传统的木马程序即使窃取到用户个人信息,拿去登录银行网页,也已经过期。因此,动态口令极大地提高了用户身份认证的安全性。
poptest老李谈动态口令原理的更多相关文章
- poptest老李谈分布式与集群 1
poptest老李谈分布式与集群 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:90882 ...
- POPTEST老李谈Debug和Release的区别(c#)
POPTEST老李谈Debug和Release的区别(c#) poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣 ...
- POPTEST老李谈JVM、JRE、JDK、java ee sdk with jdk区别
POPTEST老李谈JVM.JRE.JDK.java ee sdk with jdk区别 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等 ...
- poptest老李谈数据库优化总结
poptest老李谈数据库优化总结 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:9088 ...
- poptest老李谈jvm的GC
poptest老李谈jvm的GC poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:90882 ...
- POPTEST老李谈Debug和Release的区别(c#) 1
POPTEST老李谈Debug和Release的区别(c#) poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣 ...
- poptest老李谈分布式与集群
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-845052 ...
- poptest老李谈数据结构中深度优先和广度优先
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-845052 ...
- poptest老李谈Socket
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-845052 ...
随机推荐
- [MongoDB] - 数据的增删改操作
在前一篇中简单的介绍了一些基本操作命令,现在分别针对这些命令进行比较详细的说明: 一.数据插入 插入数据使用命令insert,insert的参数只有一个,就是要插入的文档BSON数据.MongoDB的 ...
- 酷派8702手机打开logcat
机器在出厂时将log的级别做了限制,方法是:拨号盘输入*20121220# -> 选择日志输出级别 -> 选择Java log level -> 选择LOGD即可.
- 如何利用docker快速构建MySQL主从复制环境
在学习MySQL的过程中,常常会测试各种参数的作用.这时候,就需要快速构建出MySQL实例,甚至主从. 考虑如下场景: 譬如我想测试mysqldump在指定--single-transaction参数 ...
- 从源码看集合ArrayList
可能大家都知道,java中的ArrayList类,是一个泛型集合类,可以存储指定类型的数据集合,也知道可以使用get(index)方法通过索引来获取数据,或者使用for each 遍历输出集合中的内容 ...
- springmvc 获取request 和 java路径分隔符 在windows 和linux 下自动判断的方法
//获取requert HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestA ...
- html 5 video
正项目中, 20秒 2mb左右在速度上可以接受, 但是最总怎样剪都不可以被游览器读取, 因为H.264 和一些我不清楚的. 为了简单解决这小问题, 请使用 http://easyhtml5video. ...
- Ansible 系列之 Ad-Hoc介绍及使用
Ad-Hoc 介绍 一.什么是ad-hoc 命令? ad-hoc 命令是一种可以快速输入的命令,而且不需要保存起来的命令.就相当于bash中的一句话shell.这也是一个好的地方,在学习ansible ...
- 【Unity编程】Unity中的欧拉旋转
欧拉角的定义 在写这篇博客之前,我搜索了网上很多关于欧拉角的定义,发现大部分引用自维基百科的定义,我这里也引述一下: 维基百科定义 莱昂哈德·欧拉用欧拉角来描述刚体在三维欧几里得空间的取向.对于任何参 ...
- 使用C#操作文件
读写文本文件 使用C#读写文本文件需要5个步骤: 1.创建文件流 2.创建阅读器或者写入器 3.执行读写操作 4.关闭阅读器或者写入器 5.关闭文件流 例 using System; using Sy ...
- Adapter基本用法
使用流程 graph LR A(新建适配器) -->B(绑定数据源) B-->C(设置适配器) 1. ArrayAdapter new ArrayAdapter<?>(cont ...