主要观点:XMPP 是常用消息协议,其各种实现已在技术社区存在数十年,曾被许多大公司使用,但基本协议传输明文。OMEMO 试图为 XMPP 生态系统添加端到端加密,但其存在诸多问题,不推荐使用 XMPP + OMEMO。
关键信息:
- XMPP 基本协议传输明文,OMEMO 基于 Signal 协议早期版本,意在加密 XMPP 但未达 Signal 水平,不能成为 Signal 的可行竞争者。
- OMEMO 存在协议冻结(多数实施版本落后)、加密设计随意(缺乏明确理由和变更说明)、市场渗透问题(可使用无加密的 XMPP,客户端可关闭 OMEMO)、相关应用(Conversations)复杂且依赖旧版本库等问题。
重要细节: - 最新 XEP - 0384 版本为 0.8.3 但多数实施仍为 0.3.0 及以前,很多实现缺少 AES - 256 - CBC,如 libomemo、Conversations 等。
- OMEMO 从 0.3.0 到 0.7.0 协议不断变化,如加密算法从 AES - 128 - GCM 到 AES - 256 - CBC + HMAC - SHA - 256 再到截断 HMAC - SHA - 256 认证标签,且规范未清晰指导实施者。
- Conversations 是最流行的带 OMEMO 支持的 XMPP 客户端,其代码中包含多种加密实现,如 OpenPGP、X.509 证书验证、SASL 实现及 OMEMO 实现等,且依赖旧版本的 Bouncy Castle 和 libsignal。
- 如 CVE - 2023 - 33202 等安全漏洞在 Conversations 依赖的库中存在但未修复。
总之,XMPP + OMEMO 存在多方面问题,当前不建议使用,未来虽可能改进但不能以此赌个人安全。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。