最安全的 2FA 认证器:在斯诺登时代,我为什么选 Aegis(而不是 Google / Authy)

TL;DR

  • 短信 2FA 在 2025 年已经被主流安全机构视为“尽量不要用”。([TypingDNA Blog][1])
  • 闭源 App(Google Authenticator / Authy 等)方便,但云同步和闭源设计都增加了“看不见的信任成本”。([Malwarebytes][2])
  • Android 平台的 TOTP 类认证器里,如果你要在“斯诺登级别威胁模型”下尽量降低被监控和被拖库的风险,Aegis Authenticator 是目前最平衡的一条路:开源、离线、本地强加密、备份做得好。([GitHub][3])

目录

  1. 斯诺登之后:我们真正面对的威胁模型
  2. 常见 2FA 方式安全等级速查
  3. 为什么是 Aegis:架构与安全设计拆解
  4. Aegis vs Ente Auth vs 2FAS vs Google/Authy
  5. Aegis 实战使用指南(安装→迁移→备份)
  6. 2FA 安全最佳实践:密码、备份与设备安全
  7. 常见故障排除:时间不准、密码忘了、多设备同步
  8. 总结:给不同人群的行动建议
  9. 延伸阅读:2FA 与无密码登录的新趋势

一、斯诺登之后:我们真正面对的威胁模型

2013 年起,斯诺登泄露的大量文件,首次让普通人看到“国家级监控”的下限:

  • PRISM(棱镜计划):从泄露的演示文稿和多家媒体报道看,NSA 可以基于美国法律,向包括 Google、Microsoft、Apple 在内的大型科技公司获取用户通信和存储数据,用于情报分析。([维基百科][4])
  • XKeyscore:一套可以对全球互联网流量进行搜索和分析的系统,被描述为可以收集“用户几乎所有在线操作”,包括邮件、聊天、浏览历史等。([卫报][5])
  • 通信基础设施漏洞:传统电信网络使用的 SS7 协议设计年代久远,存在可被滥用的结构性缺陷,允许攻击者在运营商网络层拦截短信和通话。([ITU][6])

再加上业界这些年的演进:

  • NIST 在最新版数字身份指南中,正式把短信 OTP 列为“受限制的认证要素”,说明其弱点必须被额外缓解。([TypingDNA Blog][1])
  • FBI 与 CISA 2024–2025 年的联合沟通中,已经明确提出:不要再把短信当成主要 2FA 手段,应优先考虑 App 或硬件密钥。([1password.com][7])

在这样的背景下,你的 2FA 需要满足什么?

在“假设对手是国家级监控 + 大型云服务商被攻破”的威胁模型下,一个“靠谱”的 2FA 方案至少应该:

  1. 开源可审计:任何人都可以查看、编译和审计代码,避免“黑箱 + 后门猜想”。
  2. 本地强加密:令牌(TOTP/HOTP 秘钥)在设备上以强加密形式存储,攻击者拿到数据库也无法直接还原。
  3. 尽量离线:不依赖网络传输令牌数据,减少被监控系统(比如 XKeyscore)采集的面。
  4. 不强依赖云厂商:即便某个服务商宕机、倒闭或被强制配合,也不影响你访问自己的 2FA。
  5. 备份策略不会“打回原形”:不能为了“好备份”又把密钥明文丢回云端。

这也是本文后面推荐 Aegis 的逻辑基线——我们先明确威胁模型,再选工具,而不是先选一个“顺眼的 App”,再倒推理由。


二、常见 2FA 方式安全等级速查

一句话版:

  • 短信 2FA:能不用就不用
  • 闭源 App + 云同步:普通人勉强够用,但不适合高威胁模型
  • 开源离线 App(如 Aegis):手机 TOTP 里的“天花板”
  • 硬件密钥 / Passkey:在支持的场景里优先开起来

2FA 方式安全对比表

方式安全等级(在严苛威胁模型下)主要风险点适合谁
短信(SMS)验证码⭐☆☆☆☆SS7 漏洞、SIM 换卡、短信明文、运营商/攻击者可拦截、易被钓鱼仅在没有其他选择时兜底使用
邮件验证码⭐⭐☆☆☆邮箱被攻破即一锅端;传输路径长,常被作为恢复入口不推荐作为唯一 2FA 手段
闭源 App
(Google Authenticator, Authy 等)
⭐⭐⭐☆☆云同步是否端到端加密不透明;数据留存在大厂服务器;应用逻辑无法审计一般用户 / 便利优先者
开源本地加密 App
(Aegis, 2FAS 等)
⭐⭐⭐⭐☆需要自己管好备份;设备被实物拿走仍有暴力破解风险安全优先、能接受一点折腾的人
硬件密钥 / Passkey⭐⭐⭐⭐⭐丢失设备可能导致恢复麻烦;支持网站还不完全高价值账号、技术用户必开

关于短信 2FA:为什么“尽量别用”

  • NIST 把短信 OTP 归为“受限制”的 PSTN 认证方式,要求组织必须额外提供更安全的替代方案,并准备迁移计划。([TypingDNA Blog][1])
  • 多份安全报告和实战案例都表明:大量账号劫持是通过短信 2FA 实现的,典型手段包括 SIM 换卡、运营商内部勾结、短信钓鱼和 SS7 拦截。([1password.com][7])

安全建议
能切到 App / 硬件密钥,就不要再继续依赖短信,尤其是金融、邮箱、云服务等「一旦丢了就很难救回」的账号。

关于闭源 2FA App:Google Authenticator / Authy

  • Google Authenticator 在 2023 年引入了账户云同步功能,但研究人员发现同步流量并非端到端加密,Google 后来表示“计划未来加入 E2EE”,但截至目前公开资料仍将其视为“服务器可见密钥”的模型。([Malwarebytes][2])
  • Authy(Twilio)在 2024 年一次数据事件中,约 3300 万个注册电话号码被泄露,虽然 TOTP 密钥本身仍加密存储,但说明其云端基础设施也会成为攻击目标。([waterstons.com][8])

在“轻度威胁模型”(担心的是脚本小子和撞库党)下,它们依然比“只用密码”强很多。但如果你担心的是“云服务被拖库 + 国家级监控”,那么把种子密钥托管给大公司本身就违背了“最小信任”原则

学术研究:大部分 2FA App 的备份都不太行

一篇 2023 年的 USENIX 安全会议论文分析了 Google Play 上 22 个主流 TOTP 应用,发现:

  • 很多 App 的备份方案会把信任重新交还给 短信、邮件或云存储
  • 有的 App 甚至在云端保存了足以恢复明文密钥的全部信息
  • 少数应用采用了正确的本地加密 + 安全备份设计——这类设计也是 Aegis 所采用的路线。

研究的核心结论是:“2FA 应用的安全上限,往往被它们‘为了好用’设计的备份功能拉低了。”


三、为什么是 Aegis:架构与安全设计拆解

定位一句话:Aegis 是 Android 平台上少数真正做到“开源 + 全本地强加密 + 不要网权限”的 2FA 认证器之一。

3.1 核心信息速览

  • 平台:Android 6.0+

  • 协议支持:HOTP(RFC 4226)、TOTP(RFC 6238),兼容所有“支持 Google Authenticator 的网站”。([f-droid.org][9])

  • 开源证书:GPL-3.0,代码在 GitHub 公开托管。([GitHub][3])

  • 加密设计

    • 保险库(vault)使用 AES-256-GCM 加密;
    • 解锁密码通过 scrypt 派生密钥;
    • 可使用 Android Keystore + 生物识别 解锁。([GitHub][3])
  • 权限:F-Droid 构建显示仅需要相机、生物识别、振动等权限,没有网络权限。([f-droid.org][9])

  • 分发渠道

    • GitHub Releases(原版 APK,和 Play 同签名)([GitHub][3])
    • Google Play 商店(自动更新,50 万+ 下载,4.8 分评价)([Google Play][10])
    • F-Droid(F-Droid 自行从源码重编译,使用自己的签名)([f-droid.org][9])

3.2 开源与透明度

在 GitHub 上,Aegis 仓库目前有 约 1.1 万颗 Star、千余次提交记录,维护活跃、社区体量可观:([GitHub][3])

  • 开发团队公开了专门的 安全设计文档(vault format & crypto design),详细说明了密钥生成、加密流程、槽位机制等实现细节。 ([GitHub][3])
  • F-Droid 会独立从源码构建并验证,进一步降低了“构建过程被植入后门”的风险。([f-droid.org][9])

这意味着:
任何人都可以复现构建过程,确认你安装的 APK 和公开源码一致,从工程上大幅压缩“暗箱操作”的空间。

3.3 加密与密钥管理:不会让“备份”变成软肋

根据官方安全设计说明,Aegis 的核心流程可以概括为:([GitHub][3])

用户密码 ──scrypt──► 派生密钥(Key Encryption Key)
    │
    ▼
解密主密钥(Master Key,随机 256 bit)
    │
    ▼
使用 AES-256-GCM 加密/解密所有 TOTP/HOTP 令牌数据

几个关键点:

  • 主密钥随机生成,仅存在本地
  • 用户密码永远不直接用于加密数据,而是通过 scrypt(N=32768, r=8, p=1) 派生密钥,提高暴力破解成本;([GitHub][3])
  • 生物识别解锁使用 Android Keystore 单独存放密钥槽位,不会把解锁密钥暴露给 App 本身;([GitHub][3])
  • 库文件可以导出为 加密备份(推荐)或明文 JSON(仅用于迁移 / 测试),默认选项鼓励安全路径。([f-droid.org][9])

关键区别在这里:
很多 2FA App 的备份是“传到别人服务器上帮你保管”;
Aegis 的备份是“把加密后的保险库文件交给你自己爱怎么存怎么存”。

3.4 离线优先 & 最小权限

从 F-Droid 和 Play 的信息可以看到:Aegis 的典型权限只有:([f-droid.org][9])

  • 使用摄像头(扫描二维码);
  • 使用生物识别硬件(指纹 / 面容);
  • 控制震动(时间条即将过期时提醒);
  • 无网络权限、无联系人、无位置权限。

这意味着:

  • 应用本身无法直接访问网络——即便有人在 App 里写了上传逻辑,Android 也不允许运行;
  • 你要把备份放到云端(比如 Nextcloud),需要通过系统文件选择器交给别的 App(如网盘客户端)去传输。([f-droid.org][9])

对“防大厂、防国家级对手”来说,“没有网络权限”本身就是一层很硬的物理隔离。

3.5 备份与迁移:既安全,又不太折磨

Aegis 支持几种典型备份 / 迁移方式:([f-droid.org][9])

  • 加密备份(推荐)

    • 整个 vault 导出为一个加密文件;
    • 需要单独设置一个备份密码(建议与解锁密码不同);
    • 可存到加密 U 盘、NAS、本机存储或云盘(通过别的 App)。
  • 明文导出

    • 导出为明文 JSON 或 GA 兼容格式,方便迁移到其他 App;
    • 仅适合在完全受信任的环境下短暂使用,用完务必删除。
  • 自动备份

    • 可以设定一个目录(包括支持 SAF 的云盘,如 Nextcloud);
    • 定期自动导出加密 vault 文件,避免忘记手动备份。

此外,Aegis 可以从大量其他应用导入数据(GA、Authy、2FAS、andOTP、Microsoft Authenticator、Steam 等)。([f-droid.org][9])

3.6 界面与隐私细节

从 F-Droid 截图和官方说明可以看到,Aegis 针对隐私做了不少细节:([f-droid.org][9])

  • Tap-to-reveal(点击显示):默认隐藏验证码,防止“有人路过就扫一眼”;
  • 屏幕截图保护:阻止系统层面的截屏与录屏;
  • 多视图布局:列表 / 平铺 / 紧凑视图,方便大量账号时快速定位;
  • 分组与搜索:支持“工作 / 个人 / 金融”等分组,一个条目可属于多个组,支持按名称/服务搜索;
  • 自动排序 & 拖拽排序:既可按字母排序,也可以完全自定义顺序。

四、Aegis vs Ente Auth vs 2FAS vs Google/Authy

这里重点不是“谁更酷”,而是谁更适合你的威胁模型 + 生活场景

4.1 核心差异一览

维度AegisEnte Auth2FASGoogle AuthenticatorAuthy
架构本地离线云同步 + E2EE本地 + 可选云本地 + 账号同步(非 E2EE)云同步
开源✅ 完全开源✅ 开源客户端 & 协议✅ 开源❌ 闭源❌ 闭源
平台仅 AndroidAndroid / iOS / Web / 桌面Android / iOS / 浏览器扩展Android / iOS多平台
备份本地/云任你选,文件级自动云同步,端到端加密本地 & 可选云备份Google 账号同步服务器托管
安全重点零网络权限、最小信任审计过的 E2EE 架构“够安全 + 多平台便利”生态整合 & 易用多设备 &云备份
更适合谁极致隐私控 / 高风险人群想要安全云同步想兼顾多平台和开源深度使用 Google 生态方便优先、不介意云托管

Ente Auth:安全云同步的代表

Ente 全家桶(照片、文件、2FA)采用端到端加密架构,并在 2023–2025 年持续接受安全公司 Cure53 与密码学团队审计,公开了报告和修复情况。([GitHub][11])

优点:

  • 多设备同步体验好(iOS + Android + 桌面可无缝协作);
  • 代码开源,加密协议透明;
  • 有团队共享、密码库等高级能力。

缺点(在“斯诺登威胁模型”下):

  • 元数据(如访问时间、使用频率)不可避免地会经过服务器;
  • 必须信任 Ente 服务器的运营和未来走向;
  • 架构更复杂,攻击面自然更大。

如果你的威胁模型是“普通黑客 / 钓鱼 / 网站被拖库”,Ente 这类 E2EE 云同步已经非常安全。
但如果你想的是“尽可能减少任何第三方可见的数据痕迹”,纯本地的 Aegis 还是更贴合。

2FAS:开源 + 多平台的折中选项

2FAS 是另一款开源认证器,提供 Android / iOS 客户端以及浏览器扩展,并支持可选的云备份和推送登录确认等功能。([App Store][12])

  • 对想要“尽量开源,又要 iOS + 浏览器扩展”的用户来说,是个不错的平衡点;
  • 但其可选云备份依旧引入了“服务器可见加密数据 + 元数据”的风险。

硬件密钥 & Passkey:能开就开

单从安全性看,支持 FIDO2 / WebAuthn 的 硬件密钥(如 YubiKey)和 Passkey,在防钓鱼、防中间人攻击上要强于 TOTP。CISA 也多次强调:真正的“防钓鱼 MFA”要优先选择 FIDO 类方案。([网络安全和基础设施安全局][13])

所以实际推荐是:

  • 能用 Passkey / 安全密钥:优先开
  • 不支持时,再退回到本地 TOTP(Aegis / 2FAS / Ente 等)。

五、Aegis 实战使用指南(安装→迁移→备份)

下面是面向普通用户的“实战流”,你可以直接照着做。

5.1 安装与来源选择

首选顺序:

  1. Google Play

    • 优点:自动更新、验证流程成熟;
    • 地址:在商店中搜索 Aegis Authenticator,开发者为 Beem Development。([Google Play][10])
  2. GitHub Releases

  3. F-Droid

    • 完全 FOSS 生态;
    • 由 F-Droid 从源码重编译,使用不同签名,因此无法直接覆盖 Play/GitHub 版本。([f-droid.org][9])

建议:

  • 大多数用户:Play 版本足够好;
  • 不想依赖 Google 服务:选 GitHub 或 F-Droid,但要记得自己关注更新。

5.2 第一次启动:先把“锁”焊牢

  1. 设置主密码

    • 第一次打开 Aegis,会提示你设置解锁密码;

    • 建议:

      • 长度 ≥ 12 字符;
      • 不要和任何网站密码重复;
      • 直接用密码管理器生成一串随机密码。
  2. 开启生物识别解锁(可选但推荐)

    • 在设置中开启指纹 / 面容解锁;
    • 实现上是通过 Android Keystore 存储密钥,不会把你的指纹模板给 Aegis 自己。([GitHub][3])
  3. 立刻做一次加密备份

    • 在“设置 → 备份”里导出一个 加密备份文件
    • 为这个备份设置一个单独的强密码
    • 把文件放到:加密 U 盘 / NAS / 另一个安全设备。

5.3 把旧的 2FA 迁移进来

一条硬规则:每迁移完一个重要账号,立刻确认登录一次,确保没问题再删旧 App。

典型迁移路径:

  1. 从 Google Authenticator 迁移

    • 如果它支持导出二维码 / 文件:

      • 在 Aegis 中选择“导入 → Google Authenticator”;
      • 扫描导出的二维码或选择文件。([f-droid.org][9])
    • 如果不支持:

      • 登录具体网站(如 GitHub),进入安全设置;
      • 手动停用旧 2FA,再重新扫描二维码添加到 Aegis。
  2. 从 Authy、2FAS、andOTP 等迁移

    • 大多支持导出加密或明文备份;
    • 按 Aegis 导入向导的说明选择对应格式即可。([f-droid.org][9])
  3. 从 Ente / 其他新 App 迁移

    • Ente、2FAS 等通常也提供导出/备份功能;
    • 原则同上:一定要在新 App 验证过登录成功后,再移除旧设备或旧 App

六、2FA 安全最佳实践:密码、备份与设备安全

6.1 解锁密码与备份密码怎么配

把 Aegis 当成一个“装满你全部网络身份的保险箱”,所以:

  • 解锁密码

    • 长度 ≥ 12;建议用密码管理器生成随机串;
    • 你每天都要输入,安全和可记忆性之间要平衡。
  • 备份密码

    • 可以更长(16–24+),不常输入;
    • 推荐:只存在密码管理器 + 纸质备份(保险箱/银行保管柜等)。

小技巧:

  • 用密码管理器(Bitwarden、KeePass、1Password 等)管理所有这些密码;
  • 不要用“生日 + 电影名”这种半随机密码——暴力破解面对的是 GPU/ASIC,不是“普通人”。

6.2 备份策略:尽量遵守 3-2-1 原则

3-2-1 规则:

  • 至少 3 份数据副本(含原件);
  • 存在 2 种不同介质(比如手机内存 + U 盘);
  • 其中至少 1 份在异地(防火灾、被盗等极端情况)。

对于 Aegis 来说,一个相对稳妥的组合:

  1. 手机本地的 vault(加密);
  2. 加密 U 盘上的加密备份;
  3. 用 Cryptomator/VeraCrypt 再加一层加密后,上传到云盘的备份。

核心是:即便任何一个云厂商被攻破,对方拿到的也是“你二次加密后的文件”。

6.3 设备层安全别忽略

再强的 Aegis,也挡不住“手机被人直接拿走 + 没有锁屏密码”的场景。至少做到:

  1. 启用系统级全盘加密(Android 6+ 通常默认开启);
  2. 锁屏使用强密码/长 PIN,不要只用图案解锁;
  3. 定期系统更新,及时打补丁;
  4. 尽量不要随手 Root 主力机(Root 会极大提升恶意 App 权限上限);
  5. 不装来路不明的 APK,认证器这类 App 尽量从官方渠道获取。

七、常见故障排除:时间不准、密码忘了、多设备同步

Q1:Aegis 里的验证码总是“无效”?

TOTP 完全依赖精确时间,设备时间偏几秒都可能导致失败:([Google Play][10])

检查步骤:

  1. 在系统设置中打开“自动设置时间 / 时区”;

  2. 确认时区正确(尤其是旅行回来后);

  3. 重启手机和 App 再试;

  4. 仍不行的话:

    • 重新扫一次该网站的二维码;
    • 检查位数(6/8)、周期(一般 30 秒)是否与网站要求一致。

Q2:我忘了 Aegis 解锁密码,咋办?

很残酷,但这是安全设计的一部分:没有万能后门。([GitHub][3])

你能做的只有:

  1. 如果之前做过 加密备份,且记得备份密码:

    • 在新安装的 Aegis 里导入备份;
  2. 如果有明文备份 / 打印出的恢复码:

    • 手动重新添加每个服务的 2FA;
  3. 如果完全没有任何备份:

    • 只能逐个网站走“2FA 恢复流程”(找客服、上传身份证明、填写申诉表…)。

所以务必在最开始就:

  • 把解锁密码放进密码管理器;
  • 做好加密备份并测试一次恢复流程。

Q3:Aegis 可以多设备自动同步吗?

不可以,且这是刻意的设计选择。([f-droid.org][9])

如果你确实想在多部 Android 设备上用同一套令牌:

  1. 在主设备上定期导出加密备份;
  2. 用安全方式传到第二部设备(U 盘/局域网/加密云盘等);
  3. 在第二部设备上导入备份;
  4. 日后如果两边都频繁变更,建议只保留一个“主副本”,减少冲突。

如果你更看重“多设备无缝同步”,可以考虑:

  • 使用 Ente Auth2FAS 作为“便利优先”的方案;
  • 同时把最重要几项账号(邮箱、金融、密码库登录等)保留在 Aegis 上做一份 纯本地高安全副本

八、总结:给不同人群的行动建议

你可以把这篇文章当成一个“选型分支树”:

  1. 如果你只是普通用户:

    • 先把所有支持 2FA 的网站开启 2FA;
    • 能用 App 就别用短信,哪怕是 Google Authenticator 也好过只用短信;([staysafeonline.org][14])
    • 有精力的话,再考虑迁移到 Aegis / 2FAS 等开源 App。
  2. 如果你是开发 / 运维 / 安全部门:

    • 对管理后台、云平台、CI 等高价值目标:

      • 优先使用 硬件密钥 / Passkey;([网络安全和基础设施安全局][13])
      • 仅在实在不支持时,退回到 TOTP;
    • 为个人账号选一个“主力认证器”(比如 Aegis 或 Ente),并定期做演练:模拟设备丢失、备份损坏时的恢复流程。

  3. 如果你的威胁模型里包含“国家级对手 / 敏感身份”:

    • 几乎所有情况下,短信 2FA 都应该退出舞台;([TypingDNA Blog][1])

    • 对 TOTP 认证器的要求不再只是“好用”,而是:

      • 无网络权限;
      • 开源可审计;
      • 本地强加密 + 可验证的安全设计文档。
    • 在 Android 生态里,Aegis 很好地满足了这些条件。

换句话说:

  • Aegis:安全优先 / 零信任云 / Android 用户——首选;
  • Ente / 2FAS:多平台同步 + 依旧很安全——现实生活的“甜点区”;
  • 短信 2FA:只作为没有其他选项时的“最后兜底”,而不是日常主力。