
想想你上次在协作在线白板上画的那张图。也许是一个还未宣布的产品架构草图,也许是展示团队运作方式的流程图,也许是竞争分析,也许是融资时间线。
那些内容存放在某个地方。在大多数白板平台上,它们存放在那些公司的服务器上——员工可以读取,法律要求可以访问,一切都受制于隐私政策的条款。大多数人不到事到临头不会想到这一点。
Excalidraw 的处理方式不同。当你通过协作链接分享一张图时,内容在离开你的浏览器之前就已经加密。Excalidraw 的服务器在参与者之间中转数据,但无法读取那些字节的内容。加密密钥从未触及他们的基础设施。
对于一款免费的网络工具来说,这是一个有意义的设计选择。下面我们来看看这究竟意味着什么,以及在什么情况下这一点真正重要。
大多数白板工具如何处理你的数据
流行的白板工具以云服务的方式运营,你的内容保存在他们的服务器上,平台拥有读取权限。这不一定是恶意的——这只是云软件的运作方式。但它有实际的后果。
Miro 将你的白板存储在他们的基础设施上,其服务条款授予他们使用内容来改进产品的权利。FigJam 是 Figma 企业套件的一部分,受 Figma 的数据处理和企业安全审查约束。Lucidchart 在云端存储你的图表,数据驻留选项是企业级功能。
这些隐私政策并不隐晦,只是没有人会去读。但它们所描述的情况是:你画的一切都被一家能看到它的公司存储着。对于随手一画来说可能无所谓,但对于发布前的产品路线图或医疗工作流程图,这个考量就完全不同了。
传统上,云白板的替代方案是「本地存储但无法协作的工具」。Excalidraw 打破了这个取舍。
Excalidraw 的隐私架构实际上如何运作
当你在 Excalidraw 开始一个协作会话时,应用会生成两样东西:一个随机的房间 ID 和一个随机的加密密钥。两者都嵌入到 URL 的 # 符号之后。
这个位置的选择意义重大。浏览器永远不会将 URL 片段发送到服务器。当你的浏览器加载 https://excalidraw.com/#room=abc123,encryptionKey456 时,它向 excalidraw.com/ 发送 GET 请求,不包含任何房间或密钥信息。服务器只收到基础请求——它永远看不到片段部分。
绘图数据在传输前通过浏览器中的 Web Cryptography API 加密。服务器存储和转发的只是加密后的密文。没有密钥——它没有也无法获得——数据对 Excalidraw 的基础设施来说是不可读的。
这与 Yopass 用于加密秘密分享和 hat.sh 用于浏览器内文件加密的架构相同:服务器处理传输,用户持有密钥。这是一种有原则的方法,而非实现上的偶然。
对于单人使用,情况更为简单。Excalidraw 将你当前的绘图存储在浏览器的 localStorage 中,除非你明确开始协作会话或导出文件,否则什么都不会上传。如果你只是自己画图,你的绘图不会离开你的电脑。
验证隐私声明
来自闭源工具的隐私声明需要信任。任何人都可以说「我们不读取你的数据」。
Excalidraw 是 MIT 许可的开源项目,在 GitHub 上公开。加密实现在源代码中,任何有浏览器的人几分钟就能读到。协作会话代码、密钥生成和消息传递都可以被审计——不需要任何信任,代码就是证明。
该项目在 GitHub 上已累积超过 8 万颗星。这意味着数年的活跃开发过程中有大量开发者审视过这段代码。问题追踪器是公开的。如果实现中存在隐私问题,是可以被发现的。这种程度的审视是有意义的质量信号。
这就是「我们重视你的隐私」(营销语言)和「这是实现隐私的代码」(可验证属性)之间的实质差距。
无需账号的协作——且不妥协
关于注重隐私的软件,人们通常的假设是它会用功能换取保护。实时协作通常需要账号,而账号需要提供电子邮件地址,这会开启一段与有权访问你内容的平台之间的关系。
Excalidraw 的协作模式打破了这个假设。两个人可以在同一画布上实时编辑——光标会显示名字,更改立即传播——双方都不需要账号。加密链接就是访问机制。分享它,协作者就加入了;不分享,他们就进不来。
对于账号创建构成障碍的场景——给不想再多一个 SaaS 登录的客户征求反馈,或者在技术面试中让候选人专注于问题而非注册流程——这一点在实际中很有意义。
会话默认是临时的。当最后一个人关闭标签页时,会话就结束了。没有可以返回的持久云端房间,除非你导出 .excalidraw 文件。对于一次性头脑风暴或单次工作会话,这完全没问题。对于持续的团队工作,定期导出到共享文件夹是标准工作流程。
Excalidraw 与替代品:以隐私为中心的对比
当问题专门关于数据隐私时,对比的不是功能对功能,而是数据模型。
| Excalidraw | Miro | FigJam | tldraw | |
|---|---|---|---|---|
| 服务器可读取内容 | 否(端对端加密) | 是 | 是 | 否 |
| 需要登录 | 否 | 是 | 是 | 否 |
| 可自托管 | 是(MIT) | 否 | 否 | 是 |
| 源代码可见 | 是 | 否 | 否 | 是 |
| 协作端对端加密 | 是 | 否 | 否 | 部分 |
tldraw 是隐私方面最接近的竞争者。它也是开源的,也不需要登录,也有流畅的协作体验。主要区别在于加密模型——tldraw 的架构目前没有在协作时采用同样的 URL 片段端对端加密方法。两个工具与 Miro 相比都更私密;Excalidraw 的架构让服务器即使在实时会话期间也从功能上对内容视而不见。
Diagrams.net 在隐私方面也值得一提,作为另一个免登录选项。它默认本地保存,不需要账号,但不以同样的方式提供实时协作,因此服务于不同的工作场景。
Miro 功能强大且精致。如果你的团队已经在使用并且隐私对你的用例不是问题,没有什么令人信服的理由切换。但如果你在绘制任何不应被第三方读取的内容,架构上的差异是真实存在的。
自托管选项
如果「协作服务器对内容加密视盲」仍然涉及对第三方运营商的过多信任——因为你处于受监管行业,或者你的组织政策要求工具在公司基础设施上运行——Excalidraw 是可以自托管的。
官方 Docker 镜像 让部署变得简单。你在自己的服务器上运行 Excalidraw,不涉及任何 Excalidraw 基础设施。所有流量通过你的服务器路由,在你的司法管辖范围内,在你的防火墙之后。
这个选项之所以存在,是因为 MIT 许可证明确允许这样做。医疗、金融和政府领域的组织在内部网络上部署 Excalidraw,正是因为替代方案——将图表存储在外部服务器上的 SaaS 白板——会带来合规风险。
对于个人和小团队,托管版本就够了。但在隐私架构需要完全掌控的情况下,自托管路径至关重要。
隐私模型的局限性
这里需要准确说明。Excalidraw 的隐私模型在特定的、明确界定的方面很强大,同时也有值得了解的局限性。
如果你将一个 PNG 导出并上传到 Slack、Google Drive 或通过邮件发送,Excalidraw 的保证在导出时就结束了。你通过其分享的平台对那些文件拥有正常的访问权限。
Excalidraw+——添加了持久云存储和密码保护房间的付费托管版本——是一个具有不同存储模型的不同产品。实时协作的端对端加密仍然适用,但持久存储以免费临时模型所没有的方式涉及他们的服务器。
浏览器的 localStorage 在操作系统层面通常没有加密。如果有人能物理访问你的电脑并且知道去哪里找,他们可能可以从浏览器存储中提取一张图。这对大多数人来说是个遥远的顾虑,但如果你处于威胁程度较高的环境中,值得了解。
元数据没有加密。Excalidraw 知道你何时访问该网站、会话持续多长时间以及哪些 IP 地址参与了。这是标准的 Web 服务器日志记录,无论内容是否加密都存在。这不是 Excalidraw 特有的——所有 Web 工具都有这个情况。
这些都不是避免使用该工具的理由,而是「私密」在这个语境下意味着什么的准确图景。
开始使用
前往 excalidraw.com,开始绘图。无需注册,无需安装。
你的绘图会在工作时自动保存到 localStorage。关闭标签页再重新打开,会恢复你上次的画布。若要永久保存,可导出为 .excalidraw(一个可以重新打开编辑的 JSON 文件)、PNG 或 SVG。
协作时,点击工具栏中的人物图标并分享生成的链接。你的协作者不需要安装任何东西,不需要账号,不需要下载任何东西。链接就是会话。
如果你想探索白板之外更多无需登录、注重隐私的工具,nologin.tools 收集了各类别中具有相同设计理念的工具——无需账号,最少化数据收集。
关于 Excalidraw,有趣的不是它是免费的,而是构建它的人们有意识地选择让服务器对内容视而不见。在中间方无法读取数据的情况下进行实时协作,曾被视为一个工程问题,他们解决了它,然后将解决方案开源了。随着越来越多的白板工具推行强制账号和企业授权,这个选择每年都显得更加与众不同。