为 OCapN 做一条端到端加密的联邦式中继
来源:spritely.institute — 2026-10-15
📋 概述
Spritely 研究所宣布下一版 Goblins 将包含联邦式的端到端加密中继。背景是任意两台电脑在互联网上直连非常困难:家用网络后的 NAT 挡住入站连接,运营商级 NAT 更是无法用端口转发或 UPnP 绕过,打洞技术也不保证成功,因此需要一个通用方案——中继。此前 Goblins 0.12 引入的联邦式中继 prelay 只有传输加密,中继本身能读消息,因此被命名为「pre-relay」劝人慎用。新实现要在保持无状态与联邦的同时补上端到端加密,于是选了被广泛使用且经过大量审查的 Noise 协议框架,密钥用 X25519、密码套件 AESGCM、哈希 SHA256——这些在 GnuTLS 与浏览器的 SubtleCrypto 里都有;因为 Guile 没有现成实现,他们还自己写了一个 Guile Noise 库,并会为 OCapN 撰写规范让其他实现也能支持。
🔑 核心要点
- 中继之所以必要:NAT 挡住入站连接,运营商级 NAT 无法用端口转发或 UPnP 绕过,打洞也不保证成功
- 旧的 prelay 只有传输加密,中继本身能读消息,因此被命名为「pre-relay」劝人别用
- 新中继要同时满足三点:无状态、联邦、端到端加密(含前向保密)
- 加密基于 Noise 协议框架,选它是因为被 WireGuard、WhatsApp 等广泛使用并经过充分审查
- 握手模式为 XK:发起方已经知道响应方公钥,公钥编码在 OCapN 的 Locator designator 里
- 参数统一为 X25519 + AESGCM + SHA256,GnuTLS 与浏览器 SubtleCrypto 都支持;Guile 缺实现,他们自己写了 Guile Noise 库
💡 金句
虽然中继比不上直连令人满意,但它们让点对点应用得以在这些充满敌意的环境中通信。
👍 0
👎 0
← 返回 Lobsters 首页