docs(roadmap): add Future Ideas — TOTP 2FA for the public dashboard
Record TOTP (RFC 6238) as a deferred hardening idea for the now public-facing Web dashboard: second factor on the single-admin login, with CLI-only password reset and a CLI TOTP reset/recovery path that works even if the recovery codes are lost (no lock-out dead end). Not M2.5, not scheduled — parked under a new Future Ideas section.
This commit is contained in:
@@ -148,3 +148,23 @@
|
|||||||
|
|
||||||
- 移动端是这一阶段最远期、最不确定的部分。
|
- 移动端是这一阶段最远期、最不确定的部分。
|
||||||
- token 主要是移动端的前置条件;Web 端 React 用现有 session cookie 即可,不需要为它提前引入 token。
|
- token 主要是移动端的前置条件;Web 端 React 用现有 session cookie 即可,不需要为它提前引入 token。
|
||||||
|
|
||||||
|
## Future Ideas(暂不排期,想到先记下)
|
||||||
|
|
||||||
|
> 这里收集**还没排进里程碑**的想法。不是承诺、也没有先后顺序;想做时再从这里捞出来细化成 `docs/design/` 的任务卡。**明确不开 M2.5**——下列条目一律先躺在 Future Ideas,之后再说。
|
||||||
|
|
||||||
|
### TOTP 二次验证(Dashboard 加固)
|
||||||
|
|
||||||
|
**动机**:M2 之后多了一个 Web Dashboard。它虽有单 admin 密码保护,但**大概率会暴露在公网**上,只靠密码这一层不够。给登录再叠一层 **TOTP(基于时间的一次性密码,RFC 6238)** 作为第二因子,做纵深防御。
|
||||||
|
|
||||||
|
**范围(粗略,待细化)**:
|
||||||
|
|
||||||
|
- 在现有单 admin(Argon2 + server-side session)登录之上,叠加 TOTP 第二步:密码校验通过后再验 6 位动态码,通过才发 session cookie。
|
||||||
|
- 首次启用时生成 TOTP secret,给出可导入 Authenticator 的二维码 / 可手输密钥;同时生成一组一次性**恢复码(recovery codes)**。
|
||||||
|
|
||||||
|
**运维 / 命令行要求(关键,实现时必须满足)**:
|
||||||
|
|
||||||
|
1. **忘记密码**:不需要任何 Web 端“找回密码”流程——直接在命令行里重置 admin 密码即可(沿用现有 CLI 思路)。
|
||||||
|
2. **TOTP 重置 / 恢复**:必须提供**命令行重置入口**。要覆盖最坏情况——**连恢复码(restore key)都丢了**,也能纯靠 CLI 把 TOTP 关掉 / 重新发放新的 secret,从而恢复登录。即:**CLI 是不依赖任何已存恢复凭据的最终逃生通道**,不能出现“密钥丢了就彻底锁死”的死角。
|
||||||
|
|
||||||
|
**先不做**:本条仅记入 Future Ideas,不进 M2.5、不排期;之后再细化为 design 任务卡。
|
||||||
|
|||||||
Reference in New Issue
Block a user