安全与隐私

string 让手机可以操作电脑上的 Agent,而 Agent 能执行命令。所以我们把安全边界写清楚,包括它做不到的部分。

连接方式

手机和电脑都主动向外连接到 string 中转(relay.clarixe.top),彼此不直接相连。电脑不在公网监听任何端口,也不需要你在路由器上做任何设置。

端到端加密

手机与电脑之间的会话、代码、命令输出和附件都经过端到端加密:

密钥交换X25519
密钥派生HKDF
加密ChaCha20-Poly1305

私钥只保存在各自设备上。中转转发的是密文,它只能看到哪台设备发给哪台、数据多大、什么时候。

中转做什么、不做什么

中转会中转不会
通过 Clarixe 通行证确认你的账号保存会话内容、代码或 Agent 输出
保存你的设备列表与设备公钥持有你的 Agent 账号或 API 凭据
按设备转发加密数据解密隧道里的内容
向手机发送推送通知把推送摘要写入数据库

首次信任与指纹

两台设备第一次连接时,会自动记住对方的公钥(首次使用即信任,TOFU)。之后对方公钥一旦变化,string 会拒绝通信,并要求你在本机重新确认。

首次连接时,理论上中转可以冒充对方。要排除这种可能,请核对一次设备指纹:手机在设备详情中显示电脑的指纹,电脑在账号入口显示本机指纹,两边一致即可。用扫码方式配对时,二维码本身带有公钥,不存在这个问题。

推送是加密边界的例外

为了让通知能直接告诉你「要执行什么命令」,推送内容里带有命令和摘要。这部分由电脑提交给中转,再经 Apple 推送服务送达手机,不是端到端加密的。在 App 设置中关闭「通知中显示命令与摘要」后,推送只包含通用文案。

账号

string 使用 Clarixe 通行证登录,只获取你的账号标识和邮箱。手机上只在系统钥匙串里保存登录续期凭据,短期访问令牌只保存在内存中。账号的业务数据(设备、配对关系)只保存在 string 自己的服务中。

已知限制

我们如实列出目前尚未做到的部分:

  • 还没有前向保密。如果某台设备的长期私钥泄漏,被录下的历史流量可能被解开。后续会改为每次连接交换临时密钥。
  • 首次连接不强制核对指纹。指纹在两端都能看到,但不核对也能连上。
  • 局域网直连不加密。仅建议在可信网络中用于调试。

发现安全问题,请通过问题反馈私下告诉我们,我们会尽快处理。