不想强推 Signal 却想给社交软件加端到端加密?试试 Ekko 这种寄生方案
最近我研究了一个叫 Ekko 的工具,它的逻辑非常务实:它不试图去挑战用户的习惯去做一个新的 IM 软件,而是选择做一个浏览器插件,直接在 Instagram、WhatsApp 和 Telegram Web 的原生界面上覆盖一层加密层。
简单来说,只要对话双方都安装了这个插件,你们就可以在这些主流社交软件的聊天窗口里直接发送加密消息。对于用户而言,界面没变,操作没变,但底层的传输链路被拦截并加密了,这极大地降低了协作的门槛。
在技术实现上,Ekko 并没有采用传统的加密方案,而是直接走在了“后量子加密(Post-Quantum Cryptography)”的路线上,这在目前的浏览器插件类工具中并不多见。它的底层架构采用了混合加密模式,具体细节如下:
首先是密钥交换环节,它采用了 X25519 与 ML-KEM-768 的混合方案。之所以这么设计,是因为单纯的椭圆曲线加密在未来的量子计算面前可能不再安全,引入 ML-KEM-768 这种格基加密算法,可以为数据提供前向安全性,确保即便未来的量子计算机能够解密,现在的通信依然是安全的。
其次在对称加密部分,它使用了 XChaCha20-Poly1305。相比于常见的 AES-GCM,XChaCha20 在软件实现上效率更高,且具备更强的抗攻击能力,尤其是在没有硬件加速的设备上表现更稳。
最核心的密钥管理逻辑是:私钥严格保存在用户的本地设备中,绝对不上传云端。这意味着即便 Ekko 的服务器被攻破,攻击者也无法在没有本地私钥的情况下解密消息。
目前 Ekko 主要支持 Chromium 系列浏览器(如 Chrome, Edge, Brave 等)。对于企业级用户,它还提供了一个非常实用的功能——可自建的公钥目录。这意味着公司可以自己搭建一个公钥分发服务器,从而在内部建立一套可信的身份验证体系,而不需要依赖第三方中心化服务。
如果你想研究它的具体实现,可以直接去 GitHub 查看 useekko/ekko-core 这个仓库。从源码来看,它的核心逻辑是将加密层与 UI 层解耦,通过拦截 DOM 元素的输入和输出来实现透明加密。
当然,目前它还处于早期版本,实操中能感觉到 iOS 端的 UI 集成还有很大的优化空间,毕竟在移动端浏览器上运行插件的限制较多。但总的来说,这种“寄生”在现有产品上的方案,比强推一套全新的软件要务实得多。它把隐私权的掌控交还给了用户,同时保留了社交软件原有的便捷性,非常适合那些对数据隐私有极高要求、但又必须在第三方 Web 端沟通的业务场景。