2FAuth:一个简洁、自托管的双重身份验证管理工具

在日常使用各种在线服务时,双重身份验证(2FA)已成为保护账户安全的重要手段。但你是否也遇到过以下问题?

  • 手机上的 2FA 应用界面杂乱,所有账户一次性全部展示;
  • 手机丢失后,所有 2FA 账户无法恢复;
  • 使用电脑时还得掏出手机输入验证码;
  • 想要备份 2FA 数据却无从下手。

为了解决这些问题,2FAuth 应运而生。它是一款基于网页的双重身份验证管理工具,专为追求简洁、安全和自托管体验的用户设计。

2FAuth:一个简洁、自托管的双重身份验证管理工具插图

项目初衷

2FAuth 的开发者基于以下几个原因创建了这个项目:

  • 市面上大多数 2FA 应用界面一次性展示所有账户的动态码,界面拥挤且带有倒计时,令人焦虑;
  • 2FA 账户数据通常仅保存在手机中,一旦手机丢失,账户恢复困难;
  • 在桌面环境中频繁切换设备获取验证码体验不佳;
  • 开发者热爱编码,并倾向于使用自托管方案来掌控自己的数据。

主要功能

2FAuth 提供了一套完整的双重身份验证解决方案,支持多种添加和管理账户的方式:

  • 账户分组管理:将不同类别的账户按需分组,提升可读性和组织性;
  • 二维码扫描添加账户:通过摄像头扫描二维码,快速导入 2FA 账户;
  • 手动添加账户:无需二维码,通过表单自定义添加账户;
  • 账户编辑与管理:支持对已导入账户进行修改;
  • 支持多种认证协议
    • TOTP(基于时间的一次性密码)
    • HOTP(基于计数器的一次性密码)
    • Steam Guard(专为 Steam 用户优化)

目前,2FAuth 已完全支持英文和法语界面,如果你有兴趣帮助翻译其他语言,可以参与项目的开源贡献。

安全特性

作为一款管理敏感认证信息的工具,2FAuth 在安全性方面做了多项设计:

单用户设计

2FAuth 是为个人使用设计的单用户应用,你需要注册并登录后才能使用,但不支持多用户账户。

现代认证方式

你可以使用硬件安全密钥(如 YubiKey 或 Titan Security Key)进行登录,同时可以禁用传统的用户名/密码登录方式,提升账户安全性。

数据加密机制

所有敏感数据在数据库中均可加密存储,防止因数据库泄露导致信息外泄。加密功能默认关闭,但建议启用时备份 .env 文件中的 APP_KEY,以确保数据可恢复。

自动登出机制

为防止长时间保持登录状态带来的风险,2FAuth 支持在一段时间无操作后自动登出。该功能可配置,也可在复制验证码时触发登出,进一步保障安全。

RFC 合规性

2FAuth 严格遵循 RFC 4226(HOTP)和 RFC 6238(TOTP)标准,确保生成的动态码与主流服务兼容。该项目依赖 Spomky-Labs/OTPHP PHP 库实现 OTP 生成逻辑。

适合谁使用?

2FAuth 特别适合以下用户:

  • 希望自托管、掌控自己 2FA 数据的人;
  • 对界面简洁和使用体验有要求的用户;
  • 使用桌面电脑时希望减少手机依赖的用户;
  • 关注账户安全、希望使用硬件密钥进行认证的

评论