最安全的 2FA 认证器:在斯诺登时代,我为什么选 Aegis(而不是 Google / Authy)
TL;DR
- 短信 2FA 在 2025 年已经被主流安全机构视为“尽量不要用”。([TypingDNA Blog][1])
- 闭源 App(Google Authenticator / Authy 等)方便,但云同步和闭源设计都增加了“看不见的信任成本”。([Malwarebytes][2])
- 在 Android 平台的 TOTP 类认证器里,如果你要在“斯诺登级别威胁模型”下尽量降低被监控和被拖库的风险,Aegis Authenticator 是目前最平衡的一条路:开源、离线、本地强加密、备份做得好。([GitHub][3])
目录
- 斯诺登之后:我们真正面对的威胁模型
- 常见 2FA 方式安全等级速查
- 为什么是 Aegis:架构与安全设计拆解
- Aegis vs Ente Auth vs 2FAS vs Google/Authy
- Aegis 实战使用指南(安装→迁移→备份)
- 2FA 安全最佳实践:密码、备份与设备安全
- 常见故障排除:时间不准、密码忘了、多设备同步
- 总结:给不同人群的行动建议
- 延伸阅读: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 方案至少应该:
- 开源可审计:任何人都可以查看、编译和审计代码,避免“黑箱 + 后门猜想”。
- 本地强加密:令牌(TOTP/HOTP 秘钥)在设备上以强加密形式存储,攻击者拿到数据库也无法直接还原。
- 尽量离线:不依赖网络传输令牌数据,减少被监控系统(比如 XKeyscore)采集的面。
- 不强依赖云厂商:即便某个服务商宕机、倒闭或被强制配合,也不影响你访问自己的 2FA。
- 备份策略不会“打回原形”:不能为了“好备份”又把密钥明文丢回云端。
这也是本文后面推荐 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 核心差异一览
| 维度 | Aegis | Ente Auth | 2FAS | Google Authenticator | Authy |
|---|---|---|---|---|---|
| 架构 | 本地离线 | 云同步 + E2EE | 本地 + 可选云 | 本地 + 账号同步(非 E2EE) | 云同步 |
| 开源 | ✅ 完全开源 | ✅ 开源客户端 & 协议 | ✅ 开源 | ❌ 闭源 | ❌ 闭源 |
| 平台 | 仅 Android | Android / 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 安装与来源选择
首选顺序:
-
Google Play
- 优点:自动更新、验证流程成熟;
- 地址:在商店中搜索
Aegis Authenticator,开发者为 Beem Development。([Google Play][10])
-
GitHub Releases
- 适合不装 Google 套件的机器;
- 地址:https://github.com/beemdevelopment/Aegis/releases ([GitHub][3])
- GitHub APK 与 Play 使用同一签名密钥,可互相覆盖安装。([GitHub][3])
-
F-Droid
- 完全 FOSS 生态;
- 由 F-Droid 从源码重编译,使用不同签名,因此无法直接覆盖 Play/GitHub 版本。([f-droid.org][9])
建议:
- 大多数用户:Play 版本足够好;
- 不想依赖 Google 服务:选 GitHub 或 F-Droid,但要记得自己关注更新。
5.2 第一次启动:先把“锁”焊牢
-
设置主密码
-
第一次打开 Aegis,会提示你设置解锁密码;
-
建议:
- 长度 ≥ 12 字符;
- 不要和任何网站密码重复;
- 直接用密码管理器生成一串随机密码。
-
-
开启生物识别解锁(可选但推荐)
- 在设置中开启指纹 / 面容解锁;
- 实现上是通过 Android Keystore 存储密钥,不会把你的指纹模板给 Aegis 自己。([GitHub][3])
-
立刻做一次加密备份
- 在“设置 → 备份”里导出一个 加密备份文件;
- 为这个备份设置一个单独的强密码;
- 把文件放到:加密 U 盘 / NAS / 另一个安全设备。
5.3 把旧的 2FA 迁移进来
一条硬规则:每迁移完一个重要账号,立刻确认登录一次,确保没问题再删旧 App。
典型迁移路径:
-
从 Google Authenticator 迁移
-
如果它支持导出二维码 / 文件:
- 在 Aegis 中选择“导入 → Google Authenticator”;
- 扫描导出的二维码或选择文件。([f-droid.org][9])
-
如果不支持:
- 登录具体网站(如 GitHub),进入安全设置;
- 手动停用旧 2FA,再重新扫描二维码添加到 Aegis。
-
-
从 Authy、2FAS、andOTP 等迁移
- 大多支持导出加密或明文备份;
- 按 Aegis 导入向导的说明选择对应格式即可。([f-droid.org][9])
-
从 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 来说,一个相对稳妥的组合:
- 手机本地的 vault(加密);
- 加密 U 盘上的加密备份;
- 用 Cryptomator/VeraCrypt 再加一层加密后,上传到云盘的备份。
核心是:即便任何一个云厂商被攻破,对方拿到的也是“你二次加密后的文件”。
6.3 设备层安全别忽略
再强的 Aegis,也挡不住“手机被人直接拿走 + 没有锁屏密码”的场景。至少做到:
- 启用系统级全盘加密(Android 6+ 通常默认开启);
- 锁屏使用强密码/长 PIN,不要只用图案解锁;
- 定期系统更新,及时打补丁;
- 尽量不要随手 Root 主力机(Root 会极大提升恶意 App 权限上限);
- 不装来路不明的 APK,认证器这类 App 尽量从官方渠道获取。
七、常见故障排除:时间不准、密码忘了、多设备同步
Q1:Aegis 里的验证码总是“无效”?
TOTP 完全依赖精确时间,设备时间偏几秒都可能导致失败:([Google Play][10])
检查步骤:
-
在系统设置中打开“自动设置时间 / 时区”;
-
确认时区正确(尤其是旅行回来后);
-
重启手机和 App 再试;
-
仍不行的话:
- 重新扫一次该网站的二维码;
- 检查位数(6/8)、周期(一般 30 秒)是否与网站要求一致。
Q2:我忘了 Aegis 解锁密码,咋办?
很残酷,但这是安全设计的一部分:没有万能后门。([GitHub][3])
你能做的只有:
-
如果之前做过 加密备份,且记得备份密码:
- 在新安装的 Aegis 里导入备份;
-
如果有明文备份 / 打印出的恢复码:
- 手动重新添加每个服务的 2FA;
-
如果完全没有任何备份:
- 只能逐个网站走“2FA 恢复流程”(找客服、上传身份证明、填写申诉表…)。
所以务必在最开始就:
- 把解锁密码放进密码管理器;
- 做好加密备份并测试一次恢复流程。
Q3:Aegis 可以多设备自动同步吗?
不可以,且这是刻意的设计选择。([f-droid.org][9])
如果你确实想在多部 Android 设备上用同一套令牌:
- 在主设备上定期导出加密备份;
- 用安全方式传到第二部设备(U 盘/局域网/加密云盘等);
- 在第二部设备上导入备份;
- 日后如果两边都频繁变更,建议只保留一个“主副本”,减少冲突。
如果你更看重“多设备无缝同步”,可以考虑:
- 使用 Ente Auth 或 2FAS 作为“便利优先”的方案;
- 同时把最重要几项账号(邮箱、金融、密码库登录等)保留在 Aegis 上做一份 纯本地高安全副本。
八、总结:给不同人群的行动建议
你可以把这篇文章当成一个“选型分支树”:
-
如果你只是普通用户:
- 先把所有支持 2FA 的网站开启 2FA;
- 能用 App 就别用短信,哪怕是 Google Authenticator 也好过只用短信;([staysafeonline.org][14])
- 有精力的话,再考虑迁移到 Aegis / 2FAS 等开源 App。
-
如果你是开发 / 运维 / 安全部门:
-
对管理后台、云平台、CI 等高价值目标:
- 优先使用 硬件密钥 / Passkey;([网络安全和基础设施安全局][13])
- 仅在实在不支持时,退回到 TOTP;
-
为个人账号选一个“主力认证器”(比如 Aegis 或 Ente),并定期做演练:模拟设备丢失、备份损坏时的恢复流程。
-
-
如果你的威胁模型里包含“国家级对手 / 敏感身份”:
-
几乎所有情况下,短信 2FA 都应该退出舞台;([TypingDNA Blog][1])
-
对 TOTP 认证器的要求不再只是“好用”,而是:
- 无网络权限;
- 开源可审计;
- 本地强加密 + 可验证的安全设计文档。
-
在 Android 生态里,Aegis 很好地满足了这些条件。
-
换句话说:
- Aegis:安全优先 / 零信任云 / Android 用户——首选;
- Ente / 2FAS:多平台同步 + 依旧很安全——现实生活的“甜点区”;
- 短信 2FA:只作为没有其他选项时的“最后兜底”,而不是日常主力。