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工具, 后量子密码学, 数据加密, 日志审计, 测试用例, 物联网, 物联网网关, 网络测绘, 设备身份认证