🔐 OMIMA 当前处于内测阶段,欢迎加入早期体验 → omima.me
安全与隐私
加密技术细节

加密技术细节

本页面面向想了解技术细节的用户。如果只想知道"数据安不安全",安全概览 足够了。


加密算法:AES-256-GCM

OMIMA 使用 AES-256-GCM(高级加密标准,256 位密钥,GCM 模式)加密所有记录的敏感字段。

为什么选 AES-256-GCM:

  • 认证加密(AEAD):加密的同时提供完整性校验。密文如果被篡改,解密会失败而不是返回错误数据
  • 工业标准:美国政府、金融机构、TLS 协议广泛采用
  • 256 位密钥:目前没有已知的实际破解方法

加密的内容: 每条记录的 fields 字段(账号、密码、证件号、保单号等所有敏感负载)

不加密的内容: title(标题)、tags(标签)、recordType(类型)——这些保持明文用于搜索,是刻意的设计权衡


密钥管理

加密密钥存储在 Cloudflare Workers 的隔离环境中,不在数据库内。这意味着:

  • 数据库(D1)被拖库 → 只有密文,密钥不在里面,解不开
  • 密钥与数据物理隔离 → 攻击面被切分

这是服务端加密(Server-Side Encryption)模型,与 AWS S3 SSE、Google Cloud KMS 的做法一致。 加密密钥由 OMIMA 管理,认证通过的用户请求触发解密并返回明文。


访问控制层

加密只是第一道防线,访问控制是第二道:

请求到达 OMIMA API

    ▼ 身份验证
    是否携带有效的会话令牌 / Bot 绑定凭证?

    ├── 否 → 拒绝,返回 401

    └── 是 → 只能访问该账号下的数据

              解密 → 返回明文

每个账号的数据完全隔离,一个账号的认证令牌无法访问其他账号的数据。


截图资产

截图上传到 Cloudflare R2 之前:

  1. 计算图片内容的 SHA-256 哈希(用于去重)
  2. 使用随机生成的密钥加密图片
  3. 加密密钥与记录关联,通过访问控制保护

技术参数汇总

参数
加密算法AES-256-GCM
密钥长度256 bits
加密模型服务端加密(SSE)
密钥存储Cloudflare Workers 隔离环境
密钥与数据库隔离
认证层账号令牌 + Bot 账号绑定
数据库Cloudflare D1(只存密文)
资产存储Cloudflare R2(加密存储)