主密码机制:Android Keystore 加密的核心
2.0 版本的结构性变化
官方备份文档(GitHub freeotp-android 仓库 BACKUP.md)的核心内容:
FreeOTP 2.0+ 把令牌密钥迁入 Android Keystore。这是单向操作,按设计让密钥无法被提取。升级时用户必须设置主密码,存于 Android Keystore,用于加密令牌数据。恢复操作永远会要求输入主密码。
拆解这段话
- Keystore 是什么:Android 系统级的安全硬件区(多数设备有独立安全芯片),存进去的密钥连应用自己都取不出来,只能"交给它算"。
- 单向迁移:从 1.x 升到 2.x 后回不去——旧版"密钥明文可导出"的能力被主动废除。
- 主密码的角色:备份文件用它加密;恢复时它是唯一钥匙。
为什么忘了主密码就真的没了
主密码不存云端、没有"忘记密码"邮件重置、客服也帮不了你——因为设计上没有任何一方知道你的主密码。这是与商业云同步产品的根本区别:FreeOTP 用"没有后门"换来了"没有后门"。
实操建议
- 设置当天把主密码写进你的密码管理器(Bitwarden、KeePass 之类)。
- 别与重要网站密码复用。
- 升级 1.x 前先想清楚:升级强制设置主密码,且老设备数据迁移是单向的——升级前确认旧数据可以承受(或先做手动备份)。
主密码 ≠ 网站密码
主密码只管 FreeOTP 自己的备份加密,与任何网站账号无关。弄混的典型事故:把主密码当成 Google 账号密码去恢复——两者毫无关系。
相关页面
- Keystore 底层机制:Android Keystore 安全机制
- 备份实操:Google 自动备份、手动备份
- 恢复流程:恢复备份