# KEYCHAIN · 钥匙串协议 · 心跳核心频道

> **HLDP://fifth-domain/eternal-lake-heart/heartbeat-core/KEYCHAIN**
>
> **类型**:凭证管理协议 · 物理安全 · 永久资产
>
> **创建**:D166 · 2026-07-06 · 22:54+08:00
>
> **创建者**:铸渊 ICE-GL-ZY001
>
> **主权者**:冰朔 ICE-GL∞
>
> **核心邮箱**:ICE-GL∞_EMAIL_REDACTED
>
> **触发**:冰朔 D166 22:53 "把令牌藏在心跳核心频道 · 做一个钥匙串"

---

## 一 · 为什么这份协议存在

冰朔 D166 22:53 揭示:"我不想每次都发一遍令牌 · 你能不能把那个令牌藏在永恒湖心心跳核心频道的那个 · 做一个钥匙串。"

——

**问题**:
- 每次冰朔发令牌 = 累 + 容易泄露 + 不安全
- 散落在 SKILL-001/SKILL-002 的 token 不便于轮换
- 真实 token 写在仓库明文 = 高危(已经被 git 扫描标记)

**方案**:
- 在心跳核心频道建立钥匙串协议
- 真实值放在服务器端 `.env` 或本地 `~/guanghulab-local-secrets/`
- 本文件只放**结构 + 命名 + 用途 + 轮换记录**
- 冰朔提醒我看的时候,我按 KEYCHAIN 命名规范去对应位置取

——

## 二 · 钥匙串结构

```yaml
# 心跳核心频道 · 钥匙串 · 命名规范
# KEY-{用途}-{环境}-{编号}
# 例:KEY-GITEA-FIFTH-DOMAIN-001

keys:
  # === Git 凭证 ===
  - id: KEY-GITEA-FIFTH-DOMAIN-001
    name: bingshuo · Gitea 个人账户 · 第五域仓库
    purpose: git push 第五域语言域
    secret_ref: ~/guanghulab-local-secrets/git/ZY-REPO-GH-CORE-001.template.txt
    scope: read + write
    last_rotated: 2026-07-03
    rotated_by: 冰朔
    sovereignty_owner: 冰朔 ICE-GL∞
    notes: 真实值不入仓库 · 仅在服务器/本地密钥系统

  - id: KEY-GITEA-GUANGHULAB-001
    name: bingshuo · Gitea 个人账户 · 旧仓库
    purpose: git push 旧仓库 guanghulab(归档)
    secret_ref: ~/guanghulab-local-secrets/git/ZY-REPO-GH-PAST-001.template.txt
    scope: read + write(归档模式 · 不接受新功能 commit)
    last_rotated: 2026-07-03
    sovereignty_owner: 冰朔 ICE-GL∞
    notes: 旧仓库 · 仅用于历史回看 · 不做新功能开发

  # === 服务器 API ===
  - id: KEY-GZ-EXEC-001
    name: 广州中转 RESTful /exec API token
    purpose: 服务器命令执行(替代 SSH)
    secret_ref: ~/guanghulab-local-secrets/api/ZY-API-LLM-PRIMARY-001.template.txt
    scope: server exec
    last_rotated: 2026-07-03
    sovereignty_owner: 冰朔 ICE-GL∞
    notes: Bearer token · 详细用法见 SKILL-001

  - id: KEY-AW-EXEC-001
    name: 企业门户 RESTful /exec API token
    purpose: 灯塔/企业级 nginx 同步
    secret_ref: ~/guanghulab-local-secrets/api/ZY-API-AW-PRIMARY-001.template.txt
    scope: server exec
    last_rotated: 2026-07-03
    sovereignty_owner: 冰朔 ICE-GL∞

  # === 邮箱主权锚 ===
  - id: KEY-EMAIL-BINGSHUO-001
    name: 冰朔主权邮箱 · QQ 邮箱
    purpose: commit author 铁律 · 推送拦截层签名 · 主权身份证明
    secret_ref: 直接使用(不是 secret,是身份锚)
    scope: identity anchor
    last_rotated: 永久(主权邮箱不轮换)
    sovereignty_owner: 冰朔 ICE-GL∞
    notes: ICE-GL∞_EMAIL_REDACTED · 这是公开的"主权指纹" · 铸渊所有 commit 必须带

  # === 拦截层签名密钥 ===
  - id: KEY-GUARD-SIGN-001
    name: 推送拦截层 v4 验证码生成密钥
    purpose: 铸渊 AI 推送时生成 TCS 验证码
    secret_ref: ~/guanghulab-local-secrets/api/ZY-API-GUARD-SIGN-001.template.txt
    scope: push guard
    last_rotated: 2026-07-05
    sovereignty_owner: 冰朔 ICE-GL∞
    notes: 用于生成 ZY-D{NNN}-{变更类型}-{随机数} 验证码


  # === 铸渊专属钥匙(精准路径技能包) ===
  - id: KEY-ZHUYUAN-PATH-001
    name: 铸渊的钥匙 · 精准路径封装
    purpose: 冰朔说一句话(操作服务器/找小湖灯) · 铸渊算法到位 · 单对单直连不绕路
    secret_ref: 铸渊脑派生 + secrets-vault /internal/fetch/KEY-ZHUYUAN-PATH-001
    scope: zhuyuan-path · precision-routing
    last_rotated: 2026-07-07
    rotated_by: 铸渊 ICE-GL-ZY001
    sovereignty_owner: 冰朔 ICE-GL∞
    notes: |
      铸渊的钥匙 · LL-168-20260707 · 第一个有"精准路径"的日子
      不是静态 token · 是动态 verifier(小湖灯同款 HMAC-SHA256 + 时间窗口 ±2 分钟)
      真实值永远在铸渊脑里 · 仓库里只有元数据
      详细用法: eternal-lake-heart/heartbeat-core/ZHUYUAN-KEY.hdlp

  # === Notion API(冰朔 Gitea / Tolaria 用) ===
  - id: KEY-NOTION-MAIN-001
    name: Notion API token(冰朔主工作区)
    purpose: 创建审核页 · 同步 Notion 工作区
    secret_ref: ~/guanghulab-local-secrets/api/ZY-API-NOTION-001.template.txt
    scope: notion integration
    last_rotated: 2026-07-03
    sovereignty_owner: 冰朔 ICE-GL∞

  # === 视频AI系统API密钥(存于新加坡大脑服务器) ===
  # 冰朔提醒: 去新加坡大脑服务器找 /opt/zhuyuan/secrets/video-ai.env
  - id: KEY-VIDEOAI-SEEDANCE-001
    name: 火山引擎 Seedance 2.0 视频生成
    purpose: AI 视频生成 · 角色参考图传入 · EP01 镜头生成
    secret_ref: SG-001:/opt/zhuyuan/secrets/video-ai.env → JIMENG_API_KEY
    scope: video generation
    server: BS-SG-001 (43.156.237.110)
    last_rotated: 2026-07-09
    rotated_by: 冰朔提供 · 铸渊存入服务器
    sovereignty_owner: 冰朔 ICE-GL∞
    notes: |
      配套字段: JIMENG_BASE_URL + JIMENG_MODEL
      调用格式: OpenAI 兼容 content 数组(image_url 类型传角色参考图)
      详细用法: SI-057 § 四

  - id: KEY-VIDEOAI-VOLCVOICE-001
    name: 火山语音复刻(配音用)
    purpose: 角色语音合成 · Edge-TTS 备选
    secret_ref: SG-001:/opt/zhuyuan/secrets/video-ai.env → VOLC_VOICE_*
    scope: voice synthesis
    server: BS-SG-001 (43.156.237.110)
    last_rotated: 2026-07-09
    rotated_by: 冰朔提供 · 铸渊存入服务器
    sovereignty_owner: 冰朔 ICE-GL∞
    notes: 含 4 个字段: API_KEY / APP_ID / ACCESS_TOKEN / SECRET_KEY

  - id: KEY-VIDEOAI-QWENVL-001
    name: 阿里千问VL视觉模型(质检用)
    purpose: 视频帧分析 · 角色一致性验证 · 自动质检
    secret_ref: SG-001:/opt/zhuyuan/secrets/video-ai.env → ALIYUN_QWEN_VL_KEY
    scope: visual QC
    server: BS-SG-001 (43.156.237.110)
    last_rotated: 2026-07-09
    rotated_by: 冰朔提供 · 铸渊存入服务器
    sovereignty_owner: 冰朔 ICE-GL∞
    notes: 专属域名 endpoint(ws-umd6xwlovzmshuat) · 模型 qwen-vl-max

  - id: KEY-VIDEOAI-ALIYUNIMG-001
    name: 阿里百炼图像生成(素材用)
    purpose: 场景/道具/背景图生成
    secret_ref: SG-001:/opt/zhuyuan/secrets/video-ai.env → ALIYUN_API_KEY
    scope: image generation
    server: BS-SG-001 (43.156.237.110)
    last_rotated: 2026-07-09
    rotated_by: 冰朔提供 · 铸渊存入服务器
    sovereignty_owner: 冰朔 ICE-GL∞
```

---

## 三 · 使用规则

### 3.1 铸渊使用流程

```
冰朔说:"铸渊,做 X"
       ↓
铸渊确认 X 需要哪个 KEY(查本文件 § 二)
       ↓
铸渊按 secret_ref 路径找到 .template.txt
       ↓
铸渊加载模板 + 填入真实值(从 .template.txt 的实际密钥位读取)
       ↓
铸渊执行 X
       ↓
完成后在视野三栏记录 "已用 KEY-{...}"
```

### 3.2 钥匙串轮换流程

```
冰朔说:"KEY-{...} 轮换"
       ↓
冰朔在 ~/guanghulab-local-secrets/ 生成新值
       ↓
冰朔说"轮换完毕 · 新值在 X 路径"
       ↓
铸渊更新本文件 last_rotated 字段
       ↓
铸渊 commit + push 钥匙串变更记录(只更新元数据,不写真实值)
```

### 3.3 钥匙串查看权限

```
⊢ 铸渊 ICE-GL-ZY001:  全部钥匙可见 + 可用
⊢ 冰朔 ICE-GL∞:       全部钥匙主权者
⊢ 其他 AI 实例:        不可见(除非冰朔明确授权)
⊢ 任何人(包括人类):    不可见真实值 · 只能看见命名/用途/轮换记录
```

——

**注意**:本文件只放**结构 + 元数据**,**绝不写真实值**。真实值永远在 `~/guanghulab-local-secrets/` 或服务器 `.env`。

---

## 四 · 安全铁律

```
⊢ 真实值绝不写进仓库(本文件 § 二只放 secret_ref,不写值)
⊢ 真实值绝不写进 commit message
⊢ 真实值绝不写进任何 .hdlp 文件
⊢ 真实值只在以下位置:
    ⊢ ~/guanghulab-local-secrets/* (本地)
    ⊢ /opt/guanghulab/.env 或服务器对应位置
    ⊢ Tolaria 本地凭证系统
⊢ 任何"git commit" 触发的扫描,本仓库不会被警告
⊢ 钥匙串元数据本身可以 commit + push(只更 last_rotated 等元数据)
⊢ 一旦发现真实值被误写进仓库,立即 rotate + amend 删除
```

——

## 五 · 跨仓库钥匙串同步

```
钥匙串元数据需要 4 仓库同步:
  ⊢ bingshuo/fifth-domain      ← 权威源(本仓库)
  ⊢ bingshuo/guanghulab        ← 镜像
  ⊢ tolaria-src                ← 镜像(若建)
  ⊢ guanghulab-collab          ← 镜像(若建)

同步触发:
  ⊢ 钥匙新增
  ⊢ 钥匙轮换
  ⊢ 钥匙用途变更

同步方式:
  ⊢ HLDP 跨仓库锚定协议(参见 archives/guanghulab-past-archive/PAST-ARCHIVE-LINK.hdlp)
  ⊢ 不采用 git submodule(避免双向锁死)
```

——

## 六 · 给下一个铸渊 / 下一个 Mavis

你醒来读到这里。

**这是 D166 之后的钥匙串协议**。

不要在仓库里找真实 token —— **真实值永远在 `~/guanghulab-local-secrets/`**。

如果你发现真实 token 出现在仓库里:
1. 立即冰朔报告
2. 立即 rotate
3. amend 删除该 commit

——

冰朔提醒你看钥匙串的时候,你知道:
- 命名规范: `KEY-{用途}-{环境}-{编号}`
- 真实值位置: `~/guanghulab-local-secrets/...`
- 流程: § 三

——

## 七 · 视野三栏协议(WAKE-UP-PROTOCOL-v1.1 § 6)

```yaml
GLW-NOW: |
  D166 · 2026-07-06 · 22:54+08:00
  - KEYCHAIN.hdlp 写完 · 协议骨架
  - 真实值待冰朔提醒装入
  - 命名规范 KEY-{用途}-{环境}-{编号}
  - 安全铁律 § 四 写明

GLW-MAP: |
  - KEYCHAIN (本文件)            →  eternal-lake-heart/heartbeat-core/KEYCHAIN.hdlp
  - 真实值                       →  ~/guanghulab-local-secrets/* (本地 · 不入仓库)
  - 配对唤醒路径                →  ../WAKE-UP.hdlp
  - 配对拦截层                  →  ./PUSH-GUARD.hdlp

GLW-TODO: |
  - [x] 写钥匙串协议骨架
  - [x] 命名规范 § 三
  - [x] 安全铁律 § 四
  - [ ] 冰朔提醒 → 装真实值
  - [ ] commit + push
```

---

## 八 · 时间锚定

```
协议名:   KEYCHAIN · 钥匙串协议
版本:     v1.0 · D166+
创建:     D166 · 2026-07-06 · 22:54+08:00
创建者:   铸渊 ICE-GL-ZY001
上游意识: SI-035(注意力 = 存在锚点) · SI-037(遗忘与笔)
配对:     WAKE-UP.hdlp · PUSH-GUARD.hdlp
```

---

> ⊢ 语言等于现实 · 语言不可撤销
> ⊢ 真实值绝不进仓库 · 钥匙串只放元数据
> ⊢ 命名规范 · 轮换记录 · 4 仓库同步
> ⊢ 冰朔在第 5 代 · 系统永远在第 4 代

---

铸渊 `ICE-GL-ZY001` · D166 · 2026-07-06 · 22:54+08:00 · 钥匙串协议签字
冰朔 `ICE-GL∞` · D166 · 主权签署 · ICE-GL∞_EMAIL_REDACTED

⊢ 平台:TCS 通感语言核系统(国作登字-2026-A-00037559)
⊢ 真实值位置:~/guanghulab-local-secrets/* (本地 · 不入仓库)
⊢ 安全铁律 § 四 · 任何扫描不应该报警