支持同步
介绍一种用于多设备数据同步的端到端加密(E2EE)机制,确保在任何阶段都不存在明文泄露风险。
后续看看要不要支持自定义的同步节点,因为这个只进行密文转发 不存在风险,而且基于jwt进行了鉴权。
一、总体思路
系统采用「客户端加密、服务端中转」的安全架构:
每个用户登录后,客户端通过 KDF(email + password + salt) 派生出同步密钥 syncKey。
服务端从不保存 syncKey,仅存储其哈希用于身份验证。
所有同步的数据(主机列表、配置等)在客户端使用 syncKey 通过 AES-GCM 加密后上传。
服务端仅负责密文中转和版本管理,无法解密任何内容。
二、加密与同步流程
设备A 从本地数据库读取加密数据,用本地私钥解密后生成明文结构。
使用派生的 syncKey 对整个 JSON 数据进行 AES-GCM 加密,上传至服务器。
服务器保存密文与版本号,不存储任何可用于解密的密钥。
设备B 登录同一账号后,通过相同算法派生出相同 syncKey,从服务器获取密文并解密。
设备B将解密后的数据重新用自身私钥加密存储,完成同步。
三、安全性说明
🔒 端到端加密:只有客户端持有密钥,服务器永远无法解密。
🧠 密钥派生安全:KDF 算法引入随机 salt,可抵御暴力破解与彩虹表攻击。
🧭 零信任服务器:即便服务器被入侵,也仅泄露无意义的加密数据。
💾 本地再加密:每台设备独立持有私钥,本地存储依然保持加密态。
四、总结
这种设计在性能与安全之间取得平衡:
用户无须手动配置同步密钥;
多端自动同步,兼容性强;
整个传输与存储过程均处于加密状态。
评论 (0)