Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

两步验证(2FA)备忘 #59

Open
isayme opened this issue Dec 2, 2020 · 0 comments
Open

两步验证(2FA)备忘 #59

isayme opened this issue Dec 2, 2020 · 0 comments

Comments

@isayme
Copy link
Owner

isayme commented Dec 2, 2020

两步验证

两步验证, 对应的英文是 Two-factor Authentication(2FA).

典型两步验证URI

otpauth://totp/TEST:ququ@test.com?secret=IBED6ZJDF4UWST3YKM3DK2ZQHFUDQZZSIRFD6L2FMF3FEN2DINZQ&issuer=Google

其中:
totp 表示使用的算法是 TOTP (Time-based One-time Password), 它是基于时间的一次性密码生成算法.
TEST:ququ@test.com 是账户信息, 会显示在两步验证App上, 方便用户辨识是哪个账号.
secret 是密钥信息, base32 编码, 会在服务商服务端及两步验证App分别保存.
issuer 是服务商, 会显示在两步验证App上, 方便用户辨识对应编码来源服务商.

常见问题

验证码是否可以重复使用?

可以.

验证码每30秒刷新一次, 此验证码 30秒内都有效.

两步验证App(如Google Authenticator)验证码生成是否需要联网?

不需要.

验证码计算是在本地根据密钥和时间生成, 无需与远端服务交互.

两步验证安全风险

服务端需要保存密钥, 服务端代码或数据库泄露, 密钥可能被他人拿到;
客户端需要保存密钥, 使用非正规客户端或越狱(ROOT)有可能被其他App获取到密钥;

云同步客户端会不会导致密钥泄露?

不会.

具体可以参见 Authy 的文档: How Authy 2FA Backups Work.

备用验证码原理

为用户生成随机验证码, 当无法使用客户端生成验证码时(如手机丢失), 可以用备用验证码.

恢复码

当手机丢失时恢复码可以用来关闭账号的两步验证.

推荐的客户端App

不推荐 Google Authenticator, 因为其不支持云端同步.

参考资料

@isayme isayme changed the title 两步验证备忘 两步验证(2FA)备忘 Dec 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant