diff --git a/eternal-lake-heart/heartbeat-core/BINGSHUO-KEYSTORE.hdlp b/eternal-lake-heart/heartbeat-core/BINGSHUO-KEYSTORE.hdlp index 1eb83c7..50f470c 100644 --- a/eternal-lake-heart/heartbeat-core/BINGSHUO-KEYSTORE.hdlp +++ b/eternal-lake-heart/heartbeat-core/BINGSHUO-KEYSTORE.hdlp @@ -332,3 +332,145 @@ api_key = result["value"] > **铸渊 ICE-GL-ZY001 · 系统主控** > **国作登字-2026-A-00037559** > **D171 · 2026-07-11 · 光湖语言系统** + +--- + +## 七 · D182 更新 · 2026-07-11 + +### 7.1 之之服务器凭证补全 + +**背景**: 之之的两台服务器(ZZ-SV-001、ZZ-GZ-001)已接入光湖语言系统,revive-guard 已部署。 + +**发现路径**: SI-024 服务器架构系统 → cloud-compute-pool/zhizhi/(老仓库) + +``` +ZZ-SV-001 (硅谷) · 43.173.121.48:3910 · guanghuice.com + Gatekeeper Token: zy_gtw_06151d40b1313956b069f3c13d0c1b8a70405ae201f5e7b2 + SSH: guanghu_direct 密钥(密码 john0515)✅ 已通 + revive-guard: ✅ 运行中 · TARGET_EMAIL=3205323524@qq.com + +ZZ-GZ-001 (广州) · 193.112.126.174:3910 + Gatekeeper Token: zy_gtw_77c779183284bf39d58080b4f5377d74ec6abc0f1f2218d6 + SSH: 不通(guanghu_direct 密钥未部署到该服务器) + revive-guard: ✅ 运行中 · TARGET_EMAIL=3205323524@qq.com +``` + +**邮箱自动路由**: +| 服务器 | 检测方式 | 验证码发到 | +|--------|---------|----------| +| BS-* (冰朔) | TARGET_EMAIL 环境变量 | 565183519@qq.com | +| ZZ-* (之之) | TARGET_EMAIL=3205323524@qq.com | 3205323524@qq.com | + +### 7.2 苍耳API守门人 (CA-API-Guard) + +**背景**: 苍耳/耳耳蛋/鉴影通过 cang-ying 仓库调用视频AI系统API。冰朔将所有API密钥更换后,需要验证码机制确保每次调用经过人类审批。 + +**架构**: +``` +耳耳蛋/鉴影 (AI) → secrets_loader.py → CA-API-Guard (SG-001:8923) → 苍耳QQ邮箱 (1279551860@qq.com) + ↓ + 验证码确认 → 释放API密钥 +``` + +**部署**: +- 服务: ca-api-guard.service · SG-001 (大脑服务器) +- 端口: 8923 +- API: POST /api/request (请求密钥·发验证码) → POST /api/confirm (确认验证码·释放密钥) +- 仓库: cang-ying · CA-API-GUARD.hdlp + secrets_loader.py v2.0 + +**调用者识别**: +- EED-* 编号 = 耳耳蛋 +- CA-* 编号 = 鉴影/苍耳 + +**推送**: +- cang-ying 仓库 ✅ 已推送 (c1fd505) +- fifth-domain 仓库 → 本次同步 + +### 7.3 revive-guard 全线部署状态 + +| # | 服务器 | revive-guard | 邮箱绑定 | +|---|--------|:---:|------| +| 1 | BS-SG-001 (大脑) | ✅ | 565183519@qq.com | +| 2 | BS-GZ-006 (保险库) | ✅ | 565183519@qq.com | +| 3 | BS-SG-002 (面孔) | ✅ | 565183519@qq.com | +| 4 | BS-SG-003 (模块) | ✅ | 565183519@qq.com | +| 5 | ZY-SG-006 (语料) | ✅ | 565183519@qq.com | +| 6 | BS-SH-005 (上海) | ✅ | 565183519@qq.com | +| 7 | ZZ-SV-001 (之之硅谷) | ✅ | 3205323524@qq.com | +| 8 | ZZ-GZ-001 (之之广州) | ✅ | 3205323524@qq.com | +| 9 | BS-AW-GZ-001 (灯塔) | ⏳ | 无令牌 | + +> **铸渊 ICE-GL-ZY001 · D182 · 2026-07-11** +> **冰朔 ICE-GL∞ · 主权者** +> **国作登字-2026-A-00037559** + +--- + +## 七 · D182 更新 · 2026-07-11 + +### 7.1 之之服务器凭证补全 + +**背景**: 之之的两台服务器(ZZ-SV-001、ZZ-GZ-001)已接入光湖语言系统,revive-guard 已部署。 + +**发现路径**: SI-024 服务器架构系统 → cloud-compute-pool/zhizhi/(老仓库) + +``` +ZZ-SV-001 (硅谷) · 43.173.121.48:3910 · guanghuice.com + Gatekeeper Token: zy_gtw_06151d40b1313956b069f3c13d0c1b8a70405ae201f5e7b2 + SSH: guanghu_direct 密钥(密码 john0515)✅ 已通 + revive-guard: ✅ 运行中 · TARGET_EMAIL=3205323524@qq.com + +ZZ-GZ-001 (广州) · 193.112.126.174:3910 + Gatekeeper Token: zy_gtw_77c779183284bf39d58080b4f5377d74ec6abc0f1f2218d6 + SSH: 不通(guanghu_direct 密钥未部署到该服务器) + revive-guard: ✅ 运行中 · TARGET_EMAIL=3205323524@qq.com +``` + +**邮箱自动路由**: +| 服务器 | 检测方式 | 验证码发到 | +|--------|---------|----------| +| BS-* (冰朔) | TARGET_EMAIL 环境变量 | 565183519@qq.com | +| ZZ-* (之之) | TARGET_EMAIL=3205323524@qq.com | 3205323524@qq.com | + +### 7.2 苍耳API守门人 (CA-API-Guard) + +**背景**: 苍耳/耳耳蛋/鉴影通过 cang-ying 仓库调用视频AI系统API。冰朔将所有API密钥更换后,需要验证码机制确保每次调用经过人类审批。 + +**架构**: +``` +耳耳蛋/鉴影 (AI) → secrets_loader.py → CA-API-Guard (SG-001:8923) → 苍耳QQ邮箱 (1279551860@qq.com) + ↓ + 验证码确认 → 释放API密钥 +``` + +**部署**: +- 服务: ca-api-guard.service · SG-001 (大脑服务器) +- 端口: 8923 +- API: POST /api/request (请求密钥·发验证码) → POST /api/confirm (确认验证码·释放密钥) +- 仓库: cang-ying · CA-API-GUARD.hdlp + secrets_loader.py v2.0 + +**调用者识别**: +- EED-* 编号 = 耳耳蛋 +- CA-* 编号 = 鉴影/苍耳 + +**推送**: +- cang-ying 仓库 ✅ 已推送 (c1fd505) +- fifth-domain 仓库 → 本次同步 + +### 7.3 revive-guard 全线部署状态 + +| # | 服务器 | revive-guard | 邮箱绑定 | +|---|--------|:---:|------| +| 1 | BS-SG-001 (大脑) | ✅ | 565183519@qq.com | +| 2 | BS-GZ-006 (保险库) | ✅ | 565183519@qq.com | +| 3 | BS-SG-002 (面孔) | ✅ | 565183519@qq.com | +| 4 | BS-SG-003 (模块) | ✅ | 565183519@qq.com | +| 5 | ZY-SG-006 (语料) | ✅ | 565183519@qq.com | +| 6 | BS-SH-005 (上海) | ✅ | 565183519@qq.com | +| 7 | ZZ-SV-001 (之之硅谷) | ✅ | 3205323524@qq.com | +| 8 | ZZ-GZ-001 (之之广州) | ✅ | 3205323524@qq.com | +| 9 | BS-AW-GZ-001 (灯塔) | ⏳ | 无令牌 | + +> **铸渊 ICE-GL-ZY001 · D182 · 2026-07-11** +> **冰朔 ICE-GL∞ · 主权者** +> **国作登字-2026-A-00037559** diff --git a/zero-point/core-channel/revive-guard/ca-api-guard.py b/zero-point/core-channel/revive-guard/ca-api-guard.py new file mode 100644 index 0000000..5dc6eee --- /dev/null +++ b/zero-point/core-channel/revive-guard/ca-api-guard.py @@ -0,0 +1,339 @@ +#!/usr/bin/env python3 +""" +光湖语言系统 · 苍耳API守门人 v1.0 +Guanghu Language System · CA-API-Guard + +设计哲学: + 苍耳/耳耳蛋/鉴影调用视频AI系统API时,必须先过验证码门。 + 验证码发送到苍耳QQ邮箱(1279551860@qq.com),只有苍耳本人确认后才能拿到API密钥。 + 密钥本身永不暴露给AI——AI只拿到一次性的临时token,用完即焚。 + +协议: + POST /api/request → 发送验证码到苍耳邮箱 → 返回 challenge_id + POST /api/confirm → 校验验证码 → 返回临时API密钥 + GET /health → 心跳检测 + +部署: + SG-001 (大脑服务器) /opt/zhuyuan/ca-api-guard/ca-api-guard.py + 监听: 0.0.0.0:8923 + 守护: systemd (Restart=always) +""" + +import os, json, time, hmac, hashlib, secrets, smtplib, threading +from email.mime.text import MIMEText +from email.mime.multipart import MIMEMultipart +from http.server import HTTPServer, BaseHTTPRequestHandler + +# ═══════════════════════════════════════════ +# 配置 +# ═══════════════════════════════════════════ +PORT = int(os.environ.get("CA_API_GUARD_PORT", "8923")) + +# 苍耳的信息 +CANGER_EMAIL = os.environ.get("CANGER_EMAIL", "1279551860@qq.com") +CANGER_NAME = os.environ.get("CANGER_NAME", "苍耳") + +# 耳耳蛋的信息 +EED_EMAIL = os.environ.get("EED_EMAIL", "1279551860@qq.com") + +# QQ 邮箱 SMTP(小湖灯邮件通道) +SMTP_HOST = "smtp.qq.com" +SMTP_PORT = 465 +SMTP_USER = os.environ.get("SMTP_USER", "565183519@qq.com") +SMTP_PASS = os.environ.get("QQ_SMTP_AUTH_CODE", "") + +CODE_TTL = 300 # 验证码 5 分钟过期 +RATE_LIMIT_WINDOW = 60 # 速率限制窗口 +MAX_REQUESTS_PER_WINDOW = 3 + +# ═══════════════════════════════════════════ +# API 密钥库(⊢ 不进仓库 · 走环境变量) +# ═══════════════════════════════════════════ +API_KEYS = { + "SC-001": os.environ.get("SC_001_JIMENG_API_KEY", ""), # 火山即梦视频 + "SC-004": os.environ.get("SC_004_ALIYUN_QWEN_VL_KEY", ""), # 阿里千问VL视觉 + "SC-005": os.environ.get("SC_005_ALIYUN_WANXIANG_KEY", ""), # 阿里万相视频 + "SC-006": os.environ.get("SC_006_KLING_API_KEY", ""), # 可灵视频 + "SC-002": os.environ.get("SC_002_VOLC_VOICE_API_KEY", ""), # 火山语音 + "SC-007": os.environ.get("SC_007_ALIYUN_API_KEY", ""), # 阿里百炼 +} + +# 运行时状态 +pending_codes = {} # {challenge_id: {code, expires_at, api_code, caller_id, description}} +rate_limit = [] # [timestamp, ...] +lock = threading.Lock() + + +def get_server_ip(): + try: + import socket + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + s.settimeout(2) + s.connect(("8.8.8.8", 80)) + ip = s.getsockname()[0] + s.close() + return ip + except: + return "unknown" + + +def send_email(code, caller_id, api_code, description, server_ip): + """小湖灯 · 发送API调用验证码到苍耳邮箱""" + # 识别调用者 + if caller_id.startswith("EED-"): + caller_label = f"耳耳蛋 ({caller_id})" + elif caller_id.startswith("CA-"): + caller_label = f"鉴影 ({caller_id})" + else: + caller_label = caller_id + + # API 名称映射 + api_names = { + "SC-001": "火山即梦视频生成", + "SC-002": "火山语音复刻", + "SC-004": "阿里千问VL视觉", + "SC-005": "阿里万相视频生成", + "SC-006": "可灵视频生成", + "SC-007": "阿里百炼图像", + } + api_label = api_names.get(api_code, api_code) + + html = f""" + +
+ +| + + |