返回

文章详情

Qt 一个基于 Rust 的 E2EE 后量子消息核心(在 124MB 内存上支持 10,000 个连接)

Hacker News2026年10月11日 23:52

一个 E2EE 消息应用的加密和传输核心的技术原型——X3DH、PQXDH(后量子)、双棘轮、密封发送者、噪声协议,全部用 Rust 实现,经过认真编译和测试。这不是一个成品,也不适合真实对话——在你花时间探索这个之前,请查看 "诚实点:这个真的能用吗?" 的部分。阅读英文版 → 背景 这个项目源于对隐私和系统安全的真正兴趣——特别是在如何构建抵御后门(由设计而非政策,包括由于欧盟讨论的 "聊天监管" 法律等)通信基础设施的问题上。目标不是停留在理论上,而是认真实施和测试每一部分:不是伪代码,不是图示——是可以编译、运行并具有自动化测试以确认其功能的代码。 为什么会有这个(除了技术上的练习目标) 几乎所有流行的消息应用都要求你的手机号以进行注册。即使消息内容是私密的,这种注册也会留下痕迹——谁和谁在何时、频率如何交谈。欧盟还有待讨论的法律(所谓的 "聊天监管"),可能迫使应用扫描人们的消息内容,即使是在自称 "加密" 的应用中。QT 试图用工程而不仅仅是隐私政策来回应这一点:基于加密密钥的身份(没有手机号,没有电子邮件),端到端加密,连服务器都无法破解,并且是开源的,以便任何人都能验证没有隐藏的把戏。如果你想要完全没有技术术语的解释,请从介绍项目.md 开始。 诚实点:这个真的能用吗? 是和不是——在你投入时间探索这个项目之前,值得明确这一点。它确实已经运行,并经过严格测试(这不仅仅是 "应该能工作" 的代码):端到端加密、网络层、一个交付消息但从无能看内容的服务器、一个已经在真实手机上运行的 Android 应用。这一切都有通过的自动化测试,多个部分经过我尽可能严格的手动测试(例如:在中途强制关闭服务器并确认数据得以存活)。 但还不能在日常生活中使用:缺少完整的用户界面(现在 Android 应用只有一个 "运行演示" 的按钮),缺少将服务器放在互联网上可访问的位置,且缺乏外部的安全审计,才能让任何人信任这个与真实对话的使用。换句话说:基础是坚固并经过测试的;但大楼还没有屋顶。 已建成的部分 部件 功能 信任 核心/会话建立(X3DH + 后量子变体)和持续加密(双棘轮)——与 Signal 使用的相同设计 ✅ 测试过(14+ 个自动化测试,包括故意应该失败的情况) 传输/通过 WebSocket 保护网络连接(噪声协议) ✅ 在真实的 WebSocket 连接上进行测试,而不是模拟的 服务器/ "邮递员": 传递消息,但从未查看内容也不知道发送方 ✅ 测试过,包括经受强制关闭(kill -9) 存储/在磁盘上加密存储你的身份和对话 ✅ 测试过,包括确认错误的密码不会打开任何内容 CLI/一个终端版本,以便在不需要手机的情况下进行尝试 ✅ 经测试,完全独立的进程之间进行交流 ffi/将所有这些与 Kotlin(Android)、Swift(iOS)和 Python 连接起来的桥梁 ✅ 从 Python 测试过 Android 应用 使用这个桥来证明一切在真实手机上都能运行 ✅ 已经在真实的 Android 模拟器上运行 缺失的部分,直接说 真实的对话界面在应用中(现在只是一个演示按钮) 一个可通过互联网访问的服务器,不仅仅在本地网络中 TLS 保护的连接(wss://)——现在只是简单的 ws://,仅适用于测试 多个独立服务器之间的协作(联合),以便没有一个政府能通过关闭一个就关闭整个网络 数据库的密码来自手机安全系统(Keystore/Secure Enclave),而不是来自命令行参数 独立的安全审计,由我之外的人进行 尝试自己运行 查看这个运行的最快方式是使用此命令,它逐步显示两个虚拟人物之间的完整加密对话:cargo run -p qt_cli --bin messenger_demo 编译需求 sudo apt install redis-server libsqlcipher-dev redis-server --daemonize yes 通过 rustup 安装 Rust——任何近期版本都可以,除了核心的后量子变体,需要 Rust 1.81 或更高版本。 运行测试 cargo test --workspace # 除了后量子 cargo test -p qt_core --features pq # 包括后量子 作为客户端使用

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

☕请我喝杯咖啡