定义
一次性密码(OTP)是仅对一次登录或一笔交易有效的短码,有效期通常为几分钟。企业通过短信、WhatsApp、语音或邮件发送,或在验证器应用中生成,用于验证用户是否掌控某个号码、邮箱或设备。
OTP 要么由双方共享的算法生成(HOTP,RFC 4226,基于计数器;TOTP,RFC 6238,基于时间,验证器应用采用此方式),要么由服务器随机生成并通过消息渠道送达。对于消息类 OTP,服务器会保存验证码的哈希值,并附带过期时间和尝试次数计数器。
最佳实践:4–8 位数字、有效期短、限制错误尝试次数、重发前设置冷却时间、验证码不可复用。消息要简短,验证码靠前放置,注明品牌,并提醒用户不要把验证码告诉他人。OTP 消息中切勿夹带营销内容。
渠道选择很重要。短信几乎可触达所有手机;WhatsApp 身份验证模板在 Android 上支持复制验证码、一键填充和零点击自动填充;语音 OTP 可触达固话以及无法阅读屏幕的用户。许多企业采用渠道回退,例如先 WhatsApp,再短信,最后语音。
OTP 接口是短信泵(SMS pumping,即人为推高流量)攻击的目标。请按手机号、IP 和设备限速,限制不提供服务的目的国家,并监控验证码被实际输入的比例。
OmniChannels.ai 通过短信、WhatsApp 身份验证模板(一键、零点击和复制验证码)以及语音发送 OTP。
示例
您的 Acme 验证码是 482917,5 分钟内有效。请勿向任何人透露。