手机与远程
加密与安全模型
一次 Noise_IK 握手同时解决加密、双向认证与防重放,中转服务器看不到内容。
传统方案里,加密靠 TLS、鉴权靠令牌、防重放靠时间戳与去重表。DSH 把它们合并成一次 Noise_IK 握手。
三件事,一次握手
| 能力 | 由什么提供 |
|---|---|
| 加密信道 | Noise transport(ChaChaPoly) |
| 认证手机 | 握手里的设备静态公钥,公钥本身就是设备 ID |
| 认证 Mac | 手机预先知道 Mac 的公钥,握手时验证 |
| 前向保密 | 每次握手的临时密钥 |
| 防重放 | transport nonce 单调计数 |
结果是:没有证书、没有 CA、没有域名依赖、没有 bearer token,也没有时间窗校验。
中转服务器看不到内容
公网侧只有一个极简中转:
- 读每条连接开头的 37 字节明文头(magic + 版本 + 路由公钥)。
- 按路由公钥找到对应 Mac 的长连接。
- 之后只搬字节,永不解析。
它不解密、不写磁盘、不记日志。路由公钥只是标识符,不是秘密 —— 它本来就在配对二维码里。
手机能访问什么
连上后只能访问它需要的:RPC 通道开放,插件路由默认拒绝,只有明确加入白名单的少数路由例外。配对与吊销接口对手机一律返回 403 —— 它们只属于 Mac 端。
已知残留风险
- RPC 通道仍是完整的 RPC 面:已配对设备按设计仍是完整的 harness 客户端,「收窄」不等于「消除」。吊销丢失的手机是既定补救方式,且现在立即生效。
- 中继与客户端需一起升级:许可释放依赖 bridge 的超时。
- 每 IP 网关上限不喜共享出口:在大型 NAT 后面需有意调高上限。
完整评审见开源与审核。