安全与共享
实验性功能——尚未经过独立审查。 加密工作区目前以预览版形式提供。其加密设计尚未经过独立审查员的审计,在真实 Android 和 iOS 设备上进行双设备验证的证据仍在收集中。可以尝试使用,但请为任何不能承受丢失的内容保留备份,并且不要依赖它来保护你必须妥善保护的重要内容。
安全中心、重新加密与发布 Slice
安全与共享 分为两个层级。概览(第一层级)显示保护状态、完成迁移(当仍有明文残留时)、移除与加密云的连接,以及打开第二层级的两张卡片 — 设备与恢复 和 与他人共享。在第二层级,区域导航取代设置的左栏,分为 你的访问(设备、恢复)和 共享(成员、群组、切片、发布);‹ 概览 返回第一层级。可见操作仍然可用:操作会按需打开 Vault、连接、设置或解锁。撤销访问可启动可恢复的完整重新加密。Vault Slice 按 详细信息 → 内容 → 权限 → 复核 创建。外部发布使用独立的加密 Workspace;净化投影会删除私有属性、排除链接和嵌入。公开发布需要独立密码审查与真实 Android/iOS 双设备证据。
创建 Vault Slice 需要四个步骤:详细信息 → 内容 → 权限 → 复核。面向仓库之外的人发布切片在桌面端和手机端都可以完成:创建发布 会在独立文件夹中建立一个拥有自身密钥的独立加密工作区,邀请接收人 让某人进入,收回访问权 或 撤回发布 则将其收回——但有一条边界:收回并不能取回别人已经复制的内容,它只能让此后不再有新内容送达,并使下一个密钥世代对其不可读。净化过的发布还会移除私有 frontmatter 属性、使指向被排除笔记的链接失效,并略去被排除的嵌入;Google Drive、OneDrive、Nextcloud、Dropbox、WebDAV 或 S3 上的权限是额外保护,绝不能替代加密角色,Plainva 会显示所选服务商对应的建议,但不会替你更改任何共享设置。在手机上,路径同样从切片那一行开始:发布仓库切片 会创建它,随后它出现在 发布 下,带有模式、访问权、对象数量以及它的状态 — 已是最新、还有多少项更改待发布,或者带有原因的 刷新失败。点击该行会打开 接收人,其中有 邀请接收人 和 收回访问权;长按则提供 撤回发布。在完成独立密码学审查并取得真实的 Android/iOS 双设备验证之前,公开发布仍处于阻止状态。
净化过的发布按名称判断笔记的属性,只放行名单上的属性。因此,如果笔记开头的区块无法作为属性读取——两行 --- 之间是文本或列表,或者 YAML 有错误——这篇笔记就不会照原样发布,该区块中的任何内容也不会离开仓库。此时,桌面端向导的 确认 步骤和手机端的 预览 会指出这篇笔记,而不是显示数字;已经存在的发布则显示 刷新失败 并带有笔记的名称。在笔记文本中修正该区块,下一次刷新就会发布它。在此之前,刷新会停在这篇笔记上,其他笔记的更改要在它后面等待;已离开切片的笔记仍会照常撤回。完全副本的发布会照原样交出每篇笔记,不受影响。
最后检查:2026-10-21
Plainva让设备上的仓库保持为普通可读文件,并将云端副本保存为不透明的加密对象。连接云账户后,打开设置 → 仓库 → 安全与共享。
在手机上,该区域首先说明此仓库的真实状态:没有云连接时显示仅在本设备,普通云仓库显示此连接未加密——在那里点击设置加密,会走与桌面版相同的三个步骤(身份 → 恢复文件与代码 → 带可续传进度的激活);当连接中已有加密工作区时,则显示加入步骤。
设置
- 选择所有者名称和设备名称。密钥保存在系统密钥链中;若不可用,则由本地口令保护。
- 保存
.pvrecovery文件,并将显示的恢复代码单独保管 — 不要放在它所解锁的仓库里:Plainva 会拒绝该仓库内的位置,因为唯一无法重新生成的东西会正好在你不需要它的时候一直可读地留在那里。每个代码块都有清晰的组号;Plainva 会询问其中两组,在问题未回答前它们的值保持隐藏。显示它们是允许的,但那样会重新抽取一对新的组 — 复制并不能回答这里提出的问题。答对的那一组会重新显示出来。恢复需要两部分;它们都不含云凭据。 - 启用工作区。Plainva 发布签名策略,并将所有本地文件加密到
.pvws/。本地仓库仍可读取。如果这次运行中断 — 崩溃、断电、应用被关闭 — 下次的状态会显示设置未完成并提供继续设置:此时你的密钥早已保存,缺的只是转换的剩余部分。
迁移期间,旧明文会与.pvws/并存。只有状态为已保护后才能明确删除它;本地文件不会被删除。
日常使用
离线所做的更改会保留在持久队列中。每一次更改都带有签名;仅仅在远端删除永远不会删掉本地文件,但带签名的删除记录(墓碑)可以。离线状态下的并行编辑会保留为 .CONFLICT-… 副本。锁定会真正把工作区密钥从内存中抹除 — 签名密钥、解密密钥,以及本次会话取回的每一个组密钥;解锁则重新从系统钥匙串或本地密码短语中取回它们。
设备与恢复
要添加你自己的第二台设备,打开 设备与恢复 → 设备 → 添加另一台设备:Plainva 会显示一个与你自己的成员身份绑定的邀请码 — 它不会创建新成员。在第二台设备上粘贴它(安全与共享 → 加入),并在一台已加入的设备上批准;请先在两台设备上核对指纹。第二台设备等待期间会显示该请求还有多久有效,并像批准方一样要求核对指纹 — 只有双方都看,核对才有意义。若查询失败,会给出原因;此前连接中断看起来与“还没有人批准”完全一样。若要改为加入另一个人,请使用 与他人共享 → 成员 → 邀请他人(见下文)。被移除的设备无法签名新的有效更改。邀请和加入设备的配对请求也会显示为可扫描的 QR 码 — 在移动设备上,扫描邀请 会用摄像头扫码,而不是粘贴文本。
移除一台设备或一位成员有两种代价,手机上同样两种都提供。仅对今后生效 会立即结束对新密钥的访问,速度很快。全部重新加密 还会重写所有已加密的内容;这项工作耗时较长,会在后台继续进行,并在重启后自动恢复 — 运行期间会有一张专门的卡片显示进度条和对象计数,并在那里说明这次运行能挺过重启。两者都无法取回对方已经下载过的内容,因此在你做选择之前,提示会先说明这一点。你永远无法移除自己正在使用的这台设备:那会把这台设备锁在外面,只剩下恢复包可用。
在没有系统钥匙串可用的环境里 — 通常是没有桌面会话的 Linux 机器 — 这台设备的密钥由一个本地密码短语保护。你可以更改它:设备与恢复 → 设备 → 更改密码短语。即使工作区已解锁,Plainva 仍会询问当前的密码短语 — 一台无人看管却已解锁的机器,正是悄悄更改会把主人挡在门外的情形。只有这台设备上的密钥会被重新封装:你的恢复文件及其代码仍然有效,其他设备也不会察觉到任何变化。手机上没有这个按钮,因为那里没有什么可改 — Android 和 iOS 始终有密钥库,密码短语这种方式在那里永远用不上。
恢复位于 设备与恢复 → 恢复,分为 当前状态(是否已保存恢复包,以及工作区指纹)和 恢复流程。如果所有设备都丢失,请在那里选择 恢复访问,并用单独保存的代码打开 .pvrecovery 文件;Plainva 会创建一台新的所有者设备,可以撤销丢失的设备,且不会重写内容对象。更新恢复信息 通过双重签名的锚点链替换旧的恢复集。请再次将新文件和代码分开保存;此后旧集失效。 Plainva 会先询问,因为你手上的那份文件会在这一刻失效。
成员、角色与Slice
所有者和管理员可以邀请成员、创建组,并将角色限制到整个工作区、一个Slice或一个对象。Editor可读取和编辑,Commenter可读取和评论,Reader只能读取,Contributor只能在指定范围内提交新内容 — 由于 contributor 不能读取已有材料,却必须能继续写自己的笔记,他的写入权限覆盖他自己创建的一切。完整表格在成员区域的各角色的权限中展开;那里还有一句否则会在每个对话框里被重复一半的话:提供方处的权限是第二道锁,永远不是加密角色的替代品。Plainva 会在每次本地写盘前检查一次,并在签名前再检查一次,因此导入、恢复、自动化、AI 操作以及其他本地程序所做的更改同样受控。
所有权可以转移给另一位活跃成员。打开与他人共享 → 成员(手机上:Team 区域),在该成员旁边选择转移所有权。此操作需要当前的恢复文件及其代码,因为所有权与恢复集是一起转移的:Plainva 会先生成一份替代恢复包,只有在你保存它之后才会移交。请通过不同的渠道,把该文件和新代码分别交给新所有者——你会成为 Admin,此后只有对方是 Owner。
Slice 可以是文件夹、明确的对象选择,或基于路径、类型、标签和属性的动态规则。三者都是选出来的,而不是打出来的:组成员在列表里勾选,选择型 Slice 的笔记通过搜索勾选,动态规则则由字段、比较和值一行一行搭起来 — 标签和属性的候选来自预览用于比对的同一批对象,因此这里给出的选项确实可能匹配到东西。保存下来的原始值仍可在技术细节中查看并编辑;构建器无法表达的手写规则永远不会被悄悄改写。 文件夹 Slice 的文件夹可通过选择文件夹… 直接从 Vault 中选出——手机上也一样;想手动输入路径的仍然可以。
创建前请始终使用预览 — 手机上同样如此。只有显示出来的稳定对象 ID 会被实体化;同一个文件可以携带面向多个组的加密信封。无权访问的对象不会实体化,也不会进入搜索、图谱或预览。手机上可以创建文件夹型 Slice;选择型和动态规则留在桌面端,因为两者都需要一个覆盖全部对象的挑选界面。
如果某个 Slice 的定义已无法读取 — 手工改过的条目、坏掉的规则 — 那么它什么都不授予,即使通过它最后覆盖过的对象也不行。两端都会说明原因,而不是显示“0 个对象”:零读起来像一个空的共享,而不是一个坏掉的共享。而当你把笔记移出共享文件夹时,Plainva 会先询问,并列出失去访问权的组 — 自己的损失你立刻会察觉,别人的损失则永远不会。
评论、版本与隔离区
评论与建议——列、锚点、建议模式、总览和通知——在 评论与建议 页面中说明;它们在每个保险库中都可用。本页只保留与工作区相关的内容。
接收者将发布内容作为独立工作区打开。只读权限不允许发送反馈;评论权限允许添加批注,建议权限还允许在副本中提出修改。原文始终保持只读。桌面端和移动端执行相同的权限检查,并保留未发送的反馈以便重试。
反馈会显示在桌面端和移动端的原始笔记旁,按发布内容分组并显示接收者姓名。来自完整副本且可适用的建议可以通过正常的保存验证流程采纳或拒绝。决定记录在您自己仓库中的原文旁,不会向接收者发送回复。经过清理的副本以及无法可靠定位的段落不提供自动采纳。使用当前客户端创建的反馈在撤销接收者权限后仍可由所有者阅读。仅为已删除的接收者密钥加密的旧反馈不会被重新改写。如果本设备缺少某个发布内容的密钥,该部分仍不显示。
版本历史会读取加密的工作区修订记录,并将较旧的修订恢复为一次新的签名更改,或恢复为一份副本。
无效的远程产物会被逐一隔离到完整性与本地分支中。你可以重试、导出其密文、将经外部修复的产物标记为已修复,或有意忽略它。单个无效文件不会阻止其余有效同步的进行,仅凭远程缺失本身也绝不表示删除。本地程序在没有写入权限的情况下所做的更改,会以私有分支副本的形式保留下来。 本地分支——写入被拒绝时此设备保留的副本——带有 比较:与冲突相同的比较视图,可选择采用、两者保留或放弃;之后该分支会从列表中消失。手机上同样如此。
完整性与本地分叉说明了什么
当来自云端的工件未通过检查时,它会被隔离,其余内容的同步照常进行。卡片按原因和设备分组显示——附带条目数、解释,以及(如有)一行你可以做的。最常见的一组是链已中断:此设备期望来自另一设备的第 14 号变更,而云端是第 16 号——通常是同一设备的第二份状态(例如带独立存储的开发实例),或某台重新连接、从 1 重新计数的设备所致。重新检查会等待下一次同步,并告诉你还有什么未解决;通过检查的内容会自动从未解决中消失,并在全部下显示为已解决。导出诊断会写出包含原因、设备、序列号和时间的 JSON 文件(手机上复制到剪贴板),绝不包含内容。⋯ 之后是标记为已修复和忽略该组——忽略是最终的,该组的变更随之丢失。显示条目按工件列出云端键和技术原因。
正确移除加密仓库
当你不再需要某个加密仓库时,请在删除云端文件夹之前先在 Plainva 中停用它。顺序很重要:如果云端副本消失、而 Plainva 仍认为该连接是加密的,fail-closed 保护会让同步保持停止 — 这可防止攻击者剥离加密以强制明文。
- 打开 设置 → 仓库 → Security & Sharing。
- 在概览中,于 加密 卡片中选择 移除与加密云的连接。Plainva 会清除本设备上的本地密钥和工作区数据,并把该仓库重新作为普通仓库打开。(这是设备本地操作:云端副本仍然是加密的。若想把它变回明文,请使用 解除加密 —— 见下面一段。)
- 只有在此之后,如果你想删除,才在你的提供商处删除云端文件夹(
.pvws/对象)。Plainva 不会替你删除云端的加密对象。
在手机上,同样的步骤位于同一位置,只有一点不同:你需要通过输入仓库名称来确认。其余部分完全相同——本地密钥和工作区数据会被清除,仓库会重新作为普通仓库打开,云端的加密对象会保留,直到你自己删除它们为止。此操作无需联网即可完成,因为整个过程都不涉及远程连接。
若要改为彻底结束加密并将仓库作为普通文件保留在云端,请在同一 加密 卡片中选择 取消加密:Plainva 会将仓库重新作为普通云仓库打开,并把你所有的笔记作为明文文件重新上传到同一云端,然后停止加密。本地文件永远不会被更改,也不会删除任何内容;旧的加密 .pvws/ 文件夹会一直保留,直到你在提供商处将其删除(Plainva 无法替你移除那些不可变对象)。请先确认危险提示 — 笔记会以明文形式离开加密存储。 在手机上,同样的操作位于“安全”概览中 断开与加密云端的连接 旁边;明文上传会通过普通的同步队列继续进行——切换应用后也不会中断,并遵循移动数据规则——同时会有一张卡片显示还有多少文件在等待。
如果你已删除云端副本,而同步现在因“工作区缺失”或“清单缺失”错误而失败,修复方法是同样的重置,在错误出现的位置提供:
- 对于加密的工作区,打开 Security & Sharing。状态会显示一个带恢复提示的错误;在 加密 卡片中选择 移除与加密云的连接 以在本设备上重置该工作区,让同步重新工作。
- 对于内容加密的同步连接,点击同步状态以打开同步错误对话框,然后选择 重置加密。此按钮仅在远程加密数据缺失或无效时出现。
这两个操作都是明确且需确认的。Plainva 绝不会悄悄把加密连接降级为明文,而且这两个操作都不会删除任何本地文件。如果云端仍保存着你确实想要的加密内容,请改为取消 — 重置将会恢复明文同步。
使用清除应用数据移除仓库(Splash → 移除仓库 → 同时清除应用数据)也会清除这些加密标记,因此以这种方式移除的仓库不会留下任何可能阻止以后重新连接的内容。
Plainva 向设备申请什么
有两项功能需要操作系统的权限。两者都在首次按下时请求,不会在启动时请求,且两者都只写入你的保险库。
- 麦克风 —— 用于语音备忘(日志输入中的麦克风图标)。只有录音进行中 Plainva 才录音;丢弃会舍弃它,附加会把它作为文件写入附件文件夹。没有转写,没有上传,也没有任何服务在监听。如果你拒绝,按钮会说明,其余输入照常可用。
- 位置 —— 用于地点标记,它还额外有一个逐设备开关,默认关闭(设置 → 外观)。只有打开它按钮才会出现,只有按下它系统才会询问。写入的只有一行 ——
📍 52.5200, 13.4050—— 四位小数,约十一米。没有历史,没有地图,没有后台定位,也没有把坐标变成地名的在线服务。
摄像头和照片库一如以往:只在插入照片和扫描配对二维码时请求。这些权限都不会离开设备:它们产生的东西会成为你保险库中的一个文件或一行字 —— 而保险库是你的。
小组件可以显示什么
主屏幕上的小组件由另一个程序读取,任何看向屏幕的人都能看见,因此 Plainva 为它写下的内容刻意很少:标题、日期、时间、优先级和一个位置。绝不包含笔记正文,也绝不包含路径——被点按的行只有在应用内部才会被还原成它的笔记。
已锁定的加密工作区写入的是空的小组件,而不是一个由 Plainva 请求隐藏内容的小组件:一个从未包含标题的文件无法泄露它们。设置 → 启动与行为 → 小组件 中的两个开关按设备进一步收窄:关闭 在小组件中显示标题 只留下数量,关闭 在小组件中显示日程 只留下任务。