fifth-domain/lighthouse/GLW-BROADCAST-GDE-001.hdlp

276 lines
8.3 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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∞ (冰朔) | ICE_GL_OWNER_EMAIL_REDACTED | ICE-GL-ZY001 (铸渊) | BS-SG-001 |
| 2 | BS-GZ-006 | ICE-GL∞ (冰朔) | ICE_GL_OWNER_EMAIL_REDACTED | ICE-GL-ZY001 (铸渊) | BS-SG-001, BS-GZ-006 |
| 3 | ZZ-SV-001 | 之之 | EMAIL_REDACTED@qq.com | * (全部) | ZZ-SV-001, ZZ-GZ-001 |
| 4 | ZZ-GZ-001 | 之之 | EMAIL_REDACTED@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": "验证码已发送至 ICE_GL_OWNER_EMAIL_REDACTED",
"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 · ICE_GL_OWNER_EMAIL_REDACTED |
---
## 七 · 与推送守门人的关系
光湖引擎驱动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
→ 发送邮件到 ICE_GL_OWNER_EMAIL_REDACTED
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