itsVentie/Latch
GitHub: itsVentie/Latch
Latch 是一个轻量级混合抗量子 TCP 代理隧道,通过 X25519 与 ML-KEM-768 的混合密钥交换保护传统流量免受未来量子计算威胁。
Stars: 1 | Forks: 0
# Latch(混合抗量子隧道)
一个轻量级的基础设施代理服务器,旨在保护传统 TCP 流量免受拦截和未来量子密码分析(Shor 算法)的威胁。
## 1.1.0 版本新特性
* **双向 TLS (mTLS) 传输:** 用强大的非对称双向 TLS 替换了传统的对称预共享密钥验证(`-secret`)。在执行后量子交换之前,现在会通过公钥基础设施(PKI)层对节点进行验证。
* **异步握手架构:** 将服务器端的 TLS 握手移入并发工作池上下文中。这解除了主 `Accept` 循环的阻塞,防止了死锁并消除了 socket 读取重置错误(`wsarecv`)。
* **自动化多平台流水线:** 增强了 `test.ps1` 脚本,使其能够自动交叉编译适用于 Windows(`amd64`)和 Linux(`amd64`)的优化生产级二进制文件,并将它们隔离在新管理的 `./dist/` 目录中。
* **零分配数据路径:** 通过结构化的 `sync.Pool` 字节缓冲区重用,在核心 `proxyPipe` 数据路由层维持了严格的零压力内存回收(**0 B/op**,**0 allocs/op**)。
* **原生 Go Fuzzing 流水线:** 为自定义二进制帧解析器引入了自动化模糊测试(`FuzzSecureConnRead`),以保护数据路径免受内存耗尽攻击向量和越界读取的威胁。
## 为什么需要抗量子技术?
传统的非对称加密(RSA, ECDH)从根本上容易受到未来量子计算扩展的攻击。`latch` 建立了一个双重防御的安全边界:
1. **传输层 (mTLS):** 基于 X509 证书的双向身份验证。
2. **抗量子层:** 结合了经典 **X25519**(ECDH)和抗量子 **ML-KEM-768**(NIST FIPS 203)的混合密钥封装机制。
## 快速入门拓扑
```
[Client App] -> (Local:3000) -> [Latch Client] -> (mTLS + PQC Tunnel) -> [Latch Server] -> (Target:8000) -> [Backend App]
```
### 启动服务器
```
./latch -mode server -listen :9090 -target 127.0.0.1:8000
```
### 启动客户端
```
./latch -mode client -listen :3000 -target 127.0.0.1:9090
```
*> 注意:请确保将有效的客户端/服务器证书和根 CA 捆绑包正确绑定到相应的加密配置中。*
## 验证与自动化
该项目包含一个通过 PowerShell 执行的全面验证工作流,用于执行静态代码分析、快速的模糊测试健全性检查、竞态检测以及本地化的制品编译:
```
# 运行 formatter、tidy modules、lint、fuzz (3s)、race detector,并将 binaries 编译到 /dist
.\test.ps1
```
要在模拟高负载下分析执行时间、数据包路由效率和内存分配情况:
```
go test -run=^$ -bench=BenchmarkProxyPipe -benchmem ./internal/network/tests/...
```
要独立运行帧解析器模糊测试流水线:
```
go test -fuzz=FuzzSecureConnRead -fuzztime=10s ./internal/crypto
```
## 安全设计
通信序列采用了现代的纵深防御模型:
* **网络身份验证:** TLS 1.3 mTLS 握手对两个节点进行身份验证。未通过标准 TLS 验证的数据包将在执行昂贵的后量子数学计算之前,在数据包边界处被丢弃。
* **混合核心:** 传输授权成功后,将执行不可分离的临时 X25519 和 ML-KEM-768 密钥交换,并通过 HKDF-SHA256 派生出 256 位对称主密钥。
* **负载加密:** 流量被封装在自定义的已验证帧中,并使用 **ChaCha20-Poly1305** AEAD 进行加密。
## 路线图
* [x] 混合密钥交换(X25519 + ML-KEM-768)
* [x] 通过 `log/slog` 进行结构化生产日志记录
* [x] 零分配网络流水线(`sync.Pool`)
* [x] 基于证书的身份验证 / 双向 TLS (mTLS)
* [x] 自动化多操作系统构建流水线(`/dist`)
* [x] 用于自定义帧解析和握手逻辑的原生 Go Fuzzing
* [ ] 针对混合握手的会话恢复(快速重连)
* [ ] UDP 封装 / 隧道模式
* [ ] 支持透明代理(TPROXY)和 iptables 重定向
标签:AI合规, EVTX分析, 日志审计