链路层用 AES-256-GCM 做认证加密,密钥交换采用临时密钥实现前向保密;节点侧采用无硬盘架构,运行数据仅存在于内存。加密解决传输安全,无盘解决存储安全,两者互补而非替代。
为什么选 GCM 而不是单独的加密模式
加密分两个诉求:机密性(别人看不到内容)和完整性(别人不能悄悄篡改)。传统做法是先加密再单独算一个校验值,两步分开容易在实现上留下漏洞——攻击者若能操纵密文而不被发现,就可能通过观察解密失败与否推断明文信息。
认证加密(AEAD)把两者合并在一个原语里:AES-256-GCM 在解密时同时验证认证标签,标签不匹配直接拒绝,不会输出任何明文片段。这消除了先解密再校验这一段的攻击面,也让实现更难写出漏洞。这是快连选择 GCM 而不是其他模式的主要原因。
如果密钥交换用长期密钥加密会话密钥,那么长期密钥一旦泄露,历史上抓取的全部密文都可能被离线解密。前向保密(PFS)的做法是每次会话都用临时生成的密钥对完成交换,会话结束后临时私钥即销毁。这样即使长期身份密钥日后泄露,也无法回溯解密历史会话。
代价是每次会话都要多做一次密钥交换运算,且服务端需要维护临时密钥状态。对于连接频繁重建的场景,这部分开销是可观测的。快连的取舍是:默认启用前向保密,在极低端设备上允许降级到会话票据恢复以减少运算量,并在客户端中明示当前状态。
无硬盘指中转节点不配置持久化存储介质,运行态数据只存在于内存,会话结束后被释放。它解决的是数据被长期留存的风险:即使节点设备被物理接触或下线,也无法从存储介质中还原历史流量内容。
需要明确边界:无盘节点不等于节点不处理数据,转发过程中数据必然经过节点内存。无盘降低的是留存风险,而不是接触风险。链路加密负责让经过节点的数据不可读,无盘负责让数据不留痕,两者解决的是不同问题。
快连的密钥分为三层:长期身份密钥仅用于认证,不用于加密业务数据;会话密钥由临时密钥交换生成,生命周期与连接绑定;子流密钥按路径独立派生,防止单条路径密钥暴露影响整条连接。三层密钥的销毁时机各不相同,会话结束后临时密钥与子流密钥立即销毁。
| 设计点 | 保护的威胁 | 明确边界 |
|---|---|---|
| AES-256-GCM 认证加密 | 窃听与密文篡改 | 不防端点设备自身被入侵 |
| 临时密钥交换(前向保密) | 长期密钥泄露导致历史流量被解密 | 低端设备可降级为票据恢复 |
| 分层密钥派生 | 单路径密钥暴露影响全局 | 不替代客户端本地安全加固 |
| 无硬盘节点 | 数据被长期留存 | 不改变转发过程中的内存接触 |
我们不做绝对安全、无法被破解这类不可证伪的宣称。任何加密方案的安全性都取决于实现质量与密钥管理,而非算法名称本身。快连可提供的是明确的加密套件、明确的密钥生命周期,以及可被独立核对的架构描述。