动态口令是一种一次性口令机制。用户无需记忆口令,也无需更改口令,口令通过用户持有的客户端期间生成。并基于一定的算法与服务端形成同步。从而可作为证明用户身份的依据。动态口令机制广泛用于身份鉴别场合。如Web系统登录,金融支付。
动态口令系统包括三部分:动态令牌,认证系统,密钥管理系统。动态令牌用于生成动态口令。认证系统用于验证动态口令的正确性,密钥管理系统用于动态令牌的密钥管理。动态口令系统的认证原理如图3-22所示。认证双方首先共享密钥,也称种子密钥。每次认证时用户端与认证服务提供端,分别根据共享的种子密钥,同意随即参数和相同的密码算法,生成用于认证的动态口令,并进行比对,以完成整个认证过程。通常,口令的比对由认证服务提供端完成。
动态口令的生成可以基于对成密码算法或密码杂凑算法。在具体运算时,种子密钥作为对称算法或者密码杂凑算法的输入,并同时向密码算法中输入事件因子,时间因子,和双方经协商获得的挑战因子等随机数。经密码运算后,对运算结果进行截位后生成动态口令,生成的动态口令一般位6到8位数字。
动态口令系统广泛用于用户名和口令方式实现身份鉴别的场景。如单点登录,操作系统登录和VPN登录。如图3-23,当用户登录内网VPN时,输入动态口令,VPN设备将改口零发送到动态口令认证系统进行验证,验证通过后才允许登录的用户访问内网资源。
标准和产品应用要点
动态口令的设计,检测和使用应遵循标准GM/T 0021-2012《动态口令密码应用技术规范》和GM/T 0061-2018《动态口令密码应用检测规范》的相关要求。
(1)应结合动态口令的生成,理解动态口令系统的密钥体系结构 (2)应注意种子密钥写入动态令牌过程的安全 (3)种子密钥应当以加密形式导入至认证系统中,并以密文存储。 (4)应注意种子密钥的使用安全 (5)令牌在使用时应采用PIN保护