2FA与TOTP原理及实现
参考资料动态令牌是怎么生成的?(OTP & TOTP 简单介绍) - 知乎 (zhihu.com)
2FA & TOTP 测试 (moyuscript.github.io)
概念了解2FA全称 Two Factor Authorization,双重因素认证,在身份认证时需要两个条件,比如一个密码,一个短信验证码这种。这种机制是为了防止密码泄露后不法人员盗用密码进行登录。只要符合需要双重认证才能登录的机制都可以算作双重认证,比如短信验证码,邮箱验证码,以及我最近了解到的TOTP。
TOTP全称 Time-based One-time Password,基于时间的一次性密码,顾名思义便是随当前时间变化的密码。以谷歌身份验证器为例,其界面长这个样子
其中的六位数变为基于时间生成的一次性密码,而后面的进度条则是当前密码的剩余生效时间。有意思的是,即使在断网的情况下,谷歌验证器仍然可以生成密钥,并且可以用于登录。
首先,为了让用户能够有足够的时间输入TOTP,要保证TOTP是有存活时间的,这就使得需要在一定时间范围内,使用当时的时间戳可以生成相同的密码,这一机制的实现主要是靠步 ...