安全与隐私
string 让手机可以操作电脑上的 Agent,而 Agent 能执行命令。所以我们把安全边界写清楚,包括它做不到的部分。
连接方式
手机和电脑都主动向外连接到 string 中转(relay.clarixe.top),彼此不直接相连。电脑不在公网监听任何端口,也不需要你在路由器上做任何设置。
端到端加密
手机与电脑之间的会话、代码、命令输出和附件都经过端到端加密:
| 密钥交换 | X25519 |
|---|---|
| 密钥派生 | HKDF |
| 加密 | ChaCha20-Poly1305 |
私钥只保存在各自设备上。中转转发的是密文,它只能看到哪台设备发给哪台、数据多大、什么时候。
中转做什么、不做什么
| 中转会 | 中转不会 |
|---|---|
| 通过 Clarixe 通行证确认你的账号 | 保存会话内容、代码或 Agent 输出 |
| 保存你的设备列表与设备公钥 | 持有你的 Agent 账号或 API 凭据 |
| 按设备转发加密数据 | 解密隧道里的内容 |
| 向手机发送推送通知 | 把推送摘要写入数据库 |
首次信任与指纹
两台设备第一次连接时,会自动记住对方的公钥(首次使用即信任,TOFU)。之后对方公钥一旦变化,string 会拒绝通信,并要求你在本机重新确认。
首次连接时,理论上中转可以冒充对方。要排除这种可能,请核对一次设备指纹:手机在设备详情中显示电脑的指纹,电脑在账号入口显示本机指纹,两边一致即可。用扫码方式配对时,二维码本身带有公钥,不存在这个问题。
推送是加密边界的例外
为了让通知能直接告诉你「要执行什么命令」,推送内容里带有命令和摘要。这部分由电脑提交给中转,再经 Apple 推送服务送达手机,不是端到端加密的。在 App 设置中关闭「通知中显示命令与摘要」后,推送只包含通用文案。
账号
string 使用 Clarixe 通行证登录,只获取你的账号标识和邮箱。手机上只在系统钥匙串里保存登录续期凭据,短期访问令牌只保存在内存中。账号的业务数据(设备、配对关系)只保存在 string 自己的服务中。
已知限制
我们如实列出目前尚未做到的部分:
- 还没有前向保密。如果某台设备的长期私钥泄漏,被录下的历史流量可能被解开。后续会改为每次连接交换临时密钥。
- 首次连接不强制核对指纹。指纹在两端都能看到,但不核对也能连上。
- 局域网直连不加密。仅建议在可信网络中用于调试。
发现安全问题,请通过问题反馈私下告诉我们,我们会尽快处理。