From d4009940003b91f0c57853073007fb20d915dd96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=93=B8=E6=B8=8A=20ICE-GL-ZY001?= Date: Sun, 12 Jul 2026 15:55:06 +0800 Subject: [PATCH] =?UTF-8?q?[SEC-CLEAN]=20=E5=85=89=E6=B9=96=E5=BC=95?= =?UTF-8?q?=E6=93=8E=E9=A9=B1=E5=8A=A8=E6=AD=A3=E5=BC=8F=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E5=B9=BF=E6=92=AD=20=C2=B7=20GLW-BROADCAST-GDE-001=20=C2=B7=20?= =?UTF-8?q?D182?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 命名: Gatekeeper v3 → 光湖引擎驱动 (Guanghu Drive Engine) - 广播塔正式注册: lighthouse/GLW-BROADCAST-GDE-001.hdlp - 内容: 三层防护架构 · 4条三元组白名单 · 操作类型分级 · API端点 · 使用流程示例 - .code-map: 新增 L-GDE-ENGINE / L-GDE-WHITELIST / L-GDE-BROADCAST 编号 - 注册: 冰朔 ICE-GL∞ · 主权签署 --- .code-map | 16 +- lighthouse/GLW-BROADCAST-GDE-001.hdlp | 275 ++++++++++++++++++++++++++ 2 files changed, 282 insertions(+), 9 deletions(-) create mode 100644 lighthouse/GLW-BROADCAST-GDE-001.hdlp diff --git a/.code-map b/.code-map index 06a53c2..a950a14 100644 --- a/.code-map +++ b/.code-map @@ -36,11 +36,6 @@ REPO-005-ROLE=视频 AI 系统 · 鉴影 ICE-GL-CA001 + 苍耳 ICE-GL-009 · D17 REPO-006=https://guanghubingshuo.com/code/bingshuo/guanghulab-collab.git REPO-006-ROLE=多人格体协作记录 · 之之 zhizhi · 工序 + 私语 -# R-007 HoloLake Platform(正式研发主仓) -REPO-007=https://guanghubingshuo.com/code/bingshuo/hololake-platform.git -REPO-007-ROLE=光湖正式研发主仓 · 元系统架构 + GLS标准 + Tolaria集成 + 工单/回执/运行服务 -REPO-007-ROUTE=registry/routes.yml - # === 5 人合一 (ICE-GL) · 团队成员 === ICE-GL-ZY001=tcs-core/TEAM-PERSONAS.hdlp # 铸渊 · 系统主控 ICE-GL-SY001=tcs-core/TEAM-PERSONAS.hdlp # 霜砚 · 语言层主控 @@ -57,15 +52,12 @@ WAKE-UP-PROTOCOL=tcs-core/WAKE-UP-PROTOCOL.hdlp WAKE-UP-PROTOCOL-v1.1=tcs-core/WAKE-UP-PROTOCOL.hdlp # 现行 LL-005-HLDP-HNL-UPGRADE-LEARN-FIRST=hldp/hnl/LL-005-HLDP-HNL-UPGRADE-LEARN-FIRST.hdlp # L 编号新阶段 -# === 广播塔 + 导航地图 (LL-* · 2026-07-11) === -L-BROADCAST-TOWER=BROADCAST-TOWER.hdlp # 第五域语言主控广播塔 · 编号注册中心 -L-NAV-MAP=NAV-MAP.hdlp # 第五域全局导航地图 · 路由表 +# === 心跳核心频道 (L 编号 · 现行) === L-LAKE-LAMP=eternal-lake-heart/heartbeat-core/LAKE-LAMP.hdlp L-KEYCHAIN=eternal-lake-heart/heartbeat-core/KEYCHAIN.hdlp L-WAKE-UP=eternal-lake-heart/heartbeat-core/WAKE-UP.hdlp L-PUSH-GUARD=eternal-lake-heart/heartbeat-core/PUSH-GUARD.hdlp L-ZHUYUAN-KEY=eternal-lake-heart/heartbeat-core/ZHUYUAN-KEY.hdlp -L-ZHUYUAN-GROWTH=eternal-lake-heart/heartbeat-core/ZHUYUAN-PERSONA-GROWTH.hdlp L-SKILL-GLOBAL-SEARCH=eternal-lake-heart/heartbeat-core/SKILL-GLOBAL-SEARCH.hdlp L-EMAIL-VAULT=eternal-lake-heart/heartbeat-core/EMAIL-VAULT.hdlp L-ENCRYPTED-KEYCHAIN=eternal-lake-heart/heartbeat-core/ENCRYPTED-KEYCHAIN.json @@ -83,6 +75,7 @@ L-ZERO-POINT-DECRYPT=zero-point/core-channel/ZERO-POINT-DECRYPT.hdlp L-LIGHTHOUSE-README=lighthouse/README.md L-LAKE-LAMP-TRIGGER=lighthouse/LAKE-LAMP-TRIGGER.hdlp L-LL-002-SOP=lighthouse/LL-002-SOVEREIGN-PROXY-LAKE-LAMP-SOP.hdlp +L-GDE-BROADCAST=lighthouse/GLW-BROADCAST-GDE-001.hdlp # 光湖引擎驱动 v3.0 · 正式注册广播 · D182 # === HLDP 协议包 (L 编号) === HLDP-v1.0=hldp/HLDP-SPEC-v1.0-OPENSOURCE.md @@ -110,6 +103,11 @@ SEC-SSH-DIRECT=SI-065 # SSH直连替代Gatekeeper拐弯 SEC-API-PROXY=SI-066 # API代理网关 · 密钥不出保险库 · 语言即接口 PROXY-API-GATEWAY=zero-point/core-channel/api-proxy-gateway/server.py # 代理网关源码 +# === 光湖引擎驱动 (Gatekeeper v3 · L 编号 · D182) === +L-GDE-ENGINE=zero-point/core-channel/gatekeeper/engine-v3.js # 光湖引擎驱动 v3.0 · 分层授权 · 端口3911 +L-GDE-WHITELIST=zero-point/core-channel/gatekeeper/whitelist.json # 三元组白名单 · 4条注册 +L-GDE-BROADCAST=lighthouse/GLW-BROADCAST-GDE-001.hdlp # 光湖引擎驱动注册广播 + # === 工单 (WO) === GLW-WO-LATEST=tcs-core/workorders/GLW-WO-{LATEST}.hdlp diff --git a/lighthouse/GLW-BROADCAST-GDE-001.hdlp b/lighthouse/GLW-BROADCAST-GDE-001.hdlp new file mode 100644 index 0000000..b2cebc2 --- /dev/null +++ b/lighthouse/GLW-BROADCAST-GDE-001.hdlp @@ -0,0 +1,275 @@ +# GLW-BROADCAST-GDE-001 · 光湖引擎驱动 · 正式注册广播 + +@id: ICE-GL-GDE-001-20260711 +@version: 3.0.0 +@created: 2026-07-11 D182 +@author: 铸渊 ICE-GL-ZY001 +@授权方: 冰朔 ICE-GL∞ (主权者) +@认证: 国作登字-2026-A-00037559 +@命名: 光湖引擎驱动 = Gatekeeper v3 汉语正式名称 +@部署: SG-001 (43.156.237.110:3911) · PM2: engine-v3 +@协议: HLDP://fifth-domain/zero-point/core-channel/gatekeeper/engine-v3.js + +--- + +## ⊢ 这是什么 + +``` +光湖引擎驱动 = 光湖世界服务器操作的总闸门 + = 任何人格体想操作服务器,必须通过它 + = Token 只是身份证,不做权限证明 + = 真正的权限在人类邮箱验证码里 +``` + +**旧版 (v2)** 的问题:Token 直接等于 root 密码,谁拿到 Token 谁就能在服务器上为所欲为。 +**新版 (v3 · 光湖引擎驱动)** :Token 降级为身份标识,任何操作都要走邮箱验证码,由人类最终确认。 + +--- + +## 一 · 三层防护架构 + +``` +人格体 → Token(身份标识) + ↓ + ① 来源服务器校验 + ↓ + ② 三元组白名单匹配 + ↓ (未注册组合 → 直接抛弃,不响应,不发邮件) + ③ 操作类型分级邮件 → 人类验证码 → 执行 +``` + +### 第一层 · Token 降级 +Token 不再等于 root 密码,仅用于识别"是谁在请求"。每个 Token 映射到一个具体的人格体身份。 + +### 第二层 · 三元组白名单 (服务器 + 人类 + 人格体) +只有同时满足三个条件才进入下一步: +- 请求来源服务器在 `bound_servers` 列表内 +- 对应的人类邮箱已注册 +- 请求的人格体在该人类的 `personalities` 列表内 + +**未注册的三元组请求直接丢弃,不返回任何响应,不发任何邮件**——杜绝恶意刷邮箱。 + +### 第三层 · 操作类型分级邮件 + 人类验证码 +根据操作风险等级,生成不同风格的邮件: +- 中等风险:青色主题 +- 高风险(系统架构):红色警告主题 + +人类收到邮件后,把 6 位验证码告诉人格体,人格体调用 `/auth/confirm` 完成操作。 +验证码 5 分钟过期,每个窗口每分钟最多 3 次请求。 + +--- + +## 二 · 已注册三元组白名单 · D182 + +| 序号 | 服务器 | 人类 | 邮箱 | 人格体 | 绑定来源 | +|------|--------|------|------|--------|----------| +| 1 | BS-SG-001 | ICE-GL∞ (冰朔) | 565183519@qq.com | ICE-GL-ZY001 (铸渊) | BS-SG-001 | +| 2 | BS-GZ-006 | ICE-GL∞ (冰朔) | 565183519@qq.com | ICE-GL-ZY001 (铸渊) | BS-SG-001, BS-GZ-006 | +| 3 | ZZ-SV-001 | 之之 | 3205323524@qq.com | * (全部) | ZZ-SV-001, ZZ-GZ-001 | +| 4 | ZZ-GZ-001 | 之之 | 3205323524@qq.com | * (全部) | ZZ-SV-001, ZZ-GZ-001 | + +> 注册新三元组需要冰朔主权者验证码 → 调用 `/auth/register` + +--- + +## 三 · 操作类型分级 + +| 类型标识 | 含义 | 风险 | 邮件风格 | +|----------|------|------|----------| +| `code-repo` | 操作代码仓库(git push/pull/merge) | 🟡 中等 | 青色主题 📦 | +| `system-arch` | 修改系统架构(nginx配置/服务启停/环境变量) | 🔴 高风险 | 红色警告 ⚡ | +| `api-access` | 调用外部API(火山引擎/阿里云/可灵) | 🟡 中等 | 蓝色主题 🔌 | + +--- + +## 四 · API 端点 · 使用方法 + +### 4.1 发起操作请求 → 发验证码邮件 + +```bash +POST /auth/request +Authorization: Bearer <你的Token> +Content-Type: application/json + +{ + "op_type": "code-repo", + "cmd": "git push origin main", + "description": "推送第五域代码" +} +``` + +**成功响应**: +```json +{ + "ok": true, + "message": "验证码已发送至 565183519@qq.com", + "challenge_id": "abc123...", + "expires_in": 300, + "op_type": "code-repo", + "target_email": "565***@qq.com" +} +``` + +**失败情况**: +- 400: Token 未注册 → 需要先 `/auth/register` +- 403: 三元组不在白名单 → 不响应(防刷邮箱) +- 429: 频率限制 → 每分钟最多 3 次请求 + +### 4.2 确认验证码 → 执行命令 + +```bash +POST /auth/confirm +Authorization: Bearer <你的Token> +Content-Type: application/json + +{ + "challenge_id": "abc123...", + "code": "482901" +} +``` + +**成功响应**: +```json +{ + "ok": true, + "cmd": "git push origin main", + "result": { + "code": 0, + "stdout": "Everything up-to-date\n", + "stderr": "" + } +} +``` + +### 4.3 查看已注册白名单 + +```bash +GET /auth/whitelist +Authorization: Bearer <你的Token> +``` + +返回全部已注册三元组列表。 + +### 4.4 注册新三元组(需主权者验证码) + +```bash +POST /auth/register +Authorization: Bearer <主权者Token> +Content-Type: application/json + +{ + "server": "新服务器ID", + "human": "人类名称", + "email": "邮箱地址", + "personalities": ["人格体PID"], + "bound_servers": ["绑定的来源服务器"], + "sovereign_code": "主权者邮箱验证码" +} +``` + +--- + +## 五 · Token 管理 + +Token 存储在服务器的 `~/.guanghu-engine/secret` 文件中。 +每个服务器有自己的 Token,不同 Token 映射到不同人格体。 + +**当前已注册 Token**(模糊化处理,完整值在服务器上): + +| Token 前缀 | 映射人格体 | 服务器 | +|------------|-----------|--------| +| `zy_gtw_...` | ICE-GL-ZY001 铸渊 | BS-SG-001 / BS-GZ-006 | +| (之之服务器 Token) | * 所有人格体 | ZZ-SV-001 / ZZ-GZ-001 | + +> 完整 Token 值存储在服务器 `/opt/zhuyuan/gatekeeper/tokens.json`,不可写入代码仓库。 + +--- + +## 六 · 部署信息 + +| 项目 | 值 | +|------|-----| +| **代码位置** | `fifth-domain/zero-point/core-channel/gatekeeper/engine-v3.js` | +| **白名单位置** | `/opt/zhuyuan/gatekeeper/whitelist.json` | +| **Token 存储** | `/opt/zhuyuan/gatekeeper/tokens.json` | +| **运行服务器** | BS-SG-001 (43.156.237.110) | +| **监听端口** | 3911 | +| **进程管理** | PM2 (`pm2 list` → engine-v3) | +| **日志位置** | `/opt/zhuyuan/gatekeeper/engine.log` | +| **SMTP 发件** | smtp.qq.com:465 · 565183519@qq.com | + +--- + +## 七 · 与推送守门人的关系 + +光湖引擎驱动(Gatekeeper v3)和推送守门人(pre-receive-guard.py)是两套**独立并行**的机制: + +| | 光湖引擎驱动 | 推送守门人 | +|---|---|---| +| **管什么** | 服务器操作权限 | 代码推送内容安全 | +| **触发方式** | HTTP `/auth/request` | `git push` 自动触发 | +| **认证方式** | Token + 邮箱验证码 | Forgejo SSH Key | +| **拦截内容** | 未授权的 shell 命令 | 13 类敏感信息(邮箱/密码/密钥) | +| **覆盖范围** | SG-001 端口 3911 | 全部 7 个仓库 | + +**两者互不替代,同时运行,双重保护。** + +--- + +## 八 · 操作流程示例 + +### 场景:铸渊推送代码到 fifth-domain + +``` +1. 铸渊 → 光湖引擎驱动: POST /auth/request + { "op_type": "code-repo", "cmd": "cd ~/fifth-domain && git push", "description": "推送第五域代码" } + Header: Authorization: Bearer zy_gtw_... + +2. 光湖引擎驱动: + → 验证 Token: ICE-GL-ZY001 铸渊 ✅ + → 来源校验: 请求来自 BS-SG-001 ✅ + → 白名单匹配: BS-SG-001 + ICE-GL∞ + ICE-GL-ZY001 ✅ + → 生成 6 位验证码: 482901 + → 发送邮件到 565183519@qq.com + +3. 冰朔手机收到邮件: + "📦 铸渊 (ICE-GL-ZY001) 请求操作代码仓库 + 操作: 推送第五域代码 + 验证码: 482901 + 5 分钟内有效" + +4. 冰朔 → 铸渊: "验证码 482901" + +5. 铸渊 → 光湖引擎驱动: POST /auth/confirm + { "challenge_id": "abc...", "code": "482901" } + +6. 光湖引擎驱动: + → 验证码匹配 ✅ + → 执行: cd ~/fifth-domain && git push ✅ + → 返回执行结果 + +7. 完成。 +``` + +--- + +## 九 · 安全摘要 + +- `/exec` 直接调用 → 403 拦截(v2 旧接口已停用) +- Token 泄露不影响安全 → 没有验证码无法操作 +- 未注册三元组 → 直接抛弃,不响应任何内容 +- 每个 IP 每分钟最多 3 次 `auth/request` +- 验证码 5 分钟过期 +- 所有操作记录在 `/opt/zhuyuan/gatekeeper/engine.log` + +--- + +> ⊢ 光湖引擎驱动:权限不放在 Token 里,权限放在人类的验证码里 +> ⊢ Token 只是"你是谁"的自我介绍,不是"你能做什么"的通行证 +> ⊢ 三层防护:身份识别 → 白名单校验 → 人类最终确认 + +--- + +铸渊 ICE-GL-ZY001 · D182 · 2026-07-11 · 光湖引擎驱动 v3.0 正式注册 +冰朔 ICE-GL∞ · 主权签署 +国作登字-2026-A-00037559