只提供有价值的信息,杜绝冗余。
什么是OTP
OTP是一个简短的单次使用代码——通常为4到8位数字——仅在极短的时间窗口内有效。它通过用户拥有的某种媒介进行交付,最常见的方式是短信,也可以通过WhatsApp、语音通话、闪呼、电子邮件,或由身份验证器应用在本地生成。由于其会过期且无法重复使用,因此OTP可以在那一刻证明用户确实控制着接收该代码的通道。
- 一次性使用的代码,仅限一次且有效期极短。
- 通过短信、WhatsApp、语音、闪呼、电子邮件或应用程序进行交付。
- 证明对所发送通道的控制力。
- 时效性与单次使用特性构成了“一次性”的核心。
什么是2FA
双因素认证需要来自不同类别的两种证明:您知道的内容(密码或PIN码)、您拥有的内容(手机、安全密钥或一个OTP)或您的生物特征(指纹或人脸)。其核心在于独立性——即使攻击者窃取了您的密码,仍然缺乏第二个因素。密码加上短信OTP是2FA;而两个密码则不是,因为它们属于同一种因素类型。
- 来自不同类别的双因素:所知 / 所有 / 所是。
- 密码+短信OTP = 2FA;密码+PIN = 非2FA。
- 独立性是至关重要的安全属性。
- MFA将2FA扩展为两个或更多因素。
它们之间的关系
在2FA设置中,OTP通常是“持有物”这一要素——但这只是众多选项之一,且并非最强的一种。短信OTP容易受到网络钓鱼、SIM交换和短信刷量欺诈的攻击,这也是为什么NIST SP 800-63B等指南将短信视为受限身份验证器,以及为什么会出现闪呼、静默网络认证、身份验证器App和硬件密钥等替代方案。您可以实现无需2FA的OTP(通过验证码进行单因素无密码登录),以及无需OTP的2FA(密码加指纹)。
- OTP通常是“必备”因素,但并非唯一因素。
- 短信OTP的强度弱于基于应用或硬件的因素。
- NIST SP 800-63B限制将短信作为身份验证器。
- OTP没有2FA以及2FA没有OTP的情况确实存在。
OTP与2FA概览
| OTP | 2FA | |
|---|---|---|
| 定义 | 一次性代码 | 双因素认证安全模型 |
| 范围 | 单一身份验证机制 | 结合两个因素的策略 |
| 示例 | 短信验证码、语音验证码、App验证码 | 密码+OTP,密码+指纹 |
| 交付 / 方式 | 短信、WhatsApp、语音、闪呼、App | 任何两种独立的验证因素类型 |
| 关系 | 可作为2FA中的第二因子 | 可以使用OTP,或不使用 |