Ente Locker 更新日志全解析:从 v1.0.3 到 v1.0.8 的关键功能演进与实现原理
【免费下载链接】ente💚 End-to-end encrypted cloud for everything.项目地址: https://gitcode.com/GitHub_Trending/en/ente
Ente Locker 是 Ente 生态中专为"家庭重要数字资产"设计的端到端加密存储应用,用于安全地存放、共享并传承护照、财务记录、账户凭据等敏感信息。本文以官方 Changelog 为骨架,逐条拆解 v1.0.3 至 v1.0.8 每个版本引入的核心能力——Legacy Kit 数字遗产恢复、集合链接分享、离线访问、账户删除流程改进等——并结合仓库内对应的功能文档与 Flutter 源码,说明每项变更背后的安全模型与实现方式。读完本文,你将完整掌握 Ente Locker 当前版本的功能全貌、每个新特性的操作路径,以及它们在开源仓库中的具体落点,便于自行验证与二次研究。
版本时间线与发布节奏
官方 Changelog 记录了 Locker 移动端近期的 4 个发布版本,发布时间跨度约 3 个月(2026 年 5 月至 8 月):
| 版本 | 发布时间 | 核心主题 |
|---|---|---|
| v1.0.8 (mobile) | 2026 年 8 月 | 账户删除流程改进、上传到 Uncategorized、Legacy 引导、新弹窗样式 |
| v1.0.6 (mobile) | 2026 年 6 月 | Bug 修复与稳定性改进 |
| v1.0.5 (mobile) | 2026 年 5 月 | 引入 Legacy Kit 数字遗产恢复 |
| v1.0.3 (mobile) | 2026 年 5 月 | 集合链接分享、本地离线使用 |
从节奏看,v1.0.3 与 v1.0.5 属于功能里程碑(分别在 5 月先后落地"分享/离线"与"数字遗产"两大能力),v1.0.6 与 v1.0.8 则是以修复打磨与体验完善为主的增量版本。Locker 官方文档在 docs/docs/locker/index.md 中同时维护了完整的入门指引与功能地图,Changelog 仅作精简摘要,因此下文将按版本逐条还原每个变更点的完整用法与底层原理。
v1.0.8:删除流程、Uncategorized 上传与 Legacy 引导
v1.0.8 是 2026 年 8 月发布的打磨版本,共包含 4 类明确变更,外加常规的 "Bug fixes and improvements"。
账户删除流程:更清晰的删除影响说明与确认
Changelog 指出该版本"更新了账户删除流程,提供更清晰的删除影响细节与确认"。这一改动直接对应仓库中的账户设置页面 mobile/apps/locker/lib/ui/settings/pages/account_settings_page.dart,其实现与 Ente 统一账户系统联动——Locker 与 Ente Photos、Ente Auth 共用同一套 Ente 账户,账户删除会同时影响整个账户体系(见 FAQ:Locker、Photos 和 Auth)。
结合官方 FAQ 可知删除相关的边界事实:
- Locker 数据与 Photos 数据使用同一 Ente 账户、但存储相互独立;
- 免费账户若长期处于无付费订阅的非活跃状态,12 个月后会收到多次邮件通知后被删除;若配置了 Legacy 可信联系人,还会通知这些联系人以便在删除前恢复账户;
- 账户删除是影响面很大的操作,v1.0.8 的改进重点在于让用户在下单前明确看到"删除后将丢失哪些数据、是否可恢复"等影响说明,并增加二次确认。
允许上传到 Uncategorized 集合
此前 Locker 的上传/创建流程要求条目必须归属于某个集合;v1.0.8 起允许直接将条目上传到Uncategorized(未分类)集合。
Uncategorized 是 Locker 自动创建的特殊集合,用于收纳尚未归类到任意自定义集合的条目。根据 Collections 文档,条目进入 Uncategorized 有两种典型场景:
- 创建或上传条目时未选择任何集合;
- 将条目从最后一个集合移除但保留条目本身。
Uncategorized 与普通集合存在两个关键差异点,理解后可避免误操作:
- 可与其他集合并存:一个条目可以同时处于 Uncategorized 和另一个集合中,添加到其他集合不会把它从 Uncategorized 移出;
- 可被显式选择:编辑条目时,Uncategorized 会与你的其他集合一起出现在集合选择器中,选中即保留在未分类,取消选中即移出。
这一改动消除了"必须预先建好集合才能上传"的摩擦,符合"先存放、后整理"的自然使用习惯。
为 Locker 新增 Legacy 设置引导
v1.0.8 新增了 Legacy 设置的引导提示(Legacy setup prompt)。在仓库中可找到对应的 UI 组件实现:mobile/apps/locker/lib/ui/components/legacy_setup_banner.dart,同时 home_page.dart 与 drawer_page.dart 中也包含 Legacy 相关入口。
该引导的作用是主动提示用户配置账户级数字遗产方案。Legacy 是 Locker 最具差异化的能力(官方文档称"没有其他加密存储应用提供此功能"),包含两条路径:
- 可信联系人(Trusted contacts):指定另一位 Ente 用户,在等待期后可帮助恢复账户;
- Legacy Kit(遗产套件):生成 3 张物理恢复表,任意 2 张即可在浏览器中发起账户恢复,协助者无需 Ente 账号。
详细机制见 Legacy 功能总览 与 Legacy 常见问题,v1.0.5 首次引入,v1.0.8 通过引导横幅提高新老用户的配置率。
底部弹窗(Bottom Sheet)切换新组件样式
最后一个功能变更属于 UI 体系升级:Locker 的底部弹窗改用 Ente 统一设计系统中的新组件样式。这与 Ente 多端(Photos、Auth、Locker)共享组件库的做法一致,目的是保证跨产品交互一致性。该变更为纯前端样式层改动,不影响数据模型与加密逻辑。
v1.0.5:Legacy Kit——基于 Shamir 2-of-3 秘密分享的数字遗产
v1.0.5 引入了 Locker 目前最核心的安全特性Legacy Kit。这是本文档中最值得深入的技术点,官方在 Legacy Kits 文档 中给出了完整说明,移动端实现位于 mobile/apps/locker/lib/services/legacy_kit.dart。
设计目标与安全模型
Legacy Kit 解决的是"账户继承/灾难恢复"场景:当账户所有者失去密码与恢复密钥、或不幸离世时,家人如何合法地拿回账户,同时防止任何单一个人或服务器滥用权限。
其核心安全模型由四条规则构成:
- 2-of-3 门限:每个 Kit 生成 3 张恢复表,任意 2 张即可发起恢复,单张表永远不够;
- Kit 密钥与账户恢复密钥分离:恢复表不包含账户恢复密钥(recovery key),无法直接用它们登录账户;它们只保存一个独立的 kit secret 分片;
- 本地重构:恢复时由浏览器在本地将 2 张表的分片组合还原出 kit secret,服务器永远看不到 kit secret、表内容或解密后的恢复密钥;
- 服务端调解且可撤销:恢复会话受服务器调解,等待期内账户所有者可阻止(block),并可删除 Kit 使表永久失效。
从源码结构看,legacy_kit.dart 承担了 Kit 的创建、管理、恢复会话状态等客户端逻辑,与 UI 层的 Legacy 页面、邮件通知、等待期状态机共同构成完整流程。
底层数学:Shamir 的 2-of-3 秘密分享
Legacy Kit 的秘密拆分基于Shamir 秘密分享(Shamir's Secret Sharing)的 2-of-3 方案。原理可概括为:把要保护的秘密看作二维坐标系中的一个点,用该点生成一条直线——直线上任意两个点都可以反推出整条直线并恢复秘密,但单独一个点无法确定唯一直线。对应到 Legacy Kit:
- 3 张恢复表各保存直线上一个不同的点(一份分片);
- 任意 2 张表的两点即可重构出秘密(kit secret);
- 单张表的信息量不足以恢复任何内容。
官方还指出,同一套 2-of-3 数学方案在仓库中另有独立落点:2of3 目录 提供了一个不依赖 Ente 账号、可对任意文本型秘密使用的独立 Web 应用;Legacy Kit 则是在此数学基础上叠加了"服务端调解 + 可撤销恢复流程"的账户级封装。
创建 Legacy Kit 的完整步骤
Kit 的创建与管理目前仅在Ente Locker 移动端提供,官方操作路径如下:
- 打开 Ente Locker;
- 打开 Locker 菜单;
- 点击Legacy;
- 进入Legacy kits;
- 点击Create legacy kit;
- 为 3 张恢复表命名;
- 选择恢复等待时间;
- 按提示完成身份认证;
- 下载、打印或分享这 3 张恢复表。
创建后建议将 3 张表分开存放,例如:一张留在家中、一张交给信任的家人、一张交给律师或放入其他安全场所。
恢复等待时间(Recovery wait time)
每个 Kit 只能选择一种等待时间,官方支持 5 档:
| 等待时间 | 适用场景 |
|---|---|
| Immediate(立即) | 自恢复(self-recovery),适合自己丢失访问权时快速取回 |
| 1 天 | 较短的延迟恢复 |
| 7 天(默认) | 继承场景的常用平衡点 |
| 15 天 | 更长的观察期 |
| 30 天 | 对未授权恢复的更强防护 |
两个需要特别注意的规则:等待时间在恢复发起时被"固化"(captured),之后修改只影响未来的恢复尝试;恢复进行中无法修改等待时间。Immediate 对自恢复友好,但给账户所有者留下的阻止窗口几乎为零,因此继承场景应选择更长的时间。
恢复流程:协助者不需要 Ente 账号
Legacy Kit 的一大设计亮点是协助者零门槛——不需要安装 Ente 应用,也不需要 Ente 账号,只需浏览器和任意 2 张表。官方 Web 端恢复步骤:
- 打开恢复表上打印的恢复 URL(Ente 云服务的表使用 legacy.ente.com;自托管或自定义部署的 URL 可能不同,以表上打印的为准);
- 添加同一 Kit 中的任意 2 张恢复表;
- 跟随浏览器恢复流程;
- 等待恢复尝试就绪(等待期结束);
- 为账户设置新密码。
恢复完成后,通过密码重置流程即可访问被恢复的 Ente 账户;在此过程中,恢复会话是受限(scoped)的,且 2FA 与 passkey 第二因素会被移除,使新密码可以正常登录(见 Legacy FAQ)。
管理、阻止与删除
在移动端进入Legacy → Legacy kits → 点击某个 Kit后,可执行以下管理操作:
- 重新下载恢复表;
- 修改恢复等待时间(无活跃恢复时);
- 删除 Kit;
- 阻止当前活跃的恢复尝试。
关键语义区分(这也是 FAQ 中反复强调的点):
- 阻止恢复(Block recovery):取消当前这次活跃的恢复尝试,但 Kit 本身仍然有效,持 2 张表的人之后可以再次发起;
- 删除 Kit(Delete kit):使这些恢复表对未来的恢复永久失效,同时阻止该 Kit 当前挂起的恢复尝试;
- 并发限制:每个 Kit 同时只允许一个活跃的恢复尝试。
另外存在配额限制:最多可创建 5 个未删除的 Legacy Kit,删除的 Kit 不再计入配额。
通知与审计
当有人用 Legacy Kit 发起恢复时:
- Ente 会向账户所有者发送recovery-started 邮件;
- Legacy 页面会显示活跃恢复警告;
- 恢复完成时也会发送邮件;
- 当前版本不会在"延迟恢复变为就绪"时单独发送邮件。
审计信息(使用的表编号、IP 地址、User-Agent 等)官方明确标注为"仅作提示(hints)",不能作为身份证明。
安全注意要点
官方在 Legacy Kits 文档 中给出了值得全文照录的安全清单:
- 同一 Kit 的 2 张表即可发起恢复,请务必分开存放;
- 表不包含账户恢复密钥,不能直接登录账户;
- 表名与存储的表负载(payload)均被加密,Ente 服务器无法读取;
- 打印出的表可能显示人类可读的表名,避免使用敏感命名;
- 所有者的恢复详情仅在恢复会话活跃期间可用;
- 恢复审计详情只是线索,不证明操作者身份;
- Legacy Kit 不建立可信联系人关系,也不会暂停非活跃账户删除;
- 当前不支持 Kit 昵称与 Verify kit 校验流程,Kit 标签基于 3 张表的名称;
- 如果账户恢复密钥发生变化,已有 Kit 在未来的版本中重新包裹(rewrap)或重建之前可能失效。
v1.0.3:集合链接分享与本地离线使用
v1.0.3 是 2026 年 5 月的功能版本,引入两项能力:以链接形式分享集合、离线保留条目。
以链接形式分享集合(Public Links)
"Share collections as a link"对应的是 Locker 的**公开链接(Public Links)**能力,完整说明见 Public Links 文档。
公开链接允许把单个条目或整个集合分享给任何没有 Ente 账号的人,接收方在浏览器中即可查看。它与"分享给 Ente 用户"是两条互补路径:后者需要对方是 Ente 用户、在应用内以端到端加密方式访问(见 Share Collections with Users);前者面向浏览器公开访问。
公开链接的工作原理:
- 生成包含解密密钥的唯一 URL;
- 任何持有链接的人都能在浏览器中查看内容;
- 密钥位于 URL 的 fragment(# 片段)中,绝不发送给 Ente 服务器——这是"链接本身携带解密能力"的典型设计,服务器只托管加密数据;
- 查看内容无需 Ente 账号。
操作路径:
- 分享单条目:长按条目 → 点击分享按钮 → 点击Share link;
- 分享整个集合:打开集合 → 点击分享按钮 → 点击Share link;
- 删除链接:长按条目(或打开集合)→ 分享按钮 →Delete link→ 确认,链接立即失效。
安全注意:任何持有链接的人都能查看内容,链接可被转发,因此用完后应及时删除链接;涉及敏感密码等内容的链接分享需格外谨慎(相关讨论见 Sharing FAQ)。
本地离线使用(Keep items locally for offline use)
"Keep items locally for offline use"意味着 Locker 支持将条目保留在本地设备上以便离线访问。从仓库源码看,Locker 的文件下载与本地存储相关逻辑位于 mobile/apps/locker/lib/services/db/locker_db.dart(本地数据库层)与 mobile/apps/locker/lib/services/files/download/file_url.dart(文件 URL 获取层),即"加密数据在本地落地 + 按需取用 URL"的实现结构。
由于加密内容始终以端到端加密形态存储,即使离线保留在本地,数据仍处于加密保护之下,这与此前 Locker 的"全部内容端到端加密后才离开设备"的总体安全模型一致(见 加密文档)。离线功能对经常出行、网络不稳定的用户尤为实用——重要证件扫描件在无网环境下也能随时查阅。
如何验证这些变更并跟进后续版本
由于 Locker 完全开源(与 Ente 其他产品一致),你可以直接在仓库中核对本文提到的每处实现:
- Legacy Kit 客户端核心逻辑:mobile/apps/locker/lib/services/legacy_kit.dart;
- Legacy 引导横幅组件:mobile/apps/locker/lib/ui/components/legacy_setup_banner.dart;
- 账户设置与删除流程:mobile/apps/locker/lib/ui/settings/pages/account_settings_page.dart;
- 本地数据库与离线文件逻辑:mobile/apps/locker/lib/services/db/locker_db.dart;
- 官方功能文档总入口:docs/docs/locker/index.md,其中 Changelog 位于 docs/docs/locker/changelog.md。
安装入口方面,Locker 支持 iOS(App Store)、Android(Play Store / F-Droid / GitHub Releases)与 Web 浏览器访问,具体渠道与 APK 签名校验方法见 安装指南。若需自行构建移动端,源码位于 mobile/apps/locker;Web 端对应 web/apps/locker。
总结:Locker 演进脉络一览
回看 v1.0.3 → v1.0.8 的四次发布,Ente Locker 的演进主线清晰可辨:
- 分享能力(v1.0.3):先打通面向非 Ente 用户的浏览器公开链接,与既有的"Ente 用户间加密共享"形成互补;
- 离线韧性(v1.0.3):让端到端加密数据在设备本地可用,强化移动场景可靠性;
- 数字遗产(v1.0.5):用 Shamir 2-of-3 秘密分享 + 服务端调解的可撤销恢复流程,奠定 Locker 区别于普通加密网盘的杀手级能力;
- 体验完善(v1.0.8):账户删除透明化、Uncategorized 上传去摩擦、Legacy 引导与新组件样式,把安全能力转化为易用体验。
截至 v1.0.8,Locker 的免费额度为 100 个条目 / 1GB 存储,付费(任一 Ente 订阅)自动提升至 1000 个条目 / 10GB,且 Locker 与 Photos 存储相互独立(详见 FAQ:定价与计划)。对于看重隐私、需要组织家庭重要文件并为未来做准备的用户而言,这套"加密存储 + 链接分享 + 离线访问 + 数字遗产"的组合已经形成了完整闭环。
【免费下载链接】ente💚 End-to-end encrypted cloud for everything.项目地址: https://gitcode.com/GitHub_Trending/en/ente
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考