设备和成员
bae 没有账号。设备的身份是它为自己生成并保存在操作系统钥匙串中的密钥对;资料库通过密钥识别设备。添加设备意味着一个已有设备以密码学方式为新设备背书,中间没有任何第三方。
两扇不同的门,面向两种不同情况:
- 加入:新设备由已有该资料库的设备批准。用它添加你的手机,或其他人的设备。
- 恢复:你自己的新设备或重装后的设备使用恢复码直接从云端主目录恢复资料库。不需要批准者。
在新设备上选择 Join a library。它会显示一个短码,同时也显示为 QR:这是加入请求,包含设备的公钥和一个可以读出来核对的指纹。
在已经拥有该资料库的设备上,所有者打开 Settings、Devices、Add a device,然后扫描或粘贴该请求。bae 会显示正在加入设备的指纹;确认它与新设备显示的内容一致。批准会生成邀请码:把它交回新设备(扫描 QR 或粘贴),新设备就会下载资料库并开始同步。
握手背后做了这些事:批准设备授予新设备访问云端主目录的权限(消费者云会把文件夹共享给新设备的账号;S3 邀请会嵌入凭据),并把资料库的加密密钥封装给新设备的公钥。该邀请对任何其他设备都无效。详情见身份和成员资格。
Settings、Devices 会列出每个成员:指纹、角色,以及哪一个是本设备。创建资料库的设备是 owner;它批准的设备以 member 身份加入。两者都能读写资料库;只有 owner 能批准和移除设备。
owner 可以移除任何成员。移除不只是关门:资料库的加密密钥会被轮换,被移除的设备永远不会收到新密钥。它已经复制的内容仍会保留,数据无法追回,但资料库从那一刻起写入的所有内容对它都不可读。
恢复码是你自己资料库的持有者密钥:云端主目录坐标加加密密钥,放在一个字符串里。Settings 中的 Show recovery code 会显示它;把它存放在安全位置,比如密码管理器。在新设备上用该码执行 Restore from cloud,即可重建资料库,不需要批准者。
在 Apple 平台上,该码也会自动保存在 iCloud Keychain 中,因此登录你 Apple ID 的新 Mac 或 iPhone 可以点一下完成恢复。
持有码的人就持有资料库,所以要像对待密钥一样对待它。
Lock Library 会从设备钥匙串中移除加密密钥。资料库仍在磁盘上,但不可读,直到有人再次输入密钥;bae 会先用已存指纹校验它,再接受它。适用于会带出家门的笔记本电脑。
iOS 和 Android 也完全按这种方式加入和恢复;这就是它们的整个初始流程。手机也可以移除本设备上的资料库副本(Settings,remove from this device),这会删除本地文件,不会触碰云端内容。