密钥集中风险
单层方案把所有安全性押在一份会话密钥上。无论是被内存读取、被弱随机数泄露,还是被实现层的边界错误波及,整条链路一次失守。
单层加密的现实困境是:一旦攻击者掌握单点密钥,整条链路即被还原。快连的做法是在标准隧道之上叠加一层独立协商的传输层加密,两层使用不同的密钥材料与不同的派生路径,任意一层被攻破,另一层依然完整。
单层方案把所有安全性押在一份会话密钥上。无论是被内存读取、被弱随机数泄露,还是被实现层的边界错误波及,整条链路一次失守。
加密套件调用、随机数生成、认证标签校验中的任一缺陷,在单层结构中直接等价于明文暴露。外层加密可以吸收这类实现层缺陷。
企业安全审计常要求"密钥分域管理":不同数据域使用不可相互推导的密钥。双重加密天然满足这一要求,也便于分阶段换密钥。
明文只在设备内部与回环网卡上短暂存在,一旦进入隧道就被两重加密包裹。
从点击连接到可以访问外网,快连需要完成下面七个步骤。全过程不涉及任何明文数据外发。
客户端向落地节点发送隧道握手请求,携带客户端支持的密钥交换算法列表与会话随机数。此时尚未产生任何业务流量。
双方各自生成临时密钥对并交换公开部分,结合对端公开部分与握手随机数计算出共享密钥。该过程具备前向保密特性,落地节点长期持有私钥也无法解密历史会话。
使用派生密钥对握手消息做认证校验,确认对端身份与握手未被篡改。校验失败立即终止,不进入后续流程。
以隧道共享密钥为输入,通过单向密钥派生函数得到传输层密钥。该过程为单向,落地节点保存的隧道密钥无法反推出传输层密钥本体。
隧道记录层启动,此后传输的所有字节先经隧道层加密封装。此时单点抓包得到的是不可解析的密文记录。
在隧道内部完成传输层密钥确认握手,确保第二重加密可用且两端密钥一致。这一步完全发生在已加密的隧道内,公网不可见。
客户端接管系统路由与 DNS 解析权限,业务流量开始按隧道 → 传输层顺序封装发出。若此时隧道异常,终止开关会阻止路由被放行。
快连在两重加密中分别使用不同用途的算法:隧道层偏重密钥协商与跨平台兼容性,传输层偏重移动端与低算力设备的吞吐。
| 层 | 密钥交换 | 数据通道算法 | 认证标签 | 选择理由 |
|---|---|---|---|---|
| 隧道层 | X25519(ECDHE 曲线) | ChaCha20-Poly1305 | Poly1305 | 在无硬件加速的设备上仍能保持高吞吐,且不受 AES-NI 支持情况影响 |
| 隧道层(兼容模式) | ECDHE P-256 | AES-256-GCM | GCM 内置 | 为不支持 X25519 的老旧设备保留的兼容路径 |
| 传输层 | 由隧道层单向派生 | AES-256-GCM | GCM 内置 | 桌面端具备 AES-NI 时性能最优,适合高带宽场景 |
| 传输层(移动端) | 由隧道层单向派生 | ChaCha20-Poly1305 | Poly1305 | 手机 CPU 无 AES 硬件加速时更省电 |
| 附加完整性 | — | HMAC-SHA384 帧校验 | HMAC | 在启用混淆模式时对封装后记录做二次校验 |
加密强度不仅取决于算法,更取决于密钥是否长期有效。快连的会话密钥遵循"短生命周期 + 定期轮换 + 用后即弃"原则。
| 阶段 | 隧道数据密钥 | 传输层密钥 | 握手随机数 |
|---|---|---|---|
| 连接建立 | 生成 | 派生生成 | 生成 |
| 稳态传输 | 按阈值轮换 | 随隧道同步 | 不再使用 |
| 切换节点 | 销毁重建 | 销毁重建 | 重新生成 |
| 连接关闭 | 内存擦除 | 内存擦除 | 内存擦除 |
下表为官方实验室在 100 Mbps 带宽、30ms RTT 条件下测得的典型值,用于说明量级。实际数值随设备算力、线路质量与节点负载浮动。
| 配置 | 握手耗时 | 相对单层 | 稳态吞吐(100 Mbps 线路) | CPU 占用(4 核设备) |
|---|---|---|---|---|
| 单层加密(对照) | 约 62 ms | 基准 | 约 98 Mbps | 约 6% |
| 仅隧道层 | 约 78 ms | +26% | 约 97 Mbps | 约 9% |
| 双重加密 | 约 93 ms | +50% | 约 96 Mbps | 约 14% |
| 双重加密 + 混淆 | 约 121 ms | +95% | 约 95 Mbps | 约 17% |
| 双重加密 + 混淆 + 终止开关 | 约 121 ms | +95% | 约 95 Mbps | 约 17% |
双重加密位于客户端「设置 → 安全」面板,与混淆模式、终止开关在同一处配置。
状态栏显示"双层加密已生效"即表示协商完成。
移动端切换加密模式会短暂重建隧道,约 1–2 秒。
明确能力边界,比堆砌功能更重要。以下问题双重加密无法解决。