什么是时间型一次性密码?
时间型一次性密码(TOTP)是一种临时密码,由使用当前时间作为认证因子之一的算法生成。该密码通常用于双因素认证(2FA),作为具有时效性的第二重认证因素。
为什么TOTP很重要?
TOTP提供额外的账户安全保障。即使用户的传统密码被盗或泄露,攻击者也无法在TOTP快速过期前获得账户访问权限。
TOTP如何工作?
双因素认证是验证用户身份的常用方法,基于两个条件进行认证:用户已知的信息和用户拥有的设备。例如,当用户使用用户名和密码登录银行账户时,系统会通过短信或电子邮件发送随机代码,要求用户在登录前输入该代码。用户名和密码是用户已知的,而随机代码则发送到用户拥有的设备上。
TOTP通常在30或60秒后过期。
用户可通过以下方式接收时间型一次性密码:
- 在小型屏幕上显示密码的硬件安全令牌
- 移动认证应用(如Google Authenticator)
- 从中央服务器发送的短信
- 从中央服务器发送的电子邮件
- 从中央服务器发送的语音消息
使用移动认证应用或硬件安全令牌时,TOTP可离线生成,这对于网络访问受限的用户身份验证非常理想。
时间型与非时间型OTP有何区别?
时间型算法使用时间(结合共享密钥或令牌)生成密码。非时间型算法从种子值开始,使用哈希函数生成密码——初始密码生成后,前一个密码将作为输入来生成下一个密码。
TOTP是互联网工程任务组(IETF)的批准标准(RFC 6238)。其他OTP标准包括S/KEY一次性密码系统(RFC 1760)、一次性密码系统(RFC 2289)和基于HMAC的一次性密码算法(RFC 4226)。