用户消息内容在数据库中是如何加密存储的?

B2C Data Innovating with Forum and Technology
Post Reply
muskanislam99
Posts: 271
Joined: Thu Dec 26, 2024 5:46 am

用户消息内容在数据库中是如何加密存储的?

Post by muskanislam99 »

WhatsApp 对用户消息内容的存储采用了端到端加密(End-to-End Encryption, E2EE)的核心原则。这意味着用户消息内容在到达 WhatsApp 的数据库之前就已经被加密,并且只有预期的接收者才能解密。因此,WhatsApp 的数据库中存储的只是加密后的消息密文,而不是可读的明文内容。

1. 端到端加密(E2EE)是基石
加密位置: 消息在发送者设备上被加密,然后在接收者设备上被解密。WhatsApp 服务器在这个过程中无法访问到解密密钥,也无法读取消息内容。
加密协议: WhatsApp 使用由 Signal Protocol 开发的加密协议,该协议被广泛认为是业界领先的、强健的加密标准。
密钥管理: 加密密钥是在用户设备上生成和管理的,并从未被传输给 WhatsApp 服务器。每条消息都使用独特、短暂的密钥进行加密,这些密钥从长期的会话密钥中派生。
2. 数据库中存储的内容
由于 E2EE,WhatsApp 的服务器(包括其数据库)不存储用户消息的明文内容。数据库中主要存储的是:

加密后的消息密文: 消息内容的加密形式。对于 WhatsApp 而言,这些只是无法解读的二进制数据块(blob)。即使 WhatsApp 的工程师或外部攻击者获得了数据库的访问权限,也无法从中读取用户的实际消息内容,因为它在离开用户设备时就已经被加密了。
消息元数据: 这是为了实现消息路由、投递和功能支持所必需的、未加密(或单独加密)的信息。这些元数据包括:
发送者 ID 和接收者 ID(包括群聊 ID): 用于识别消息的来源和去向。
时间戳: 记录消息发送的时间。
消息 ID: 消息的唯一标识符。
消息类型: 标识消息是文本、图片、视频、语音或文件等。
投递状态: 如“已发送”、“已送达”、“已读”等状态。
媒体文件 ID: 对于图片、视频等媒体消息,消息本身不包 芬兰 whatsapp 数据库 含媒体内容,而是包含一个指向已加密媒体文件的 ID。媒体文件本身存储在独立的媒体存储服务中,也是加密的。
“阅后即焚”设置的 TTL(Time-To-Live)信息: 作为元数据存储,用于客户端执行消息的自动删除。
3. 服务器端加密(Encryption at Rest)
除了端到端加密外,WhatsApp 还会对存储在服务器上的所有数据(包括加密的消息密文和元数据)进行服务器端的静态加密(Encryption at Rest)。

目的: 这层加密是在物理存储层面进行的,旨在保护数据免受:
服务器硬件被盗。
未经授权的数据库访问(例如,如果有人未经授权访问了存储服务器的硬盘)。
这种加密与 E2EE 是独立的,它是在操作系统或存储系统层面由 WhatsApp 管理的,即使数据中心被攻破,存储的数据也无法被直接读取。
4. 数据保留和删除策略
瞬时存储: 对于大多数 E2EE 消息,WhatsApp 的服务器主要充当消息的临时中转站。一旦消息被成功投递到所有预期的接收者设备,其在服务器上的加密副本通常会在短暂的缓冲期后被删除。
媒体文件: 加密的媒体文件可能会在服务器上保留稍长时间,以方便接收方在离线一段时间后仍能下载,但最终也会被清除。
“阅后即焚”: 对于这类消息,服务器也只做临时存储以供投递。消息的删除逻辑主要在客户端设备上执行,当 TTL 到期后,客户端会自动删除消息。
5. 为什么要采用这种方式?
隐私核心: 这是 WhatsApp 隐私承诺的基石——“没有人,包括 WhatsApp,能够阅读你的个人对话。”
安全性: 即使 WhatsApp 的服务器遭遇高级别入侵,用户的消息内容(核心通信数据)也无法被泄露,因为它始终处于加密状态。
法律合规性: 这种设计限制了 WhatsApp 响应政府或执法机构获取用户消息内容的法律能力,因为它本身就无法访问。
因此,用户消息内容在 WhatsApp 的数据库中是以端到端加密后的密文形式存储的,并且还辅以服务器端的静态加密,以提供多层次的安全保障。
Post Reply