Skip to content

[RFC] ETOS LLM Studio (ELS) 跨端同步与数据安全架构重构总览 #64

@Eric-Terminal

Description

@Eric-Terminal

[RFC] ETOS LLM Studio (ELS) 跨端同步与数据安全架构重构总览

在深入评估了移动端/手表端复杂的离线场景、数据一致性要求以及极端安全需求后,我们决定对 ELS 的底层存储与同步架构进行一次彻底的重构。以下是新架构的落地方案总结,作为后续开发的蓝图。

1. 存储基座:Local-First 与万物归库

  • 坚持本地优先 (Local-First):所有数据(会话、记忆、配置)永远首先落盘至本地 GRDB (SQLite),UI 响应完全依赖 ValueObservation
  • 淘汰 @AppStorage 碎片:彻底废弃散落的 UserDefaults。新建统一的 AppConfig 表,将系统零碎配置收编进 config-store.sqlite。实现配置与聊天数据在同一同步管道下的“绝对一致性”。

2. 双轨同步引擎 (Dual-Track Sync)

弃用容易引发整库锁死或大量冲突的文件级 iCloud Drive 实时同步,转而采用基于增量与动作的同步策略:

  • 近场热同步 (WCSession):在 iOS 与 watchOS 处于同一局域网或蓝牙范围内时,通过 sendMessage / transferUserInfo 进行毫秒级的数据载荷传输,消除近场时间差。
  • 远端增量漫游 (CloudKit + APNs):利用 CloudKit 的 CKRecordServerChangeToken 机制,实现增量差异同步 (Delta Sync)。通过 APNs 静默推送唤醒后台设备(包括未来的跨生态端),实现多端状态无缝漫游。

3. 并发冲突与会话分叉 (Conflict & Timeline Forking)

针对离线后重新连接导致的竞态条件(Race Condition),采用定制化 Merge 策略:

  • 单条记录精细合并:如多端同时生成重试历史,对 JSON 数组执行并集;如多端更新用户画像(UserProfile),则执行文本缝合,并交由下一轮 LLM 自动降维去重。
  • 上下文时序防抖(平行分支机制):检测到离线期间同一对话(Session)在两端产生新的时序分歧时,自动复制原 Session 记录生成新 UUID,并在名称后追加后缀(如 [watchOS 分支]),将两端的分歧物理隔离为两个独立对话,完美保护大模型的上下文逻辑。

4. 灾难恢复与脱机快照 (Disaster Recovery & Snapshots)

  • 多端手动快照 (Cloudflare R2 & iCloud Drive):独立于启动恢复机制,提供手动触发的轻量级脱机快照。后台静默执行剥离 FTS 虚表与触发器的极简副本压缩,支持上传至 R2 对象存储或用户的 iCloud 云盘。
  • 快照归档加密与 KDF 策略:支持对导出的压缩归档进行独立加密,并提供灵活的密码学选项。用户可设定简单密码(不加盐,追求便捷),也可选择开启自动派生策略(通过加盐及 KDF 算法进行高强度密钥派生)。
  • 安全恢复流:从云端拉取快照恢复时,ELS 将询问用户设定的密码与解密方式。成功解密并回灌本地纯净库后,其安全性将无缝交接给第 5 点的物理加密防线。
  • 向量库抛弃原则memory_vectors.sqlite 彻底退出漫游管道。异地设备拉取增量后于本地静默重建 Vector 索引,大幅降低带宽负担。

5. 零信任防线与分级加密 (Zero-Trust & Tiered Encryption)

  • 近场物理隔离:当用户关闭云同步开关时,底层拦截对端设备的 WCSession 数据请求。确保关闭同步即等于物理切断。
  • 分级密码保护体系:为应对“熟人知晓手机锁屏密码”等越权访问威胁,提供两级安全防护:
    1. 常规 UI 锁:满足多数用户的应用级加锁需求。
    2. 全盘物理加密 (SQLCipher):作为极客进阶选项。为防止物理提取,必须采用与系统锁屏密码完全不同的独立主密码。
  • 底层密钥派生原理 (PBKDF2):当启用 SQLCipher 时,系统不会直接使用用户输入的明文密码。底层会在数据库文件头部自动生成固定盐(Salt),并默认使用 PBKDF2-HMAC-SHA512 算法进行高达 256,000 次的迭代运算,硬核派生出 256 位 AES 密钥。在极高强度的防暴力破解基础上,实现 Page 级的即时解密(On-the-fly),不影响正常 JSON 解析开销。
  • 生物识别权限降级:Face ID / Touch ID 解锁(包括提取主密码)均被设计为可选项,将安全控制权完全交还给用户。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions