近期,一份提交到国际密码研究协会(IACR)的学术论文揭示了 Telegram 端到端加密协议 MTProto 2.0 中的一个颠覆性漏洞。该漏洞允许恶意或被攻陷的服务器在用户进行 “私密对话”(Secret Chats)时,不仅能解密消息内容,还能任意篡改、删除或伪造消息,从而彻底打破了其端到端加密(E2EE)的保密性与完整性承诺。
对于依赖 Telegram “私密对话” 进行敏感通信的用户而言,这一发现的冲击是巨大的。端到端加密的核心价值在于,即便中心服务器也无法窥探通信内容。然而,这项被称为 “颠覆式攻击”(Subversion Attack)的新技术,恰恰利用了服务器在加密流程中的特殊地位,从根本上破坏了信任链条。
核心漏洞:密钥交换中的致命缺陷
攻击的关键发生在 “私密对话” 建立初始的密钥交换阶段。MTProto 2.0 采用 Diffie-Hellman(DH)密钥交换算法来生成双方共享的加密密钥。整个流程大致如下:客户端 A 和客户端 B 希望建立私密对话,它们需要通过 Telegram 服务器交换公钥等信息,最终协商出一个只有它们自己知道的共享密钥。
问题就出在客户端对服务器返回消息的验证环节。根据 IACR 2024/499 论文 的详尽分析,一个恶意的服务器可以在 DH 交换过程中,向其中一个客户端(例如客户端 A)发送一个精心构造的畸形(Malformed)响应。根据协议的设计,客户端本应拒绝这类非标准响应,但研究人员发现,Telegram 的官方客户端(包括桌面和移动版)以及部分第三方客户端,未能严格执行验证,从而接受了这个畸形消息。
这个畸形消息的接受,导致客户端 A 计算出的共享密钥并非与客户端 B 协商而成,而是与一个由恶意服务器完全掌控的密钥相关联。服务器通过这种方式,相当于在两个不知情的用户之间,建立了一个 “伪造” 的加密通道。
攻击后果:从 “读” 到 “写” 的完全掌控
一旦颠覆攻击成功,恶意服务器便获得了对这条 “私密对话” 的完全控制权,具体表现为一种 “读 - 写预言机”(Read-Write Oracle)的能力:
-
解密消息(Read):当客户端 A 向 B 发送消息时,它会用被污染的密钥加密。由于该密钥为服务器所知,服务器可以轻松解密,获取原始明文内容。这使得所谓的 “保密” 对话在服务器面前形同虚设。
-
篡改与伪造消息(Write):更严重的是,服务器不仅能看,还能改。它可以拦截 A 发送给 B 的消息,解密后修改内容,再用正确的密钥(服务器同样持有与 B 通信的密钥)重新加密后发给 B。B 接收到的将是一条看似由 A 发出、签名正确、加密完整的消息,但内容已被篡改。服务器甚至可以主动伪造全新的消息,冒充 A 发送给 B,或冒充 B 发送给 A。
这种攻击的隐蔽性极高。从用户的角度看,一切如常:“私密对话” 的 UI 上显示着加密锁图标,消息的发送和接收也看似没有延迟或异常。用户无法感知到,他们之间传递的所有信息都经过了一个能看懂并能随意修改的 “中间人”。
工程层面的落地参数与应对策略
此次漏洞的根源在于客户端实现层面的疏忽,而非密码学算法本身的缺陷。这为我们提供了明确的修复路径和防御指引。
对于 Telegram 客户端开发者(包括第三方):
- 严格验证 DH 响应:必须立刻审查并修补 MTProto 2.0 的实现代码。在 DH 密钥交换的
resPQ、server_DH_params和dh_gen等关键步骤中,对服务器返回的所有数据结构、类型和数值范围进行强制性的、无一遗漏的严格验证。任何与协议规范不符的响应都必须被直接拒绝,并中断连接。 - 最小化信任:秉持 “零信任” 原则,不应信任来自服务器的任何未经加密签名验证的数据。即使是协议流程中的辅助性参数,也应被视为潜在的攻击向量。
- 引入安全标识符:可以考虑在 UI 层面引入更强的安全验证机制,例如让用户可以方便地比对 “安全码”(Safety Numbers),类似于 Signal 等应用的实现。虽然 MTProto 也有可视化密钥指纹,但此次攻击发生在密钥生成阶段,用户比对现有指纹可能也无法察觉异常。
对于普通用户:
- 立即更新客户端:保持所有设备上的 Telegram 客户端为最新版本。一旦官方发布包含此漏洞补丁的版本,应第一时间更新。
- 审视信任基础:需要重新评估对 Telegram “私密对话” 安全性的信任等级。对于需要极高安全保证的通信,考虑采用经过更多独立安全审计、设计上更能抵抗服务器攻击的端到端加密应用(如 Signal)。
- 警惕元数据风险:即便在漏洞修复后,也需谨记,任何中心化通信服务(包括 Telegram)始终能收集到元数据,例如谁在和谁通信、通信频率、时间等。
结语
Telegram MTProto 2.0 的颠覆式攻击漏洞,为所有加密通信应用敲响了警钟。它清晰地表明,一个安全的加密系统不仅依赖于强大的密码学算法,更取决于其在工程实践中 “忠实且审慎” 的实现。任何对协议规范的微小偏离,都可能演变为灾难性的安全缺口。对于追求隐私和安全的用户来说,持续关注独立安全研究的发现,并选择那些在设计和审计上都表现出最高透明度和严谨性的工具,是保护自己数字通信安全的唯一可行之道。