加密架构 功能特性 定价 博客 关于 免费下载
安全白皮书

DeepSeal 安全架构

版本 1.0 · 最后更新 2026 年 6 月

1. 加密架构概览

DeepSeal 采用信封加密(Envelope Encryption)三层模型,与 AWS KMS、Azure Key Vault、Google Cloud KMS 使用相同的密钥管理体系。

三层架构由外到内分别是:

  • 根密钥(KEK,Key Encryption Key)— 由用户主密码通过 PBKDF2 派生,用于加密 DEK。KEK 永不离开内存,永不落盘。
  • 数据加密密钥(DEK,Data Encryption Key)— 每条笔记独立生成 256-bit 随机密钥,用于加密实际笔记内容。DEK 以密文形式存储在本地数据库中。
  • 加密数据(Ciphertext)— 笔记明文经 AES-256-GCM 加密后的密文,与认证标签(Authentication Tag)和随机 Nonce 一起存储。

这种分层设计的核心优势:更换主密码时,只需用新 KEK 重新加密 DEK,无需重加密所有笔记数据,时间复杂度从 O(n) 降至 O(1)。

2. 密钥派生

用户主密码通过 PBKDF2-HMAC-SHA256 算法派生根密钥(KEK),参数如下:

  • 哈希函数:HMAC-SHA256
  • 迭代次数:100,000 次(100K iterations)
  • 盐值(Salt):128-bit 随机盐,每个用户唯一,随数据库存储
  • 输出长度:256 bits

100K 次迭代在当前硬件下生成一次约需 100-200ms,对正常登录体验影响极小,但对暴力破解构成显著计算壁垒 — 攻击者每尝试一个密码都需要重复同样的计算量。

盐值确保即使两个用户使用相同的主密码,派生出的 KEK 也完全不同,防止彩虹表攻击。

3. 数据加密

每条笔记使用独立的 DEK 进行 AES-256-GCM 加密:

  • 算法:AES-256-GCM(Galois/Counter Mode)
  • 密钥长度:256 bits
  • Nonce:96-bit 随机数,每次加密唯一生成
  • 认证标签:128-bit,用于验证密文完整性

AES-GCM 是认证加密算法(AEAD),同时提供机密性和完整性保证。任何对密文的篡改都会在解密时被检测到,返回认证失败而非错误明文。

每条笔记使用独立 DEK 意味着:

  • 单条笔记的 DEK 泄露不影响其他笔记
  • 相同内容两次加密产生不同密文(因 Nonce 不同)
  • 支持对单条笔记重新加密而不影响其他数据

4. 存储安全

DeepSeal 使用本地 SQLite 数据库存储加密数据,存储内容包括:

  • 加密后的 DEK:E(DEK, KEK) — 由 KEK 加密的 DEK 密文
  • 加密后的笔记内容:E(plaintext, DEK, nonce) — 由 DEK 加密的笔记密文
  • 随机 Nonce:每次加密时生成的 96-bit 随机数
  • 认证标签 Tag:128-bit GCM 认证标签
  • 盐值 Salt:128-bit PBKDF2 盐值
  • 元数据:笔记本名称、标签、创建/修改时间(未加密,用于列表展示)

关键安全属性:

  • KEK 和 DEK 明文仅存在于运行时内存中,应用锁定或退出后立即清除
  • 笔记明文内容从不以明文形式写入磁盘
  • 数据库文件本身不使用额外加密层,因为所有敏感数据已在应用层完成加密

5. 密钥轮换

更换主密码时,DeepSeal 执行以下步骤:

  • Step 1: 用户输入旧主密码,派生旧 KEK,解锁所有 DEK
  • Step 2: 用户设置新主密码,用新 Salt 通过 PBKDF2 派生新 KEK
  • Step 3: 用新 KEK 重新加密所有 DEK:E(DEK, new_KEK)
  • Step 4: 替换数据库中旧的 E(DEK, old_KEK) 和 Salt
  • Step 5: 安全擦除旧 KEK 和旧 Salt

整个过程中,笔记密文不需要重新加密。由于信封加密的分层设计,密钥轮换的时间与笔记数量无关 — 无论你有多少条笔记,轮换操作都是常数时间完成。

6. 安全假设与边界

DeepSeal 的安全模型基于以下假设,用户应当了解:

  • 主密码强度:安全性上限取决于主密码的熵。弱密码(如 "123456")可被暴力破解。建议使用 12 位以上混合字符或密码短语。
  • 设备安全:DeepSeal 假设运行设备本身是安全的。如果设备已被恶意软件感染(如键盘记录器),主密码可能在输入时被窃取。
  • 内存安全:密钥在运行时存在于内存中。具有物理访问权限的攻击者可能通过内存转储获取密钥。应用锁定后会主动清除内存中的密钥材料。
  • 不防截图:DeepSeal 不阻止屏幕截图或录屏。如果设备被远程控制,解锁状态下的内容可能通过截图泄露。
  • 备份安全:用户需自行确保备份文件的安全。SNX 导出文件受密码保护,但明文导出的 Markdown 文件不包含加密。

我们持续评估威胁模型并改进安全机制。如果你发现潜在的安全问题,请通过安全披露渠道联系我们。

更多合规信息

了解 DeepSeal 如何满足行业合规要求,请参阅 安全合规 页面。