RSA令牌动态口令生成原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RSA令牌动态口令生成原理相关的知识,希望对你有一定的参考价值。

RSA是一种国际上通用的非对称算法,主要是提供双因素认证功能。即把密码拆分成两部分,一部分是用户设置的固定密码,另外一部分来自每个用户发放的可显示数字的硬件。该硬件基于时间、设备号和种子数计算出一个动态密码。固定密码加动态密码才构成整个认证密码。

关于动态口令生成方式的简要说明

? ? ? ? 为解决静态口令安全性的问题,在90年代出现了动态口令技术,到目前为止,该技术的应用成果和大体情况如下:

? ? ? ? 动态口令技术主要分两种: 同步口令技术→异步口令技术→挑战应答
? ? ? ? 同步口令技术中又分为: 基于时间的同步口令 ?基于事件的同步口令
其主要的技术比较如下:

? ? ? ? 时间同步:基于令牌和服务器的时间同步,通过运算来生成一致的动态口令,基于时间同步的令牌,一般更新率为60S,每60S产生一个新口令,但由于其同步的基础是国际标准时间,则要求其服务器能够十分精确的保持正确的时钟,同时对其令牌的晶振频率有严格的要求,从而降低系统失去同步的几率,从另一方面,基于时间同步的令牌在每次进行认证时,服务器端将会检测令牌的时钟偏移量,相应不断的微调自己的时间记录,从而保证了令牌和服务器的同步,确保日常的使用,但由于令牌的工作环境不同,在磁场,高温,高压,震荡,入水等情况下易发生时钟脉冲的不确定偏移和损坏。故对于时间同步的设备进行较好的保护是十分必要的,对于失去时间同步的令牌,目前可以通过增大偏移量的技术(前后10分钟)来进行远程同步,确保其能够继续使用,降低对应用的影响,但对于超出默认(共20分钟)的时间同步令牌,将无法继续使用或进行远程同步,必须返厂或送回服务器端另行处理。同样,对于基于时间同步的服务器,应较好地保护其系统时钟,不要随意更改,以免发生同步问题,从而影响全部基于此服务器进行认证的令牌。

? ? ? ? 事件同步:基于事件同步的令牌,其原理是通过某一特定的事件次序及相同的种子值作为输入,在DES算法中运算出一致的密码,其运算机理决定了其整个工作流程同时钟无关,不受时钟的影响,令牌中不存在时间脉冲晶振,但由于其算法的一致性,其口令是预先可知的,通过令牌,你可以预先知道今后的多个密码,故当令牌遗失且没有使用PIN码对令牌进行保护时,存在非法登陆的风险,故使用事件同步的令牌,对PIN码的保护是十分必要的。同样,基于事件同步的令牌同样存在失去同步的风险,例如用户多次无目的的生成口令等,对于令牌的失步,事件同步的服务器使用增大偏移量的方式进行再同步,其服务器端会自动向后推算一定次数的密码,来同步令牌和服务器,当失步情况经非常严重,大范围超出正常范围时,通过连续输入两次令牌计算出的密码,服务器将在较大的范围内进行令牌同步,一般情况下,令牌同步所需的次数不会超过3次。但在极端情况下,不排出失去同步的可能性,例如电力耗尽,在更换电池时操作失误等。此时,令牌仍可通过手工输入由管理员生成的一组序列值来实现远程同步,而无需寄回服务器端重新同步。
异步口令技术:

? ? ? ? 而对于异步令牌,由于在令牌和服务器之间除相同的算法外没有需要进行同步的条件,故能够有效的解决令牌失步的问题,降低对应用的影响,其另外一个好处是,在网络传输过程中没有出现密码的传输,哪怕是动态密码。从另一个方面,极大的增加了系统的安全性。异步口令使用的缺点主要是在使用时,用户需多一个输入挑战值的步骤,对于操作人员,增加了复杂度,故在应用时,将根据用户应用的敏感程度和对安全的要求程度来选择密码的生成方式。

以上是关于RSA令牌动态口令生成原理的主要内容,如果未能解决你的问题,请参考以下文章

双因素身份认证动态口令技术原理及优势

黄聪:OTP动态密码_Java代码实现

一种生成动态口令的方法

麒麟堡垒机动态口令使用手册

使用google身份验证器实现动态口令验证

OTP动态口令之Java实现双重认证