NIkir0LL/lacert

GitHub: NIkir0LL/lacert

一个完全本地化、无需云端的后量子 IoT 安全系统,通过 Go 网关与 ESP32 固件将物联网设备安全接入隔离的企业网络。

Stars: 1 | Forks: 0

# LACERT [英语](#english) · [俄语](#русский) **LACERT** — 一个完全本地化、无需云端的系统,用于通过**后量子**安全机制将 IoT 设备连接到企业网络。包含网关、监控、REST API 和仪表板。 ## 英语 ### 它是什么 LACERT 将资源受限的 IoT 设备 (ESP32) 连接到企业网络,且完全不依赖任何云端服务。一切都在你自己的网关上运行。该协议结合了: - **后量子密钥交换** (ML-KEM-1024),确保流量在未来面对量子对手时依然安全; - **Noise_XX 风格的握手**,在此过程中,设备使用与 efuse 绑定的签名密钥向网关进行身份验证。身份验证是单向的:协议不验证网关签名,网关在部署条件下(即隔离的企业网络)被视为受信任的(参见 `docs/en/PROTOCOL_SPEC.md`,第 3 节); - **持续密钥轮换**,以实现前向保密性和妥协后安全性; - **远程固件完整性检查**(使用设备身份密钥签名的挑战-响应,因此后量子 SLH-DSA 选项也涵盖此项); - 使用 **ChaCha20-Poly1305** 作为加密数据通道。 本代码库是**完整的工作系统**:网关 daemon、设备注册表、遥测存储 (PostgreSQL)、嵌入式 MQTT broker、REST API 和监控仪表板。 ### 相关代码库 | 代码库 | 内容 | |------------|------| | [lacert-crypto-go](https://github.com/NIkir0LL/lacert-crypto-go) | 可复用的 Go 加密核心 (Apache-2.0) | | [lacert-crypto-esp32](https://github.com/NIkir0LL/lacert-crypto-esp32) | ESP32 设备固件 (Apache-2.0) | | **lacert** (本代码库) | 完整的网关 + 监控技术栈 (MIT) | ### 布局 | 路径 | 内容 | |------|------| | `cmd/gatewayd` | 网关 daemon | | `cmd/demo`, `cmd/devicesim`, `cmd/stresstest` | 演示和负载测试 | | `internal/gateway`, `internal/api` | 协议服务器和 REST API | | `internal/store` | PostgreSQL 持久化 | | `internal/scheduler`, `internal/telemetry` | 轮换调度和遥测 | | `internal/mqttbridge` | 嵌入式 MQTT broker 桥接 | | `internal/webui` | 监控仪表板 | | `firmware/` | ESP32 固件 (ESP-IDF) + Linux 调试构建 | | `benchmarks/` | DTLS 对比基准测试 | | `deploy/` | bare-metal 和 systemd 部署 | | `docs/en/`, `docs/ru/` | 完整的英语和俄语文档 | ### 快速开始 ``` # 构建 gateway go build ./cmd/gatewayd # 完整的 PostgreSQL 设置请参阅 docs/en/DEPLOY.md ``` 依赖项由 Go modules 获取 — 本代码库中不存储任何第三方代码。本地工作副本还可以将它们放在 `vendor/` 目录下以便离线构建(参见 `THIRD_PARTY_LICENSES.md`);该目录特意不予发布。 文档提供两种语言版本 — [英语](docs/en/OVERVIEW.md) · [俄语](docs/ru/OVERVIEW.md)。请从 [概述](docs/en/OVERVIEW.md) 开始了解项目全貌, 查看 [快速开始](docs/en/QUICKSTART.md) 以快速运行,或阅读 [协议规范](docs/en/PROTOCOL_SPEC.md) 了解字节级协议。 ### 许可证 MIT - 参见 [LICENSE](LICENSE)。第三方依赖保留其各自的许可证; 参见 [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md)(注意:MQTT 客户端 Eclipse Paho 位于 EPL-2.0 许可下)。 ## 俄语 ### 它是什么 LACERT 将资源受限的 IoT 设备 (ESP32) 连接到企业网络,且完全不依赖任何云端服务。一切都在你自己的网关上运行。该协议结合了: - **后量子密钥交换** (ML-KEM-1024),确保流量在未来面对量子对手时依然安全; - **Noise_XX 风格的握手**,在此过程中,设备使用与 efuse 绑定的签名密钥向网关进行身份验证。身份验证是单向的:协议不验证网关签名,网关在部署条件下(即隔离的企业网络)被视为受信任的(参见 `docs/ru/PROTOCOL_SPEC.md`,第 3 节); - **持续密钥轮换**,以实现前向保密性和妥协后安全性; - **远程固件完整性检查**(使用设备身份密钥签名的挑战-响应,因此后量子 SLH-DSA 选项也涵盖此项); - 使用 **ChaCha20-Poly1305** 作为加密数据通道。 本代码库是**完整的工作系统**:网关 daemon、设备注册表、遥测存储 (PostgreSQL)、嵌入式 MQTT broker、REST API 和监控仪表板。 ### 相关代码库 | 代码库 | 内容 | |-------------|-----| | [lacert-crypto-go](https://github.com/NIkir0LL/lacert-crypto-go) | 可复用的 Go 加密核心 (Apache-2.0) | | [lacert-crypto-esp32](https://github.com/NIkir0LL/lacert-crypto-esp32) | ESP32 设备固件 (Apache-2.0) | | **lacert** (本代码库) | 完整的网关 + 监控技术栈 (MIT) | ### 结构 | 路径 | 内容 | |------|-----| | `cmd/gatewayd` | 网关 daemon | | `cmd/demo`, `cmd/devicesim`, `cmd/stresstest` | 演示和负载测试 | | `internal/gateway`, `internal/api` | 协议服务器和 REST API | | `internal/store` | PostgreSQL 持久化存储 | | `internal/scheduler`, `internal/telemetry` | 轮换调度和遥测 | | `internal/mqttbridge` | 嵌入式 MQTT broker 桥接 | | `internal/webui` | 监控仪表板 | | `firmware/` | ESP32 固件 (ESP-IDF) 及其用于调试的 Linux 构建 | | `benchmarks/` | 用于与 DTLS 对比的基准测试 | | `deploy/` | bare-metal 和通过 systemd 部署 | | `docs/ru/`, `docs/en/` | 完整的俄语和英语文档 | ### 快速开始 ``` # собрать шлюз go build ./cmd/gatewayd # полная установка с PostgreSQL описана в docs/ru/DEPLOY.md ``` 依赖项由 Go modules 拉取 — 本代码库中不存储第三方代码。在本地工作副本中,它们还可以额外存放在 `vendor/` 目录下以便离线构建(参见 `THIRD_PARTY_LICENSES.md`);该目录特意不予发布。 文档提供两种语言版本 — [俄语](docs/ru/OVERVIEW.md) · [英语](docs/en/OVERVIEW.md)。建议从 [概述](docs/ru/OVERVIEW.md) 开始 — 了解项目全貌, [快速开始](docs/ru/QUICKSTART.md) — 快速运行, [协议规范](docs/ru/PROTOCOL_SPEC.md) — 字节级协议。 ### 许可证 MIT — 参见 [LICENSE](LICENSE)。第三方依赖保留其各自的许可证,参见 [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md)(请注意: MQTT 客户端 Eclipse Paho 位于 EPL-2.0 许可下)。
标签:ESP32, EVTX分析, Go, Ruby工具, 后量子密码学, 数据加密, 日志审计, 测试用例, 物联网, 物联网网关, 网络测绘, 设备身份认证