剪贴板里可能装着一个登录验证码、一份已签字的合同,或者一句没写完的话,三者传出去的方式没有区别。在把内容发给另一台 Mac 之前,问一句它会去哪里、哪些设备能收到、事后又会留下什么,很合理。
Deskferry 给出的答案是:本地连接、管理员批准过的设备、加密传输,以及一份始终留在记录它的那台 Mac 上的历史记录库。下面六个部分逐一说明每一层保护,也点明它到哪里为止。
你的 Mac 直接对话,中间不经过云
局域网Wi-Fi / Ethernet
两台 Mac 摆在同一张桌子上。把一段文字从一台搬到另一台,本不该顺带在某个云服务上留下第三份拷贝。受支持的剪贴板内容和选中的文件,会在能互相到达的本地网络里,直接在已批准的 Mac 之间传递。
连接走的是本地 Wi-Fi 或以太网。分享的内容不经过 Deskferry 的开发者服务器,也没有什么 Deskferry 云剪贴板供设备事后去下载。接收方的 Mac,是通过自己与发送方之间的连接拿到内容的。用协议的说法,这是点对点(P2P)的局域网传输,路径里没有 Deskferry 的云端中转。
这在日常里换来的是少一处要打理的地方——少一个云端资料库要惦记着清理,没有上传的存档要事后翻找,也不用在第一次复制之前先登录某个服务账户。同一台笔记本和台式机一天来回传二十次的时候,这一点最能体现出来。
网络能不能互通是个实打实的条件,不是走过场,该踩坑的时候还是会踩。一个隔离客户端的访客网络会直接挡住连接,哪怕两台 Mac 显示的是同一个 Wi-Fi 名字。家里和公司之间也没有桥梁可搭。单台 Mac 上的本机历史不受这些影响。
分享不靠一个共用的登录账号
已批准的设备组
设备身份
无需登录 Deskferry
公司 Mac 用公司的账户,个人 Mac 用自己的。把两者合并起来,很少有什么好理由,连接两台机器也不该逼着你这么做。
所以配对或同步之前,没有什么要注册的,也没有登录这一步。两台 Mac 完全可以用不同的 Apple 账户。权限来自一个经过批准的设备组,而不是共用的登录:设备身份加上限定在组内的授权,替代了本该由服务账户承担的那部分工作。
放到一个家庭或小团队里,意味着你邀请的是某一台具体的 Mac。没人需要到处传密码,个人和工作账号的登录各自待在原地,添加一台设备始终是一个需要有人真正做出的决定。
Mac App Store 的下载、购买以及随之而来的账户要求,仍然由 Apple 处理。Deskferry 避免的是再多一个产品账户,也从不要求配对的两台 Mac 共用同一个 Apple 账户。
每一台新 Mac 加入,都要经过一个人的决定
- 管理员发出邀请
- 输入六位配对码120 秒 · 最多三次尝试
- SPAKE2TLS exporter绑定到本次连接
- 管理员核对并批准
在附近,不等于就该收到你的工作内容。发现和授权被刻意分开:出现在同一个 Wi-Fi 里,不会让一台设备进入任何组,也不会因此获得任何权限。
配对走的是一个简短的流程,管理员可以借此在批准成员身份之前先看一眼这台设备:
- 管理员在自己的组里用
Add Mac发起邀请。六位数代码有效期 120 秒,最多允许三次认证尝试。 - 在要加入的 Mac 上,
Join a Group选中那个附近的邀请,输入代码。加密的配对交换使用 SPAKE2 验证双方身份,之后请求才会进入待批准状态,其结果通过 TLS exporter 绑定到这条安全连接上——短期有效的代码和随后的设备会话由此归入同一次信任建立过程。 - 管理员查看这台加入中的设备并批准。如果代码过期或三次尝试都用完,就得重新发起一次邀请。
这些检查只发生在授予权限的那一刻。之后每一次复制都不用重新输代码——后续连接验证的是配对时就确立好的设备身份。第一次传输之前,先在两台 Mac 上选中同一个当前组,等连接就绪。
有一部分根本不靠密码学:只批准你认得出来的请求。代码和加密交换保护的是配对这个过程本身;至于这是不是你真正想信任的设备,这个问题只有你自己能回答。
保护传输过程,也保护你留存下来的记录
传输过程TLS 1.3 · mTLS
双向认证
各自的 Mac 本机
Wi-Fi 密码解决的是谁能连上这个网络,管不着你在网络上发的内容。两台 Mac 的身份都会被验证,它们之间的连接也是加密的,这才是防止复制的文字、图片和文件在传输途中被读取的关键。
传输层用的是 TLS 1.3 配合双向认证(mTLS),双方都要证明自己是谁,而不是单纯信任这个网络。事件会被签名,重放保护意味着一条过去有效的消息不能被当成新动作再用一次。连接还携带着上下文:它只属于一个已批准的组,不属于恰好在监听的任何人。
保留下来的历史记录另有一层保护。正文和附件在每台 Mac 上各自加密,密钥交给 macOS 钥匙串保管。时间、状态这类索引信息单独存放,所以内容被加密,不代表索引里的每个字段也都加密了。
但有件事,以上这些都决定不了:受信任的接收方之后会怎么处理内容。收到你内容的 Mac 可以无限期留着它,一台没锁屏的 Mac 归当时坐在它前面的任何人所有。挑选接收对象、锁好机器本身,这些始终是你自己的功课。
一个受众明确、角色分明的当前组
当前设备组
一旦涉及两台以上的 Mac,谁能收到一次复制,就比传得有多快更重要了。当前组才是受众——不是附近每一台 Mac,也不是你曾经加入过的每一个组。底层由绑定组的 v2 数据帧把消息限制在预期的组上下文里,再靠一份签名过的成员名单和签名过的撤销记录,记住谁还拥有权限。每台 Mac 再在此基础上执行自己的同步策略。
控制权把“谁能加入”和“日常怎么用”拆开了:
- 管理员管成员。 批准新 Mac 是管理员的事,把成员从自己名下的组里移除也是——哪怕那台设备当时正好离线。成员之间互相移除不了对方。
- 每台 Mac 管自己的分享。 当前是哪个组、同步是否暂停、这台机器允许发哪些内容类型——都是本地决定。真正要分享重要内容之前,先瞟一眼当前组是哪个。
- 个人历史归个人。 和某人同处一个组,不代表对方就有路子进你的历史记录库,管理员也不例外。接收方留下的,只是它自己收到的那部分内容的本地记录。
家庭组和工作组可以并存,分享之前你自己选。切换只会改变当前生效的受众,两个组同时存在,不代表新复制的内容会同时发给两边。
移除一个成员,撤销的是这次配对带来的未来授权访问,仅此而已。它够不着对方 Mac 已经存下的文件、粘贴内容或历史记录。权限控制的是谁能收到下一次复制,从来管不到上一次复制之后发生了什么。
一道本地检查,把支持的敏感信息挡在可读历史之外
- 复制的内容
- 命中支持的格式
- 敏感占位不保留正文、名称或缩略图
仅识别支持的格式,可能漏检。
不留可读历史 ≠ 阻止同步
你粘贴了一个密码,然后就忘了这回事。它现在成了一条记录,接下来几周你会在列表里一次次划过它。本地对受支持的敏感格式做检查,就是为了让这类复制内容有一部分根本不会变成可读的历史记录。
规则覆盖带有明确字段的凭据、部分私钥格式,以及受支持的助记词,判断依据是格式本身的结构,而不是把任何看起来随机的字符串都当成秘密。识别过程是确定性的:依靠格式自身的结构、NFKD 归一化,以及格式规定的校验和,覆盖受支持的 BIP39 和 SLIP39 助记词、BIP32、BIP38 和 WIF 私钥,以及 PEM 或 OpenSSH 容器格式。检查在你的 Mac 上本地完成,剪贴板内容不会被上传去做检测。
一旦匹配上受支持的格式,整个事件会被存成一个涉密占位符。它的可读正文、附件名称和缩略图都不会保留在这条记录里,之后也就没法打开它来还原出那个秘密。
这里有个最容易让人栽跟头的区别:把内容挡在历史之外,和把内容挡在网络之外,是两个不同的开关。涉密内容的同步默认是开着的,而且每台 Mac 各自独立应用自己的设置。要是有些私密材料根本不该传到当前组,复制之前就该把这个开关关掉,或者暂停同步。历史里躺着一个占位符,不能证明什么都没发出去。
常见问题
常见问题解答
同一个 Wi-Fi 上的别的 Mac 能读到我的剪贴板吗?
在你的网络里,不代表就是任何东西的成员。内容只发给拥有已批准组成员身份、走过身份验证连接的设备,没人批准过的 Mac 那里什么都不会等着它。也就是说,真正保护你的不是某个网络设置,而是你邀请了哪些设备、哪些人。
两台 Mac 需要用同一个 Apple 账户吗?
不需要,这正是要点所在。配对和同步依赖的是经过批准的组,两台 Mac 完全可以登录不同的 Apple 账户,而且可以一直这样下去。App Store 的下载和购买由 Apple 单独处理,这中间没有任何 Deskferry 账户。
配对代码过期或配对失败会怎样?
重新来一遍就行,大概花十秒钟。六位数代码有效期 120 秒,最多允许三次认证尝试,只要有一项用完,管理员重新发一次邀请,再查看并批准加入中的 Mac。参见 首次配对的双方步骤。
Deskferry 能不能通过互联网,从家里连到公司的 Mac?
不能。两台 Mac 需要一个能互相到达的本地 Wi-Fi 或以太网,没有开发者中转服务器来帮忙打通两个不同地点。在完全没有网络的情况下依然能用的,是单台 Mac 上的本机历史。
加入一个组,会不会暴露我原有的历史记录?
不会。你的历史记录库留在你自己的 Mac 上,这个组没有办法查询或搜索它。能传出去的,只有你允许同步的新复制内容,接收端的每台 Mac 也只会保留自己收到那部分的本地记录。
移除一台 Mac,会不会删掉它已经收到的文件?
不会,也没有什么机制能做到这一点。移除撤销的是未来的授权访问,对方已经存下的文件、粘贴内容和历史记录原样留在那边。所以真正要权衡的,是你是否信任接收方之后如何处理这些内容,而不只是信任传输过程本身。
指南
接下来可以读
Deskferry
下一步,就这么简单。
换一台 Mac 继续工作,传一个文件,或找回此前的复制。
macOS 14+ · 单台 Mac 可用历史 · 同步需要相互可达的局域网