资讯动态

Ente Auth 离线模式安全使用指南:本地加密存储、自动备份与恢复实战

发布时间:2026/9/10 17:04:50 来源:尧图企业网站定制
Ente Auth 离线模式安全使用指南本地加密存储、自动备份与恢复实战【免费下载链接】ente End-to-end encrypted cloud for everything.项目地址: https://gitcode.com/GitHub_Trending/en/ente导读Ente AuthEnte 身份验证器应用支持不注册账号、不登录 Ente 服务器即可使用选择Use without backups不使用备份进入离线模式后所有 TOTP 验证码仅保存在当前设备上不会同步到云端也无法从 Ente 服务器恢复。本篇指南基于官方文档 offline-mode.md 并结合 mobile/apps/auth 客户端源码系统讲解离线模式下验证码的存储原理、为什么设备迁移与系统备份不可作为恢复手段、以及在设备或操作系统变更前必须执行的备份与导出方案帮助你避免因设备重置、系统重装或凭据丢失而永久遗失所有验证码。离线模式不使用账号的本地存储在 Ente Auth 首次使用时你可以选择Use without backups不使用备份直接进入离线模式。这一入口的含义在源码测试中亦有体现例如 import_success_test.dart 中在导入成功后断言界面上不再出现 Use without backups 文案说明该选项仅出现在未登录、且尚无本地数据的初始状态。进入离线模式后需要明确以下几点关键事实验证码只存在于当前设备不写入 Ente 云端数据库因此任何云同步、多端互备能力均不可用Ente 服务器无法为你恢复数据因为没有账号与云端副本找回验证码只能依赖设备本地或你自己保存的备份/导出文件删除应用或清除应用数据即等于丢失验证码除非你提前做了下文所述的本地备份或加密导出。从源码结构看离线模式与账号登录态密切相关本地备份服务在初始化时会检查Configuration.instance.isLoggedIn()以及是否选择了离线模式hasOptedForOfflineMode见 local_backup_service.dart。这也印证了文档的核心提示离线模式下的数据生命周期完全由设备和本地备份策略决定。离线存储的工作原理设备安全存储保护的本地保险库离线模式下验证码存放在本地加密保险库中。官方文档明确指出本地保险库使用一个由设备安全存储secure storage保护的密钥进行加密——例如操作系统的 keychainiOS/macOS、keyringLinux、credential store / secure storage serviceAndroid 及桌面平台。这意味着加密链路为本地数据库密文 ← 加密密钥 ← 设备安全存储不可导出因此如果设备安全存储中的这把密钥变得不可用例如系统凭据被重置、设备解锁方式变更、跨设备迁移后密钥未随行那么Ente 仅凭本地数据库的密文也无法恢复离线保险库。源码中同样可以看到应用将备份密码等敏感凭据写入系统级安全存储的痕迹例如LocalBackupService.init会在离线模式下清理残留的备份密码_clearBackupPassword调用Configuration.instance.clearBackupPassword()见 local_backup_service.dart并在用户退出登录SignedOutEvent时同步清理。为什么设备迁移和系统备份不能当作恢复手段文档特别强调了两个“不支持”的恢复途径设备间传输device transfer迁移工具一般只搬运应用数据文件不会或无法搬运设备安全存储中受硬件/系统保护的密钥操作系统备份OS backups即使备份中包含了保险库文件恢复出来的密钥在新的系统环境下可能因签名、硬件绑定或系统状态差异而无法使用。简言之保险库密文 缺失的密钥 无法解密。这也是文档要求你在任何设备或系统变动前主动创建加密导出或本地备份的根本原因。在设备或系统变更之前必做的准备工作如果你正在离线模式下使用 Ente Auth在发生以下任一情况之前必须先完成备份重置系统凭据如重设 PIN/密码、重置 keychain/keyring重装操作系统更换设备transferring devices恢复设备备份restoring a device backup其他重大系统变更。操作前请确认三件事确认你知道备份密码——备份或导出文件本身是加密的密码一旦遗忘文件等同于无用数据把备份/导出文件存放到独立位置——必须放在变更后仍可访问的地方如另一台设备、U 盘、自托管存储等不能只放在将被重装/重置的同一设备上顺带核验一遍密码与文件完整性——建议导出后立即在另一处环境尝试读取一次验证密码正确、文件未损坏。应用锁App lock不是恢复密码一个常见误区把“应用锁”当成验证码的恢复密码。文档明确澄清应用锁App lock只保护应用 UI 的访问——防止他人在你的设备上打开 App 查看验证码它不会对已存储的 Auth 数据重新加密——因此不构成恢复口令也无法在你丢失设备后帮助你解密保险库或导出文件。不要指望用应用锁的 PIN/生物识别去解锁备份文件。所有具备恢复能力的凭据都应当是你在创建备份/导出时单独设置的备份密码。备份你的验证码本地自动备份与加密导出这是离线模式下最核心的实操环节。文档给出的路径为Settings Data Local backup本地备份与 Data 设置中的导出功能。以下分别展开并结合源码给出详细行为说明。方案一开启本地自动备份Local backup进入Settings Data Local backup对应页面实现位于 local_backup_settings_page.dart。该页面提供如下设置项设置项说明Automatic backups自动备份开关Toggle。开启后每次打开 App 时每天自动创建一份本地备份Set backup password / Update backup password设置或更新备份密码。密码未配置时无法开启备份见下文流程Set backup folder设置备份文件夹选择备份文件的保存位置页面上会显示当前路径Backup now立即备份手动触发一次备份用于在自动备份周期之外主动保存自动备份的具体行为可由源码确认local_backup_service.dart 及字符串资源每日一次LocalBackupService以lastBackupDay为键记录上次备份日期每次打开 App 时若当天尚未备份则执行一次见 strings_en.arb 中localBackupDailyManualCopy的描述Creates one local backup per day when you open the app最多保留 5 份_maxBackups 5超出后旧备份会被轮换清理同一条字符串资源Backups are retained up to 5 files手动备份点击 Backup now 通过triggerAutomaticBackup(isManual: true)立即执行适合在自动周期前主动保存。开启自动备份的完整流程见 local_backup_experience.dart先确保已配置备份密码_ensurePasswordConfigured→ 再选择备份位置_ensureBackupLocationSelected→ 写入isAutoBackupEnabled偏好 → 立即触发一次自动备份。其中 Android 平台要求必须存在可用的备份目录noDefaultBackupFolder提示而 iOS/macOS 上则会校验安全书签security bookmark是否仍有效——如果书签缺失例如系统变更导致App 会要求你重新选择备份文件夹后再继续见同文件 第 183-210 行。这也再次印证了“系统变更会破坏本地恢复能力”的文档结论变更前请确保备份文件已经导出到外部可访问的位置。方案二创建加密导出Encrypted export除自动备份外你还可以从 Data 设置中创建导出文件data_settings_page.dart 中的 Export 入口具体实现见 export_widget.dart。导出提供三种格式加密导出EncryptedJSON推荐方式。导出前要求输入密码至少 4 个字符随后使用基于密码派生的密钥加密全部验证码数据生成一份带版本号、KDF 参数和密文的EnteAuthExportJSON 文件。从 export_widget.dart 可见加密细节使用随机盐salt与 Argon2 类 KDF 派生密钥包含memLimit、opsLimit参数再用CryptoUtil.encryptData加密明文数据最终一并写入 JSON。恢复时通过导入功能输入同一密码即可解密见 encrypted_ente_import.dart 中的_decryptExportData纯文本导出Plain textTXT导出前会弹出风险警告exportWarningDesc确认后生成包含验证码明文数据的文本文件适合导入其他认证器或应急阅读但明文文件必须自己妥善保管HTML 导出Plain HTML与 TXT 类似的明文格式以可读 HTML 页面呈现 OTP 数据。加密导出的恢复能力不依赖设备安全存储——只要记住密码并保有 JSON 文件就可以在任何设备上恢复。因此对离线模式用户而言加密导出是跨越设备/系统变更的最可靠恢复手段。恢复路径从备份或导出文件导入虽然离线模式无法云端恢复但备份与导出文件可以反向导入 Ente Auth本地备份通常用于同一设备上删除 App 后重新安装、或需要回滚到某天备份的场景App 会按天保留最多 5 份加密导出 JSON通过 Data 设置中的导入功能Import选择 Ente 导出文件并输入密码解密导入可用于跨设备迁移或系统重装后的恢复此外还支持从 Aegis、andOTP、Bitwarden、LastPass、OTP Auth、Google Authenticator 等其他认证器导入见 import 目录可据此建立自己的迁移方案。安全实践小结综合官方文档与源码实现离线模式用户的正确姿势可归纳为选择离线模式前想清楚验证码只在本机删除 App 即丢失日常开启本地自动备份Settings Data Local backup配好密码、选好目录App 每天自动备份一份最多保留 5 份系统/设备变更前创建加密导出用 Data 设置中的 Export 生成带密码的 JSON 文件并把它放到变更后可访问的独立位置牢记备份密码密码遗忘 备份作废应用锁 PIN 不能代替备份密码变更后立即验证恢复在新环境导入导出文件或从备份恢复确认密码正确、数据完整后再清除旧设备数据。遵循以上步骤即可在完全不使用 Ente 账号的前提下安全、可恢复地长期使用 Ente Auth 离线模式。【免费下载链接】ente End-to-end encrypted cloud for everything.项目地址: https://gitcode.com/GitHub_Trending/en/ente创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价