WhatsApp在其多个层面使用了强大的加密算法,以确保用户通信和数据的安全性。其最核心且广为人知的加密是端到端加密(End-to-End Encryption, E2EE),此外,它还在设备本地数据库和云备份中应用了加密。
1. 端到端加密(E2EE):Signal 协议
WhatsApp 的端到端加密是基于由 Open Whisper Systems(Signal 应用的开发者)开发的 Signal 协议。这个协议被认为是当今最先进和最安全的加密协议之一,广泛应用于Signal、Google Messages(RCS消息)、Skype(秘密对话)等应用中。
Signal 协议结合了多种密码学原语和算法来提供全面的安全保障:
双棘轮算法(Double Ratchet Algorithm): 这是Signal协议的核心,它确保了“完美前向保密性”(Perfect Forward Secrecy, PFS)和“未来保密性”(Future Secrecy 或 Post-Compromise Security)。这意味着即使一个会话密钥在未来被泄露,也无法解密过去的或未来的消息。每条消息都使用一个新生成的独特密钥进行加密,即使攻击者获取了当前会话的密钥,也无法回溯解密之前的消息,也无法解密之后的消息。
X3DH(Extended Triple Diffie-Hellman)握手: 这是用于初始密钥协商的关键机制。当两个用户首次建立会话时,X3DH 允许他们安全地协商一个共享密钥,而无需在网络上传输该密钥本身。它结合了用户的长期身份密钥(long-term identity keys)、一次性预密钥(prekeys,预先上传到服务器的临时公钥)和短暂密钥(ephemeral keys),确保了密钥交换的保密性和认证性。
对称加密算法:AES256。 消息内容的实际加密使用高级加密标准(Advanced Encryption Standard, AES),具体是AES-256。AES-256是一种分组密码算法,使用256位的密钥对数据进行加密和解密。由于其 菲律宾 whatsapp 数据库 高效性和极高的安全性(目前被认为在计算上无法通过暴力破解攻破),AES-256是全球政府、金融机构和安全领域广泛采用的标准。
消息认证码(Message Authentication Code, MAC):HMAC-SHA256。 为了确保消息的完整性(Integrity)和真实性(Authenticity),WhatsApp 使用 HMAC-SHA256。这意味着除了加密消息内容外,还会生成一个消息认证码,以验证消息在传输过程中是否被篡改以及是否确实来自声称的发送方。SHA-256(安全哈希算法256位)是一种加密哈希函数,用于生成消息的数字“指纹”。
椭圆曲线密码学(Elliptic Curve Cryptography, ECC):Curve25519。 在Diffie-Hellman密钥交换中,WhatsApp 使用Curve25519。这是一种安全、高效的椭圆曲线,用于生成公钥和私钥对以及执行密钥协商。
所有这些算法协同工作,确保了WhatsApp上发送的所有消息(文本、图片、视频、语音消息、文档、通话)都是端到端加密的。这意味着只有发送方和接收方拥有解密消息所需的密钥,WhatsApp 服务器本身也无法访问消息的明文内容。
2. 客户端本地数据库加密
除了传输中的消息,WhatsApp 还会加密存储在用户设备上的本地数据库文件。
Android: 在 Android 设备上,WhatsApp 的数据库文件(如 msgstore.db 和 wa.db)以及本地备份文件(如 msgstore.db.crypt15)都是加密的。虽然 WhatsApp 没有公开具体使用的加密算法细节,但普遍认为其使用的是AES算法,很可能是AES-256。加密密钥通常从设备和用户特定的标识符(如手机号、设备ID等)派生而来,并安全存储在应用程序的私有数据区域或 Android KeyStore 中,防止未经授权的访问。
iOS: 在 iOS 设备上,WhatsApp 的数据(包括 ChatStorage.sqlite 数据库和媒体文件)受益于 Apple 强大的硬件级加密和 Data Protection API。iOS 设备本身使用AES 256位加密对写入闪存存储器的数据进行加密。WhatsApp 通过为数据文件指定适当的保护级别(如 NSFileProtectionComplete)来利用这种底层加密。这意味着数据的加密和解密是由操作系统和设备硬件透明完成的,密钥与设备的 UID 和用户密码紧密绑定,存储在 Secure Enclave 中。
3. 云备份加密
对于云备份,WhatsApp 也提供了加密选项:
Google Drive/iCloud 备份: 默认情况下,这些备份可能会受到云服务提供商(Google或Apple)的通用加密保护。
WhatsApp 端到端加密备份: WhatsApp 额外提供了一个可选功能,允许用户对上传到 Google Drive 或 iCloud 的备份进行端到端加密。当用户启用此功能并设置密码时,WhatsApp 会使用这个密码(或从中派生出的密钥)在将数据发送到云端之前,对其进行再次加密。这个加密层通常也采用AES-256算法,确保即使云服务提供商也无法访问备份的明文内容。
综上所述,WhatsApp 在不同的层面使用了多种加密算法和协议,其中最核心的是基于 AES-256、HMAC-SHA256、Curve25519 和双棘轮算法的 Signal 协议,用于其端到端加密通信。同时,AES 加密也被用于保护设备上的本地数据和用户选择开启的云备份。