Ente Locker 集合共享指南与 Ente 用户端到端加密共享文档集合的完整实践【免费下载链接】ente End-to-end encrypted cloud for everything.项目地址: https://gitcode.com/GitHub_Trending/en/ente导读本文以 Ente Locker 的「Share with Ente users」功能为主线完整讲解如何将文档集合安全地共享给其他 Ente 用户从端到端加密的工作机制、逐步骤的共享/管理/接收操作到更新、撤销访问、删除集合等边界场景并结合仓库源码Web 前端共享服务、共享抽屉组件、服务端请求结构、Rust 密钥封装实现剖析其底层实现。读完本文你将掌握在 Ente Locker 中与家人或同事安全共享文档的标准做法并理解为什么共享内容对服务器和第三方始终不可见。共享的核心理念面向用户的集合共享Ente Locker 提供两类共享方式与 Ente 用户共享集合本文主题与 公共链接面向任意人的浏览器链接。当你要与另一名拥有 Ente 账户的用户例如家人、配偶或同事在 Locker 应用内共享集合时应使用前者。与公共链接不同「与用户共享」具备以下特征接收者在其自己的 Locker 应用中直接看到共享集合无需复制粘贴链接集合内容针对接收者的账户单独加密只有其设备能够解密共享关系可随时查看、撤销并支持接收者主动离开共享集合共享集合为只读只有所有者能添加或修改条目见 FAQ共享用户能否添加条目。[!IMPORTANT] 在 Locker 中共享的粒度是集合而非单个条目。共享单项请先将其加入一个集合或为该条目创建公共链接。端到端加密的共享原理根据官方 共享机制说明 与 加密文档当你把集合共享给另一位 Ente 用户时完整流程如下你的设备使用接收者的公钥加密集合的分享密钥只有接收者的设备能够解密这把密钥接收者在自己的 Locker 应用中收到共享集合Ente 的服务器始终接触不到解密后的内容。这背后的密钥体系是Locker 为每个集合生成独立的加密密钥Collection keys由此可以实现安全共享而不暴露你的主密钥——这是 加密机制 中强调的共享安全基石。所有共享信息包括分享关系本身均在加密范围内Locker 对条目标题、内容、上传文件、集合名称、元数据以及共享信息执行全量端到端加密。从源码层面可以进一步印证这一加密流程。Web 端共享服务 collection-sharing.ts 中shareCollection的实现依次完成四件事// 1. 从本地缓存读取集合记录并解密集合密钥 const collectionKey await decryptCollectionKey(collectionRecord); // 2. 根据邮箱获取接收者的公钥 const publicKey await getPublicKey(email); // 3. 用接收者公钥对集合密钥做 box seal非对称加密 const encryptedKey await boxSeal(collectionKey, publicKey); // 4. 将密文与共享关系提交到服务端 const res await fetch(await apiURL(/collections/share), { ... });请求体中携带collectionID、email、角色role: VIEWER以及encryptedKey。服务端一侧的请求模型 collection.go 中EncryptedKey字段带有binding:required约束说明服务端只负责保存这串已经用接收者公钥封装好的密文自身无法解读集合内容。因此可以总结服务端永远只会存储密文密钥解密只可能发生在接收者设备上这正是「Ente 的服务器永远无法访问解密内容」这一承诺的工程实现。共享一个集合逐步操作按照官方文档 share-with-users.md 与 sharing/index.md 的操作指引共享集合的标准步骤为打开要共享的集合点击共享按钮选择Share with Ente user输入对方的 Ente 邮箱地址点击Share。共享成功后集合中的全部条目都会被共享给该用户。若对方尚未使用 Locker可先引导其完成 安装与注册其邮箱必须是已注册的 Ente 账户。Web 端共享抽屉组件 LockerCollectionShareDrawer.tsx 揭示了输入邮箱时的一系列客户端校验与错误处理可作为排障参考邮箱格式校验使用EMAIL_PATTERN /^[^\s][^\s]\.[^\s]$/正则校验非法邮箱提示enterValidEmail不能共享给自己若邮箱与当前用户相同提示cannotShareWithYourself不能重复添加若该邮箱已在共享列表中提示viewerAlreadyHasAccess402 错误提示sharingRequiresPaidPlan共享功能需要付费计划支持404 错误提示viewerEmailNotOnEnte即该邮箱不是已注册的 Ente 账户。因此当共享失败时可以优先核对对方是否注册了 Ente 账户、当前账户是否满足共享的套餐要求、邮箱是否输入正确。共享单个条目Locker 不允许直接向其他 Ente 用户共享单个条目参见 FAQ能否共享单个条目。有两种替代方案加入集合再共享把该条目加入或新建一个集合然后将整个集合共享给目标用户创建公共链接为条目生成 公共链接任何持有链接的人无需 Ente 账户都可在浏览器中查看。方案一保留了端到端加密的私密性适合与特定用户私密共享方案二牺牲了隐私链接可被转发适合与不使用 Ente 的人分享。在 共享方式概览 的对比表中可以看到Locker 三类共享能力划分明确内容与 Ente 用户共享公共链接Ente Paste集合是是否条目否是否文本否否是其中文本可通过 Ente Paste 以一次性链接分享。管理共享集合查看与移除访问查看谁有访问权限打开共享集合点击共享按钮查看拥有访问权限的人员列表。Web 端实现中fetchCollectionSharees通过GET /collections/sharees?collectionID...拉取共享者列表见 collection-sharing.ts。共享抽屉会把「所有者」与「共享参与者」分组展示当前用户会被置顶排序参与者头像与显示名通过通讯录服务解析参见 LockerCollectionShareDrawer.tsx。移除某个用户的访问权限打开共享集合点击共享按钮点击该用户邮箱右侧的三个点菜单选择Remove access确认移除。对应后端调用为POST /collections/unshare携带collectionID与email前端在确认对话框中二次确认后执行collection-sharing.ts、LockerCollectionShareDrawer.tsx。根据 FAQ撤销访问的后果移除后对方立即失去查看能力共享集合会从对方的 Locker 中消失但公共链接不受影响需要单独删除。此外共享参与者也可以主动离开共享集合POST /collections/leave/{collectionID}这与移除访问是两条不同的路径。接收共享集合当别人向你共享集合时接收端体验如下见 share-with-users.md你会收到一条通知共享集合出现在你的Shared with me区域点击即可查看共享的条目。接收后你拥有的是只读访问共享集合仅所有者可以增改条目接收者无法添加或修改见 FAQviewer 能否编辑。共享内容的生命周期更新、删除与账户注销理解共享内容的后续行为有助于避免数据丢失或权限误解。以下是 共享 FAQ 中整理的边界场景更新共享条目与用户共享你更新条目后接收者下次打开时看到最新内容更新不会发送通知公共链接访问者打开链接时看到的是当前版本。删除共享集合你是所有者集合从所有共享用户的账户中移除他们失去访问权你是接收者只是将自己从共享集合中移出其他用户与所有者不受影响。删除共享集合时其中的条目与普通集合遵循相同规则可以选择保留条目或连同删除删除的条目进入回收站。所有者注销账户如果所有者删除自己的 Ente 账户其全部共享集合将对接收者不可访问。如需长期保留访问建议在注销前请所有者转移所有权对重要的共享条目提前创建自己的副本。与公共链接的对比如何选择在动手共享之前先明确两种方式的适用边界参见 sharing/index.md 与 public-links.md维度与 Ente 用户共享公共链接接收方是否需要 Ente 账户需要不需要查看方式Locker 应用内任意浏览器加密方式集合密钥用接收者公钥封装解密密钥内嵌于 URL 片段fragment服务器可见性只存密文密钥在 URL 片段中不会发送给服务器访问控制可逐个移除、可离开仅能整体删除链接典型场景家人、同事间的私密共享向不使用 Ente 的人分享关于公共链接的一个常见认知点是「公共链接是否端到端加密」内容在服务器上保持加密但由于解密密钥就写在链接里任何拿到完整链接的人都能解密查看见 FAQ公共链接加密。因此公共链接适合非敏感内容用完即删。安全建议与最佳实践结合 家庭设置指南 与 安全 FAQ给出以下实践建议按集合粒度规划共享为「家庭文件」「医疗」「应急信息」等建立独立集合再按成员逐个共享避免共享整个账户定期审查共享列表在共享抽屉中检查谁仍拥有访问权限及时移除不再需要的人不要在公共链接中放敏感信息密码、证件扫描件等敏感条目应使用「与用户共享」并仅在安全渠道传递删除不再使用的公共链接链接可被任意转发删除后立即失效共享集合对接收者是只读的如果需要共同维护文档接收者应在自己的账户中保存副本或自行建立集合。进一步阅读共享功能总览三种共享方式与适用范围对比公共链接面向非 Ente 用户的浏览器分享共享 FAQ共享加密、撤销访问、账户注销等边界场景加密机制Locker 的端到端加密与密钥体系集合集合的创建、组织与共享入口家庭设置指南面向家庭场景的完整共享与继承方案源码实现Web 共享服务、共享抽屉组件、服务端请求模型、Rust 密钥封装实现【免费下载链接】ente End-to-end encrypted cloud for everything.项目地址: https://gitcode.com/GitHub_Trending/en/ente创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考