跨端同步
6 位配对码、PBKDF2 派生、AES-256-GCM 加密、零知识服务器。
同步内容
- 主机记录(含加密的密码 / 私钥引用)
- SSH 密钥
- 分组、标签
- 端口转发规则
- 笔记与代码片段
- AI Profile(含加密的 API Key)
- 云凭证(加密 AK/SK)
- MFA 账户
- Skill 库(个人 / 团队)
不同步:
- Known Hosts(SSH TOFU 指纹由各设备独立验证)
- AI 对话历史(每台设备本地存储,避免大量流量)
- App UI 状态、最近打开的 tab
配对流程
- 设备 A:"设置 → 同步 → 启用同步" → 生成 6 位配对码
- 5 分钟内在设备 B:"设置 → 同步 → 加入" → 输入配对码
- 双端协商后建立同步通道,开始首次同步
加密原理
- 配对码经 PBKDF2-HMAC-SHA256,100,000 轮派生 sync_key(256-bit)
- 所有 payload 用 sync_key 做 AES-256-GCM 加密上传
- server 端仅存密文 + 设备元数据,无法解密
- sync_group = SHA-256(sync_key),用于多设备相互发现,不泄露密钥
零知识服务器
即使 Hux 数据库被攻破,攻击者只能拿到密文。这与"我们承诺不看你数据"不同 — 这是密码学保证。
同步触发
- 本地有变更:500ms 防抖后推送
- App 进入前台 / 退出后台:主动 pull
- 手动:"设置 → 同步 → 立刻同步"
- 同步状态在标题栏 / 设置页可视化
冲突处理
每条记录有 updated_at,冲突时按更新时间取胜。删除是 tombstone 软删除, 7 天后清理。复杂冲突(同字段不同设备同时改)会进入"冲突收件箱"由用户决定。
自部署同步服务器
sync-server 仓库开源(Rust + axum),可 Docker 一键部署。 App 设置中填写自部署地址即可使用。详见 github.com/hux/sync-server。
