OTP 动态口令

为什么要用动态口令?

在对外网开放的后台管理系统中,使用静态口令进行身份验证可能会存在如下问题:

(1) 为了便于记忆,用户多选择有特征作为密码,所有静态口令相比动态口令而言,容易被猜测和破解;

(2) 黑客可以从网上或电话线上截获静态密码,如果是非加密方式传输,用户认证信息可被轻易获取;

(3) 内部工作人员可通过合法授权取得用户密码而非法使用;

  静态口令根本上不能确定用户的身份,其结果是,个人可以轻松地伪造一个假身份或者盗用一个已有使用者的身份,给企业造成巨大的经济和声誉损失。本文主要介绍并实现了一种动态口令(OTP)的实现方式。

什么是动态口令?

  动态口令(OTP,One-Time Password)又称一次性密码,是使用密码技术实现的在客户端和服务器之间通过共享秘密的一种认证技术,是一种强认证技术,是增强目前静态口令认证的一种非常方便技术手段,是一种重要的双因素认证技术,动态口令认证技术包括客户端用于生成口令产生器的,动态令牌,是一个硬件设备,和用于管理令牌及口令认证的后台动态口令认证系统组成。

一次性密码的工作方式

在基于OTP的身份验证方法中,用户的OTP应用程序和身份验证服务器依赖共享机密。使用哈希消息认证码(HMAC)算法和移动因子(例如基于时间的信息(TOTP)或事件计数器(HOTP))来生成一次性密码的值。OTP值具有分钟或第二个时间戳,以提高安全性。一次性密码可以通过多种渠道传递给用户,包括基于SMS的文本消息,电子邮件或端点上的专用应用程序。

长期以来,安全专业人员一直担心SMS消息欺骗和中间人(MITM)攻击可用来破坏依赖一次性密码的2FA系统。但是,美国国家标准技术研究院(NIST)宣布了计划弃用2FA和一次性密码使用SMS的计划,因为该方法容易受到各种攻击的攻击,这些攻击可能会破坏这些密码和代码。因此,考虑一次性部署密码的企业应该探索SMS之外的其他交付方式。

一次性密码的好处

一次性密码避免了IT管理员和安全经理面临密码安全性的常见陷阱。他们不必担心组合规则,已知的错误和弱密码,共享凭据或在多个帐户和系统上重复使用相同的密码。一次性密码的另一个优点是,它们会在几分钟内失效,这可以防止攻击者获取密码并再次使用它们。

OTP 的三种形式

OTP 从技术来分有三种形式, 时间同步、事件同步、挑战/应答。

(1) 时间同步

原理是基于 动态令牌和 动态口令验证服务器的时间比对,基于 时间同步的 令牌,一般每60秒产生一个新口令,要求服务器能够十分精确的保持正确的时钟,同时对其令牌的晶振频率有严格的要求,这种技术对应的终端是硬件令牌。

(2)事件同步

基于事件同步的令牌,其原理是通过某一特定的事件次序及相同的种子值作为输入,通过HASH算法中运算出一致的密码。

(3)挑战/应答

常用于的网上业务,在网站/应答上输入 服务端下发的 挑战码, 动态令牌输入该挑战码,通过内置的算法上生成一个6/8位的随机数字,口令一次有效,这种技术目前应用最为普遍,包括刮刮卡、短信密码、动态令牌也有挑战/应答形式。