安全白皮书

我们如何保护您的数据?

用最通俗的语言,向您解释我们采用的加密技术。不需要任何技术背景,5 分钟就能完全理解。

1

为什么我们敢公开加密原理?

您可能会问:公开加密原理,黑客不就知道怎么攻击了吗?

🔐 密码学的黄金法则(Kerckhoffs 原则):

"一个密码系统的安全性,不应该依赖于算法的保密,而只依赖于密钥的保密。"

🏠

打个比方:您家的门锁

小偷知道您家用的是什么品牌的门锁、什么型号、什么原理——这些信息完全公开。但只要他没有您的钥匙,就进不了门。我们的加密也是一样:算法公开,但密钥只有您知道。

现实案例:银行、Signal(最安全的聊天软件)、比特币——它们的加密算法全部公开,却保护着万亿级别的资产。

2

"密码"和"密钥"有什么区别?

很多人分不清"密码"和"密钥",其实它们是两个完全不同的东西:

🧠

密码 (Password)

  • ✓ 人能记住的字符串
  • ✓ 比如:"火锅很好吃2024"
  • ✓ 通常比较短(8-20个字符)
  • ✓ 存在于:您的脑子里
🔑

密钥 (Key)

  • ✓ 计算机生成的二进制数据
  • ✓ 比如:7a2b9c4d8e1fa0b3...
  • ✓ 固定长度(256位 = 32字节)
  • ✓ 存在于:浏览器内存中(临时)

🎯 核心要点:
密码是您能记住的,密钥是计算机用来加密的。
我们用您的密码生成密钥,这样既方便您记忆,又保证安全强度。

3

为什么用"两把钥匙"?

我们采用了"双层密钥"架构。为什么不直接用密码加密呢?

🏦

比喻:银行保险柜

银行保险柜通常有两把锁:银行管一把,您管一把。两把钥匙都用上才能打开。我们的设计类似:您的密码生成一把「主钥匙」,主钥匙再打开一个保险盒,里面放着真正加密图片的「数据钥匙」。

🔐 完整的密钥流转过程

🧠 您的密码
(您能记住的)
+ 随机盐值(Salt)
经过 PBKDF2 计算 100,000 次
🗝️ 主密钥 (Master Key)
(由密码派生的钥匙)
用主密钥解密"加密的DEK"
🔑 数据密钥 (DEK)
(真正加密图片的钥匙)
用 DEK 解密图片
🖼️ 您的原始图片

🤔 为什么要这么复杂?

  • 好处1:修改密码时,只需重新加密 DEK,不用重新加密所有图片(很快)
  • 好处2:DEK 是完全随机的 256 位密钥,比任何密码都强大得多
  • 好处3:即使有人猜到了您的密码,还需要知道 salt 和 encrypted_dek 才有用
4

"随机盐值"和"10 万次计算"是什么?

🧂 什么是"盐值"(Salt)?

🍳

比喻:炒菜放盐

同样的鸡蛋,不同厨师放的盐量不同,炒出来的味道就不一样。同样的密码,加上不同的「盐值」,生成的密钥也不同。这样,即使两个人碰巧用了一样的密码,他们的密钥也完全不同,黑客就没法批量破解。

❌ 没有盐值时:

密码 "123456" → 密钥 ABC...
密码 "123456" → 密钥 ABC...
(相同!黑客可以预先计算)

✅ 有盐值时:

密码 "123456" + 盐A → 密钥 XYZ...
密码 "123456" + 盐B → 密钥 QRS...
(不同!无法预先计算)

🔄 为什么要计算 100,000 次?

🏋️

比喻:健身房的重复训练

想象您要打开一个保险箱,每次尝试密码都要做 100,000 个俯卧撑。对您来说(只试一次),花几秒钟不算什么。但对黑客来说(要尝试百万个密码),就算超级计算机也得算几百年。这就是 PBKDF2 的设计思想:让暴力破解变得不可能。

技术名称:PBKDF2 (Password-Based Key Derivation Function 2)

0.1秒

您登录时感受到的延迟

100+ 年

黑客暴力破解需要的时间*

*假设黑客使用顶级硬件尝试破解一个中等强度的密码

5

AES-256-GCM 是什么?

这是我们用来加密您图片的具体算法。别被这串名字吓到,让我们拆解一下:

AES

Advanced Encryption Standard

高级加密标准
全球公认最安全的对称加密算法

256

密钥长度(位)

256位 = 2²⁵⁶ 种可能
比宇宙原子数量还多!

GCM

Galois/Counter Mode

加密模式
同时保证机密性和完整性

🏛️ 谁在使用这个算法?

美国政府用它保护最高机密文件。全球银行用它保护您的资金交易
现在,我们用同样的标准保护您的医疗数据

6

"IV"(初始化向量)又是什么?

每次加密时,我们都会生成一个随机的 IV。它的作用是:

🎲

比喻:每次洗牌

想象加密就像打牌。如果每次都按同样的方式洗牌,别人就能猜出规律。IV 就像每次打牌前的「随机洗牌」——同样的牌(同样的图片),每次洗出来的顺序(加密结果)都不同,别人就猜不出规律了。

❌ 没有 IV:

同一张图片,每次加密结果相同
→ 黑客可以发现"这两个密文是同一张图"

✅ 有 IV:

同一张图片,每次加密结果不同
→ 黑客无法判断任何规律

技术说明:IV 不需要保密(会和密文一起存储),但必须保证每次加密都不同。我们使用密码学安全的随机数生成器来生成 12 字节的唯一 IV。

7

完整的数据处理流程

上传图片时

  1. 1

    您选择要上传的图片

    图片还在您的手机/电脑里

  2. 2

    浏览器用您的 DEK 加密图片

    生成随机 IV,完成端到端加密

  3. 3

    同时上传两个版本到服务器

    原始图片(用于智能分类)+ 加密图片(用于长期存储)

🧠 服务器处理(智能分类)

  1. 1

    对原始图片进行 OCR 识别

    提取文字内容,用于材料分类和健康指标抽取

  2. 2

    AI 智能分析

    自动归类到对应科室/器官,并提取血压、血糖等健康指标

  3. 3

    立即销毁原始图片

    处理完成后从内存中删除,不写入硬盘,不保留副本

  4. 4

    只保存加密版本 + 分类标签

    数据库中存储的永远是加密后的乱码

💡 为什么需要原始图片?目前的 AI 技术还无法在加密状态下进行内容识别。为了实现智能分类和指标抽取,原始图片需要短暂地在服务器内存中停留(秒级),处理完成后立即销毁。

查看图片时(解密)

  1. 1

    您点击查看某张图片

  2. 2

    浏览器从服务器下载加密的密文 + IV

    服务器只能提供加密后的乱码

  3. 3

    浏览器用您的 DEK + IV 解密

    解密完全在您的设备上完成

  4. 4

    图片显示出来

    此时服务器上已经没有任何原始图片

?

常见问题

⚠️ 重要提醒:忘记密码 = 数据永久丢失

由于我们采用端到端加密,您的密码是解密数据的唯一钥匙。 我们的服务器上只存储加密后的乱码,没有任何方法可以帮您恢复数据。

这正是端到端加密的代价——为了安全,必须放弃"找回密码"的便利。请务必牢记您的密码!

即使黑客完全控制了我们的服务器,他们能拿到的只有:

  • 加密后的图片(乱码)
  • 加密后的 DEK(乱码)
  • 盐值(公开信息,不影响安全)

没有您的密码,这些数据对黑客来说就是一堆无意义的乱码。 解密需要您的密码 → 主密钥 → DEK,缺一不可。

不能。这就是"端到端加密"的核心意义。

数据在您的设备上加密,在您的设备上解密。传输和存储过程中, 我们的工程师、服务器、任何中间环节看到的都只是加密后的乱码。

即使法院命令我们交出您的数据,我们也只能交出加密的密文——因为我们真的没有解密能力。

传统加密(微信等)端到端加密(我们)
谁能解密?用户 + 服务商只有用户
服务器存储的是?明文或可解密的数据加密的乱码
能找回密码吗?可以不可以
安全等级★★★☆☆★★★★★

可以。这就是"双层密钥"设计的好处。

修改密码时,我们会:

  1. 用旧密码解密出 DEK
  2. 用新密码重新加密 DEK
  3. 保存新的 encrypted_dek

DEK 本身不变,所以所有图片的加密不受影响——只是"保险盒的锁"换了,里面的"钥匙"还是原来那把。

如上文第 7 章所述,原始图片仅在智能分类处理期间短暂停留(通常几秒钟),处理完成后立即从内存中销毁。

  • 原始图片不会写入硬盘
  • 原始图片不会保留任何副本
  • 长期存储的永远是加密后的密文

我们只保留分类结果(如"心内科检查报告")和提取的健康指标(如血压、血糖数值),不保留 OCR 识别出的原始文字内容。

📋 技术规格摘要

加密算法

  • 数据加密AES-256-GCM
  • 密钥派生PBKDF2-SHA256
  • 派生迭代次数100,000

密钥规格

  • 主密钥长度256 bits
  • DEK 长度256 bits
  • IV 长度96 bits (12 bytes)

以上技术规格符合 NIST(美国国家标准与技术研究院)建议的最佳实践标准。

还有疑问?

如果您对我们的安全措施还有任何疑问,欢迎随时联系我们。
我们很乐意为您详细解答。