动态密码原理

时间:2022-02-12 17:07:05

    最近刚接手了一个安全认证项目。其中涉及了很多安全认证手段,如动态密码,CA证书,USBKEY,指纹等等。这次简单地介绍一下动态密码的原理。

 

什么是动态口令牌?
动态口令牌是一种内置电源、密码生成芯片和显示屏、根据专门的算法每隔一定时间自动更新动态口令的专用硬件。基于该动态密码技术的系统又称一次一密(OTP)系统,即用户的身份验证密码是变化的,密码在使用过一次后就失效,下次登录时的密码是完全不同的新密码。作为一种重要的双因素认证工具,动态口令牌被广泛地运用于安全认证领域。如网易的将军令,中国银行的E-TOKEN
动态口令牌有哪些优点?
动态口令牌的优点集中体现在不仅非常安全,而且使用非常方便。动态口令又称一次性密码,一般是每60秒随机更新一次,其优点在于一个口令在认证过程中只使用一次,下次认证时则更换使用另一个口令,使得不法分子难以仿冒合法用户的身份,用户也不需要去记忆密码。动态口令牌的使用十分简单。

原理

动态密码的密码其实不是随机的,而是由规律的。当下动态密码分为两类,时间性和事件性。何为时间性动态密码?该类令牌产出动态密码是以时间为参数的,而事件性一般以使用次数为参数的。我们以时间性动态为主要说明对象。整个验证的过程如下:

1.动态密码令牌产生动态密码 以时间和种子为参数,进行迭代,得出动态密码,这里的时间一般是秒数。每个时间性动态密码令牌中会内置一个时钟芯片。

2.服务器校验动态密码。 服务器读取系统时间加上种子,以相同的迭代方法得出动态密码,然后双方进行比对。

讲到这边,可能有所怀疑难道令牌的时间和服务器的时间一定会一致吗?我的答案肯定是不一致的。那怎么能检验的过去呢?原来很简单,服务器校验是是在一个时间区间里校验的,比如现在是12:00,服务器会生成11:55-12:05中所有的动态密码,然后和令牌产生的动态密码比对,这样不就解决了时间不一致的问题了。另外服务器会把令牌和服务器相差的时间记录下来,下次检验的会先把这个偏移值记录下来,以减少动态密码迭代次数,这样就完成了另外一个比较重要的功能,偏移值自动调整。

      动态密码的原理很简单吧,呵呵,我现在正在把几家重要厂家的动态密码集成到认证系统中,掌握了原理,集成那是相当的简单。