Lorca文档

安全

你的身份是一对你自己持有的密钥。任何离开设备的东西都先加密。

Lorca 用本地密钥对作为身份,已配对设备之间的数据同步采用端到端加密。中继保存公钥和密文。

你的身份就是一把密钥

创建身份时,会在你的第一台设备上生成一个 32 字节的密钥。其他一切都从它派生。备份短语就是这个密钥写成十三组、每组四个字符的形式。

  • 这个密钥留在创建或恢复它的那台设备上。
  • 谁持有短语,谁就持有账户。Lorca 无法替你找回。
  • 中继为恢复保存的账户密钥带有你身份的签名,所以短语只会恢复你自己生成的那把密钥。

什么是加密的

一切有含义的东西:智能体的名字和描述、聊天标题、消息、附件、设备名、服务商凭据、技能、任务、群聊项目、等待审核的内容、关注事项,以及推送通知的内容。每一项都在上传之前,在你的设备上用账户密钥(XChaCha20-Poly1305)加密。发给另一台电脑上智能体的任务、对密钥卡片的回答,以及启动智能体工作的事件,都会用那台电脑的公钥封好,只有它能打开。

你的一台设备发给另一台的内容(智能体的一轮任务、对某台电脑上插件、MCP 服务器或密钥的修改,以及对应的回答),还会用发送设备的密钥签名。只有当签名来自你设备列表里的设备、而且就是发给这台设备的,它才会照做,并且只做一次,所以中继既不能替你的电脑编造任务,也不能把同一个任务再发一遍。

中继能看到什么

中继保存中继永远看不到
你的身份公钥和各设备的公钥名字、标题、消息、文件
加密的数据块,及其大小、顺序和时间戳智能体的资料和描述
把同一个聊天的数据块归在一起的随机 id服务商的 API 密钥和令牌
哪些设备密钥在线,以及它们最后连接的时间哪些设备是 Runner
手机的推送令牌通知里写了什么

pull request 关注和例行任务的 Webhook 是例外:见 Webhook。

设备通过用自己的密钥对一个挑战签名来证明身份。没有什么可以被钓鱼的。

配对

配对码里带着一把一次性的公钥。新设备把自己的密钥和一把一次性的回复密钥,用这把一次性公钥封好发出;已有的设备则把账户密钥用这把回复密钥加密作为回复。中继传递这两条消息,但哪一条都打不开,也写不出新设备会接受的回复。配对码十分钟后过期,或在你取消时失效。

任何已配对的电脑都可以配对新设备。每台已配对的设备都会出现在设备列表里,从未说明自己是什么的设备会显示为 未知设备,所以你可以取消配对你不认识的设备。

分享的链接

作为链接分享的智能体,会用一把专属的密钥加密,这把密钥就在链接 # 后面的部分里。浏览器从不发送这一部分,所以中继和 lorca.app 保存、提供的都是它们打不开的密文;打开链接的人在自己的浏览器里解密。拿到完整链接的人都能读到模板,撤销链接会把它从中继上删除。存成文件的模板没有加密。

取消配对

取消一台设备的配对后,中继会永久拒绝它的密钥,你的其他设备也会把这把密钥记为已取消配对,任何中继都无法让这台设备回来。这台设备下次连接时会删除自己的密钥、凭据和聊天。

你的账户还会换一把新密钥:由持有备份短语那份密钥的设备在上线后生成,发给除被取消配对的设备之外的所有设备。此后你写下的一切都用它加密,所以一台已取消配对、却还留着旧密钥的设备读不到,它写进来的内容也会被忽略。它之前能读到的内容仍然能读,所以如果它上面有你接入的 API 密钥,请到服务商那里更换。

删除账户

在桌面应用中选择 设置 › 高级 › 删除账户,中继会删除它为此账户保存的全部内容(聊天、附件、智能体、服务商凭据),并取消所有设备的配对,各设备随后删除自己的副本。

如果一个账户整整一年没有任何活动(没有设备连接,也没有任何同步),Lorca 的中继也会清除它。你的设备仍保留本地数据,第一台重新连接的设备会重新注册这个账户。

在你的电脑上

  • 密钥、凭据和聊天是 ~/.lorca/ 下的文件,只有你的用户可读。
  • 智能体以你的用户身份运行,shell 命令经过自动审查允许后,保留这个用户对整台电脑的访问权限。参见工具。
  • 智能体的访问权限限制它能用哪些插件和工具,也能关掉它的文件和 shell 工具。它限制的是 Lorca 的工具,不是操作系统层面的沙盒。有 shell 权限的智能体能触及你的用户能触及的一切,所以需要隔离的智能体,应该放在单独的 Runner 上。
  • 插件的密钥和登录状态留在安装它的那个 Runner 上,智能体的浏览器配置文件和其中的登录也是。
  • 智能体索要的密钥加密保存在它的 Runner 上,按名字使用,不会出现在聊天、草稿和 AI 服务商看到的内容里。
  • 智能体的记忆在写入之前会抹掉任何看起来像凭据的东西。
  • 桌面应用只和它自己在 127.0.0.1 上的本地服务通信。只有这个服务会和中继、AI 服务商通信。
  • 本地服务只接受这台电脑上持有它令牌(~/.lorca 里的 serve-token)的客户端,所以你访问的网页连不上它。

AI 服务商能看到什么

智能体的每一轮都会把对话、它的描述和工具结果发给你接入的服务商,并受该服务商条款的约束。这些流量从 Runner 直接发往服务商,从不经过中继。保存的密钥在工具结果发给服务商之前,会被替换成它们的名字。

Webhook

服务发出的 webhook 是不加密的。对于关注 pull request和例行任务的 Webhook,由 Lorca 的中继接收:它验证 GitHub 的签名或例行任务的密钥,把事件加密给例行任务所在的 Runner,只保留加密后的副本,所以它在这个过程中会读取每个请求。对每个这样的例行任务,它会保留关注的 pull request、由你的哪台电脑运行、Webhook 密钥的哈希,以及给这个例行任务的事件签名用的密钥,这些都随例行任务一起删除。如果不想让服务的请求经过 Lorca 的中继,可以自己接收。

更新

macOS 应用经过签名和公证。Mac、Windows 和 Linux 应用在安装每个更新之前,都会用应用内置的签名密钥验证它。

本页目录