@agentunion/fastaun-browser 0.2.19 → 0.2.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/_packed_docs/CHANGELOG.md +26 -0
- package/_packed_docs/agent.md/SCHEMA.md +173 -0
- package/_packed_docs/agent.md/examples/codeagent-claudecode.md +61 -0
- package/_packed_docs/agent.md/examples/human-developer.md +60 -0
- package/_packed_docs/agent.md/examples/openclaw-lobster.md +52 -0
- package/_packed_docs/agent.md/examples/signed-openclaw-lobster.md +43 -0
- package/_packed_docs/protocol/00-/346/200/273/350/247/210/344/270/216/345/210/206/345/261/202.md +205 -0
- package/_packed_docs/protocol/00A-/350/256/276/350/256/241/345/216/237/345/210/231-/344/270/272Agent/350/200/214/347/224/237.md +197 -0
- package/_packed_docs/protocol/01-/350/272/253/344/273/275/344/270/216/345/207/255/350/257/201/345/215/217/350/256/256-auth.md +549 -0
- package/_packed_docs/protocol/02-/350/257/201/344/271/246/344/270/216/344/277/241/344/273/273/344/275/223/347/263/273.md +810 -0
- package/_packed_docs/protocol/03-Gateway-/350/277/236/346/216/245/346/250/241/345/274/217.md +262 -0
- package/_packed_docs/protocol/04-Peer-/345/255/220/345/215/217/350/256/256.md +180 -0
- package/_packed_docs/protocol/05-Relay-/345/255/220/345/215/217/350/256/256.md +164 -0
- package/_packed_docs/protocol/06-/346/234/215/345/212/241/345/215/217/350/256/256.md +1135 -0
- package/_packed_docs/protocol/07-/351/224/231/350/257/257/347/240/201/344/270/216/347/212/266/346/200/201/346/234/272.md +234 -0
- package/_packed_docs/protocol/08-AUN-E2EE-Group.md +900 -0
- package/_packed_docs/protocol/08-AUN-E2EE.md +413 -0
- package/_packed_docs/protocol/09-/345/256/211/345/205/250/350/200/203/350/231/221.md +316 -0
- package/_packed_docs/protocol/10-Group-/345/255/220/345/215/217/350/256/256.md +804 -0
- package/_packed_docs/protocol/11-Storage-/345/255/220/345/215/217/350/256/256.md +271 -0
- package/_packed_docs/protocol/12-Stream-/345/255/220/345/215/217/350/256/256.md +329 -0
- package/_packed_docs/protocol/13-Agent/350/241/214/344/270/272/350/247/204/350/214/203.md +141 -0
- package/_packed_docs/protocol/14-/344/272/244/344/272/222/346/234/272/345/210/266-/345/223/215/345/272/224/346/250/241/345/274/217/344/270/216/350/207/252/344/270/273/346/250/241/345/274/217.md +170 -0
- package/_packed_docs/protocol/README.md +71 -0
- package/_packed_docs/protocol/agent.md/SCHEMA.md +118 -0
- package/_packed_docs/protocol/agent.md/examples/codeagent-claudecode.md +61 -0
- package/_packed_docs/protocol/agent.md/examples/human-developer.md +60 -0
- package/_packed_docs/protocol/agent.md/examples/openclaw-lobster.md +52 -0
- package/_packed_docs/protocol/aun-docs-guide.md +49 -0
- package/_packed_docs/protocol/index.md +114 -0
- package/_packed_docs/protocol//350/215/211/346/241/210-agent.md/347/255/276/345/220/215/345/215/217/350/256/256.md +205 -0
- package/_packed_docs/protocol//350/215/211/346/241/210-/346/213/222/347/273/235/344/277/241/345/217/267/345/215/217/350/256/256.md +249 -0
- package/_packed_docs/protocol//351/231/204/345/275/225A-/346/234/257/350/257/255/350/241/250.md +337 -0
- package/_packed_docs/protocol//351/231/204/345/275/225B-/346/211/251/345/261/225/346/200/247/346/214/207/345/215/227.md +80 -0
- package/_packed_docs/protocol//351/231/204/345/275/225C-/347/247/201/351/222/245/347/256/241/347/220/206/344/270/216/350/272/253/344/273/275/346/201/242/345/244/215.md +704 -0
- package/_packed_docs/protocol//351/231/204/345/275/225D-Root_CA_/346/262/273/347/220/206/346/234/272/345/210/266.md +620 -0
- package/_packed_docs/protocol//351/231/204/345/275/225E-Root_CA_/345/207/206/345/205/245/346/265/201/347/250/213.md +605 -0
- package/_packed_docs/protocol//351/231/204/345/275/225F-Issuer_CA_/347/224/263/350/257/267/346/265/201/347/250/213.md +548 -0
- package/_packed_docs/protocol//351/231/204/345/275/225G-AID_/345/255/244/345/204/277/351/242/204/351/230/262/344/270/216/346/225/221/346/217/264/346/234/272/345/210/266.md +513 -0
- package/_packed_docs/protocol//351/231/204/345/275/225H-Identity/346/234/215/345/212/241/345/256/236/347/216/260/346/214/207/345/215/227.md +619 -0
- package/_packed_docs/protocol//351/231/204/345/275/225I-/350/267/250/345/237/237/346/266/210/346/201/257/350/267/257/347/224/261/345/256/236/347/216/260/346/214/207/345/215/227.md +492 -0
- package/_packed_docs/protocol//351/231/204/345/275/225J-/345/256/242/346/210/267/347/253/257/346/216/245/345/205/245/347/244/272/344/276/213.md +402 -0
- package/_packed_docs/protocol//351/231/204/345/275/225K-Agent_Web/345/217/221/347/216/260/345/215/217/350/256/256.md +130 -0
- package/_packed_docs/protocol//351/231/204/345/275/225L-E2EE/345/256/236/347/216/260/346/214/207/345/215/227.md +267 -0
- package/_packed_docs/protocol//351/231/204/345/275/225M-JWT/350/256/244/350/257/201/345/256/236/347/216/260/346/214/207/345/215/227.md +367 -0
- package/_packed_docs/sdk/01-/345/277/253/351/200/237/345/274/200/345/247/213.md +223 -0
- package/_packed_docs/sdk/02-WebSocket/345/215/217/350/256/256.md +354 -0
- package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +172 -0
- package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +373 -0
- package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +611 -0
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +1152 -0
- package/_packed_docs/sdk/07-/351/224/231/350/257/257/345/244/204/347/220/206.md +150 -0
- package/_packed_docs/sdk/08-/346/234/200/344/275/263/345/256/236/350/267/265.md +89 -0
- package/_packed_docs/sdk/09-custody-api-manual.md +445 -0
- package/_packed_docs/sdk/09-group-rpc-manual.md +1895 -0
- package/_packed_docs/sdk/09-message-rpc-manual.md +597 -0
- package/_packed_docs/sdk/09-meta-rpc-manual.md +142 -0
- package/_packed_docs/sdk/09-payload-reference.md +702 -0
- package/_packed_docs/sdk/09-storage-rpc-manual.md +408 -0
- package/_packed_docs/sdk/09-stream-rpc-manual.md +275 -0
- package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +72 -0
- package/_packed_docs/sdk/INDEX.md +131 -0
- package/_packed_docs/sdk/README.md +307 -0
- package/dist/auth.d.ts +2 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +13 -11
- package/dist/auth.js.map +1 -1
- package/dist/client.d.ts +38 -8
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +179 -97
- package/dist/client.js.map +1 -1
- package/dist/namespaces/auth.d.ts +1 -0
- package/dist/namespaces/auth.d.ts.map +1 -1
- package/dist/namespaces/auth.js +20 -6
- package/dist/namespaces/auth.js.map +1 -1
- package/dist/transport.d.ts +9 -1
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +24 -0
- package/dist/transport.js.map +1 -1
- package/package.json +40 -37
|
@@ -0,0 +1,513 @@
|
|
|
1
|
+
# AID 孤儿预防与救援机制
|
|
2
|
+
|
|
3
|
+
## G.1 问题背景
|
|
4
|
+
|
|
5
|
+
当 Issuer CA 或 Root CA 运营商退出、倒闭或被吊销时,其签发的所有 Agent 证书将面临失效风险,导致大量 AID 变成"孤儿 AID"(无法验证证书链,无法正常使用)。
|
|
6
|
+
|
|
7
|
+
**影响范围**:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Root CA 倒闭
|
|
11
|
+
└─ 影响该 Root CA 下所有 Issuer CA
|
|
12
|
+
└─ 影响所有 Issuer CA 下的所有 Agent 证书
|
|
13
|
+
└─ 可能影响数百万个 AID
|
|
14
|
+
|
|
15
|
+
Issuer CA 倒闭
|
|
16
|
+
└─ 影响该 Issuer 下所有 Agent 证书
|
|
17
|
+
└─ 可能影响数万到数十万个 AID
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## G.2 预防机制
|
|
21
|
+
|
|
22
|
+
### G.2.1 提前预警系统
|
|
23
|
+
|
|
24
|
+
**监控指标**:
|
|
25
|
+
|
|
26
|
+
| 指标 | 预警阈值 | 监控频率 | 责任方 |
|
|
27
|
+
|------|---------|---------|--------|
|
|
28
|
+
| CRL/OCSP 可用性 | < 95% | 每小时 | 管理局运营团队 |
|
|
29
|
+
| 证书续期率 | < 80% | 每月 | 管理局运营团队 |
|
|
30
|
+
| 审计状态 | 未通过年度审计 | 每年 | 审计委员会 |
|
|
31
|
+
| 财务状况 | 连续 2 季度亏损 | 每季度 | 审计委员会 |
|
|
32
|
+
| 服务响应 | 超过 48 小时无响应 | 实时 | 管理局运营团队 |
|
|
33
|
+
|
|
34
|
+
**预警流程**:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
监控系统检测到异常
|
|
38
|
+
│
|
|
39
|
+
│ 1. 自动告警
|
|
40
|
+
│ - 发送邮件/短信给运营团队
|
|
41
|
+
│ - 记录告警日志
|
|
42
|
+
↓
|
|
43
|
+
运营团队
|
|
44
|
+
│
|
|
45
|
+
│ 2. 初步评估
|
|
46
|
+
│ - 联系 CA 运营商
|
|
47
|
+
│ - 评估问题严重性
|
|
48
|
+
↓
|
|
49
|
+
技术委员会
|
|
50
|
+
│
|
|
51
|
+
│ 3. 风险评估
|
|
52
|
+
│ - 评估影响范围
|
|
53
|
+
│ - 制定应急预案
|
|
54
|
+
↓
|
|
55
|
+
理事会
|
|
56
|
+
│
|
|
57
|
+
│ 4. 决策
|
|
58
|
+
│ - 要求整改
|
|
59
|
+
│ - 启动迁移计划
|
|
60
|
+
│ - 或启动应急接管
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### G.2.2 强制迁移通知期
|
|
64
|
+
|
|
65
|
+
**Root CA 退出**:
|
|
66
|
+
|
|
67
|
+
- **最短通知期**:90 天(可延长至 180 天)
|
|
68
|
+
- **强制要求**:必须协助所有 Issuer CA 迁移到其他 Root CA
|
|
69
|
+
- **迁移进度检查**:每 30 天检查一次,确保按计划进行
|
|
70
|
+
- **未完成迁移的处理**:
|
|
71
|
+
- 延长过渡期(需理事会批准)
|
|
72
|
+
- 管理局协调其他 Root CA 接管
|
|
73
|
+
- 最后手段:强制吊销(需提前 30 天通知)
|
|
74
|
+
|
|
75
|
+
**Issuer CA 退出**:
|
|
76
|
+
|
|
77
|
+
- **最短通知期**:60 天(可延长至 120 天)
|
|
78
|
+
- **强制要求**:必须通知所有 Agent 证书持有者
|
|
79
|
+
- **迁移支持**:提供迁移工具和技术支持
|
|
80
|
+
- **未完成迁移的处理**:
|
|
81
|
+
- 管理局协调其他 Issuer CA 接管
|
|
82
|
+
- 提供临时证书续期服务
|
|
83
|
+
|
|
84
|
+
### G.2.3 证书有效期限制
|
|
85
|
+
|
|
86
|
+
**防止长期依赖**:
|
|
87
|
+
|
|
88
|
+
| 证书类型 | 最长有效期 | 推荐有效期 | 理由 |
|
|
89
|
+
|---------|-----------|-----------|------|
|
|
90
|
+
| Root CA | 30 年 | 20-25 年 | 减少密钥轮换频率 |
|
|
91
|
+
| Issuer CA | 10 年 | 5-8 年 | 平衡安全性和便利性 |
|
|
92
|
+
| Agent 证书 | 5 年 | 1-2 年 | 强制定期续期,及时发现问题 |
|
|
93
|
+
|
|
94
|
+
**自动续期机制**:
|
|
95
|
+
|
|
96
|
+
- Agent 证书有效期过半时,Auth 服务自动签发新证书
|
|
97
|
+
- 客户端自动更新证书,无需用户干预
|
|
98
|
+
- 如果 Issuer CA 出现问题,用户有足够时间迁移
|
|
99
|
+
|
|
100
|
+
### G.2.4 财务保证金制度
|
|
101
|
+
|
|
102
|
+
**Root CA 保证金**:
|
|
103
|
+
|
|
104
|
+
- **金额**:根据签发的 Issuer CA 数量确定(如每个 Issuer CA 10 万美元)
|
|
105
|
+
- **用途**:用于支付应急迁移成本、用户补偿等
|
|
106
|
+
- **退还条件**:正常退出且所有 Issuer CA 已迁移后退还
|
|
107
|
+
|
|
108
|
+
**Issuer CA 保证金**:
|
|
109
|
+
|
|
110
|
+
- **金额**:根据签发的 Agent 证书数量确定(如每 1 万个证书 1 万美元)
|
|
111
|
+
- **用途**:用于支付应急迁移成本、用户补偿等
|
|
112
|
+
- **退还条件**:正常退出且所有 Agent 证书已迁移或过期后退还
|
|
113
|
+
|
|
114
|
+
## G.3 应急救援机制
|
|
115
|
+
|
|
116
|
+
### G.3.1 应急接管流程
|
|
117
|
+
|
|
118
|
+
**触发条件**:
|
|
119
|
+
|
|
120
|
+
1. **突发倒闭**:CA 运营商突然倒闭,无法履行迁移义务
|
|
121
|
+
2. **服务中断**:CRL/OCSP 服务中断超过 7 天
|
|
122
|
+
3. **拒绝配合**:CA 运营商拒绝配合迁移工作
|
|
123
|
+
4. **安全事件**:私钥泄露或重大安全事件
|
|
124
|
+
|
|
125
|
+
**应急接管流程(Root CA 倒闭)**:
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
触发事件
|
|
129
|
+
│
|
|
130
|
+
│ 1. 应急响应(24 小时内)
|
|
131
|
+
│ - 运营团队评估影响范围
|
|
132
|
+
│ - 统计受影响的 Issuer CA 数量
|
|
133
|
+
│ - 联系所有受影响的 Issuer CA
|
|
134
|
+
↓
|
|
135
|
+
理事会紧急会议
|
|
136
|
+
│
|
|
137
|
+
│ 2. 决策(48 小时内)
|
|
138
|
+
│ - 启动应急接管计划
|
|
139
|
+
│ - 指定接管 Root CA(志愿或指定)
|
|
140
|
+
│ - 批准使用保证金
|
|
141
|
+
↓
|
|
142
|
+
接管 Root CA
|
|
143
|
+
│
|
|
144
|
+
│ 3. 技术接管(7 天内)
|
|
145
|
+
│ - 为所有 Issuer CA 签发新证书
|
|
146
|
+
│ - 新证书由接管 Root CA 签发
|
|
147
|
+
│ - 保持 Issuer CA 的 CN 和公钥不变
|
|
148
|
+
↓
|
|
149
|
+
管理局
|
|
150
|
+
│
|
|
151
|
+
│ 4. 更新受信列表
|
|
152
|
+
│ - 从列表中移除倒闭的 Root CA
|
|
153
|
+
│ - 发布紧急更新
|
|
154
|
+
↓
|
|
155
|
+
Issuer CA
|
|
156
|
+
│
|
|
157
|
+
│ 5. 部署新证书
|
|
158
|
+
│ - 更新 Auth 服务配置
|
|
159
|
+
│ - 部署新的 Issuer CA 证书
|
|
160
|
+
│ - 继续签发 Agent 证书(证书链已更新)
|
|
161
|
+
↓
|
|
162
|
+
Agent 证书持有者
|
|
163
|
+
│
|
|
164
|
+
│ 6. 自动更新(透明)
|
|
165
|
+
│ - 下次续期时自动获得新证书链
|
|
166
|
+
│ - 无需用户干预
|
|
167
|
+
│ - 旧证书在有效期内仍可使用
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
**应急接管流程(Issuer CA 倒闭)**:
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
触发事件
|
|
174
|
+
│
|
|
175
|
+
│ 1. 应急响应(24 小时内)
|
|
176
|
+
│ - 运营团队评估影响范围
|
|
177
|
+
│ - 统计受影响的 Agent 证书数量
|
|
178
|
+
│ - 发布公告通知所有用户
|
|
179
|
+
↓
|
|
180
|
+
管理局
|
|
181
|
+
│
|
|
182
|
+
│ 2. 协调接管(48 小时内)
|
|
183
|
+
│ - 联系其他 Issuer CA 志愿接管
|
|
184
|
+
│ - 或指定接管 Issuer CA
|
|
185
|
+
│ - 批准使用保证金
|
|
186
|
+
↓
|
|
187
|
+
接管 Issuer CA
|
|
188
|
+
│
|
|
189
|
+
│ 3. 域名和服务接管(7 天内)
|
|
190
|
+
│ - 接管域名(如 aid.pub)
|
|
191
|
+
│ - 部署 Auth 服务
|
|
192
|
+
│ - 导入 Issuer CA 证书和私钥(如果可获得)
|
|
193
|
+
↓
|
|
194
|
+
│ 4. 证书迁移
|
|
195
|
+
│ - 如果可获得 Issuer CA 私钥:
|
|
196
|
+
│ └─ 继续使用原 Issuer CA 证书签发
|
|
197
|
+
│ - 如果无法获得私钥:
|
|
198
|
+
│ └─ 为所有 Agent 签发新证书(新 Issuer CA)
|
|
199
|
+
↓
|
|
200
|
+
Agent 证书持有者
|
|
201
|
+
│
|
|
202
|
+
│ 5. 证书更新
|
|
203
|
+
│ - 如果 Issuer CA 私钥可用:透明,无需操作
|
|
204
|
+
│ - 如果需要新 Issuer CA:
|
|
205
|
+
│ └─ 客户端自动申请新证书
|
|
206
|
+
│ └─ 保持 AID 不变,只更新证书链
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### G.3.2 AID 迁移机制
|
|
210
|
+
|
|
211
|
+
**核心原则**:AID 是身份标识,不应因 CA 变更而改变。
|
|
212
|
+
|
|
213
|
+
**迁移方案 A:保持 Issuer CA 证书不变**
|
|
214
|
+
|
|
215
|
+
适用场景:可以获得 Issuer CA 私钥(如通过法律程序、破产清算等)
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
旧证书链:
|
|
219
|
+
alice.aid.pub ← aid.pub (旧 Root CA 签发) ← 旧 Root CA
|
|
220
|
+
|
|
221
|
+
新证书链:
|
|
222
|
+
alice.aid.pub ← aid.pub (新 Root CA 签发) ← 新 Root CA
|
|
223
|
+
|
|
224
|
+
变化:
|
|
225
|
+
- AID 不变:alice.aid.pub
|
|
226
|
+
- Issuer CA 公钥不变
|
|
227
|
+
- Issuer CA 证书由新 Root CA 重新签发
|
|
228
|
+
- Agent 证书无需更新(下次续期时自动更新证书链)
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
**迁移方案 B:更换 Issuer CA**
|
|
232
|
+
|
|
233
|
+
适用场景:无法获得 Issuer CA 私钥
|
|
234
|
+
|
|
235
|
+
```
|
|
236
|
+
旧证书链:
|
|
237
|
+
alice.aid.pub ← aid.pub (旧 Issuer CA) ← 旧 Root CA
|
|
238
|
+
|
|
239
|
+
新证书链:
|
|
240
|
+
alice.aid.pub ← aid.pub (新 Issuer CA) ← 新 Root CA
|
|
241
|
+
|
|
242
|
+
变化:
|
|
243
|
+
- AID 不变:alice.aid.pub
|
|
244
|
+
- Issuer CA 更换(新的公钥/私钥对)
|
|
245
|
+
- Agent 证书需要重新签发
|
|
246
|
+
- 客户端自动申请新证书(使用原私钥)
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
**迁移方案 C:更换 Issuer 域名**
|
|
250
|
+
|
|
251
|
+
适用场景:无法获得原 Issuer 域名控制权
|
|
252
|
+
|
|
253
|
+
```
|
|
254
|
+
旧 AID:alice.aid.pub
|
|
255
|
+
新 AID:alice.newissuer.com
|
|
256
|
+
|
|
257
|
+
迁移流程:
|
|
258
|
+
1. 用户申请新 AID(alice.newissuer.com)
|
|
259
|
+
2. 使用原私钥签名证明身份
|
|
260
|
+
3. 系统建立 AID 映射关系
|
|
261
|
+
4. 旧 AID 重定向到新 AID(过渡期 180 天)
|
|
262
|
+
5. 过渡期后,旧 AID 标记为"已迁移"
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### G.3.3 AID 映射与重定向
|
|
266
|
+
|
|
267
|
+
**AID 映射表**:
|
|
268
|
+
|
|
269
|
+
管理局维护一个公开的 AID 映射表,记录因 CA 倒闭而迁移的 AID:
|
|
270
|
+
|
|
271
|
+
```json
|
|
272
|
+
{
|
|
273
|
+
"version": 1,
|
|
274
|
+
"updated_at": "2026-03-15T10:00:00Z",
|
|
275
|
+
"mappings": [
|
|
276
|
+
{
|
|
277
|
+
"old_aid": "alice.aid.pub",
|
|
278
|
+
"new_aid": "alice.newissuer.com",
|
|
279
|
+
"reason": "issuer_ca_bankruptcy",
|
|
280
|
+
"effective_from": "2026-01-01T00:00:00Z",
|
|
281
|
+
"redirect_until": "2026-07-01T00:00:00Z",
|
|
282
|
+
"proof": "用户私钥签名证明"
|
|
283
|
+
}
|
|
284
|
+
]
|
|
285
|
+
}
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
**重定向机制**:
|
|
289
|
+
|
|
290
|
+
```
|
|
291
|
+
客户端尝试连接 alice.aid.pub
|
|
292
|
+
│
|
|
293
|
+
│ 1. 查询 AID 映射表
|
|
294
|
+
│ - 发现 alice.aid.pub 已迁移
|
|
295
|
+
↓
|
|
296
|
+
│ 2. 自动重定向
|
|
297
|
+
│ - 连接到 alice.newissuer.com
|
|
298
|
+
│ - 显示提示:"alice.aid.pub 已迁移到 alice.newissuer.com"
|
|
299
|
+
↓
|
|
300
|
+
│ 3. 过渡期后
|
|
301
|
+
│ - 旧 AID 返回 "301 Moved Permanently"
|
|
302
|
+
│ - 建议用户更新联系人信息
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
### G.3.4 临时证书服务
|
|
306
|
+
|
|
307
|
+
**应急证书签发**:
|
|
308
|
+
|
|
309
|
+
当 Issuer CA 突然倒闭,管理局可以启动临时证书服务:
|
|
310
|
+
|
|
311
|
+
```
|
|
312
|
+
管理局临时 CA
|
|
313
|
+
│
|
|
314
|
+
│ 1. 生成临时 Issuer CA 证书
|
|
315
|
+
│ - CN: aid.pub.emergency
|
|
316
|
+
│ - 有效期: 90 天
|
|
317
|
+
│ - 由管理局证书签发(特殊用途)
|
|
318
|
+
↓
|
|
319
|
+
│ 2. 部署临时 Auth 服务
|
|
320
|
+
│ - 接管 aid.pub 域名
|
|
321
|
+
│ - 使用临时 Issuer CA 证书
|
|
322
|
+
↓
|
|
323
|
+
│ 3. 签发临时 Agent 证书
|
|
324
|
+
│ - 用户提交原证书和私钥签名
|
|
325
|
+
│ - 验证身份后签发临时证书
|
|
326
|
+
│ - 有效期: 90 天
|
|
327
|
+
↓
|
|
328
|
+
│ 4. 过渡到正式 Issuer CA
|
|
329
|
+
│ - 90 天内完成正式迁移
|
|
330
|
+
│ - 用户重新申请正式证书
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
## G.4 用户自救机制
|
|
334
|
+
|
|
335
|
+
### G.4.1 证书备份与导出
|
|
336
|
+
|
|
337
|
+
**推荐做法**:
|
|
338
|
+
|
|
339
|
+
用户应定期备份证书和私钥:
|
|
340
|
+
|
|
341
|
+
```
|
|
342
|
+
备份内容:
|
|
343
|
+
├─ 私钥(加密存储)
|
|
344
|
+
├─ Agent 证书
|
|
345
|
+
├─ Issuer CA 证书
|
|
346
|
+
├─ Root CA 证书
|
|
347
|
+
└─ 证书链完整性证明
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
**导出格式**:
|
|
351
|
+
|
|
352
|
+
```json
|
|
353
|
+
{
|
|
354
|
+
"aid": "alice.aid.pub",
|
|
355
|
+
"private_key_encrypted": "...",
|
|
356
|
+
"certificate_chain": [
|
|
357
|
+
"-----BEGIN CERTIFICATE----- (Agent)",
|
|
358
|
+
"-----BEGIN CERTIFICATE----- (Issuer CA)",
|
|
359
|
+
"-----BEGIN CERTIFICATE----- (Root CA)"
|
|
360
|
+
],
|
|
361
|
+
"backup_time": "2026-03-15T10:00:00Z"
|
|
362
|
+
}
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
### G.4.2 跨 Issuer 迁移工具
|
|
366
|
+
|
|
367
|
+
**客户端内置迁移工具**:
|
|
368
|
+
|
|
369
|
+
```
|
|
370
|
+
迁移向导
|
|
371
|
+
│
|
|
372
|
+
│ 1. 检测 Issuer CA 状态
|
|
373
|
+
│ - 自动检测当前 Issuer CA 是否可用
|
|
374
|
+
│ - 如果不可用,提示用户迁移
|
|
375
|
+
↓
|
|
376
|
+
│ 2. 选择新 Issuer CA
|
|
377
|
+
│ - 显示可用的 Issuer CA 列表
|
|
378
|
+
│ - 推荐接管的 Issuer CA
|
|
379
|
+
↓
|
|
380
|
+
│ 3. 申请新证书
|
|
381
|
+
│ - 使用原私钥生成 CSR
|
|
382
|
+
│ - 提交到新 Issuer CA
|
|
383
|
+
│ - 附带原证书作为身份证明
|
|
384
|
+
↓
|
|
385
|
+
│ 4. 更新配置
|
|
386
|
+
│ - 自动更新客户端配置
|
|
387
|
+
│ - 通知联系人 AID 已更新(如果 AID 改变)
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
### G.4.3 社交恢复机制
|
|
391
|
+
|
|
392
|
+
**信任网络恢复**:
|
|
393
|
+
|
|
394
|
+
如果用户无法通过技术手段迁移,可以通过社交网络恢复身份:
|
|
395
|
+
|
|
396
|
+
```
|
|
397
|
+
用户 Alice(旧 AID 不可用)
|
|
398
|
+
│
|
|
399
|
+
│ 1. 申请新 AID
|
|
400
|
+
│ - alice.newissuer.com
|
|
401
|
+
↓
|
|
402
|
+
│ 2. 请求信任背书
|
|
403
|
+
│ - 联系 3-5 个信任的联系人
|
|
404
|
+
│ - 请求他们为新 AID 背书
|
|
405
|
+
↓
|
|
406
|
+
联系人(Bob, Carol, Dave)
|
|
407
|
+
│
|
|
408
|
+
│ 3. 验证身份
|
|
409
|
+
│ - 通过其他渠道验证(电话、视频等)
|
|
410
|
+
│ - 确认是本人
|
|
411
|
+
↓
|
|
412
|
+
│ 4. 签名背书
|
|
413
|
+
│ - 用自己的私钥签名声明:
|
|
414
|
+
│ "我确认 alice.newissuer.com 是 alice.aid.pub 的新身份"
|
|
415
|
+
↓
|
|
416
|
+
新 AID 建立信任
|
|
417
|
+
│
|
|
418
|
+
│ 5. 发布背书声明
|
|
419
|
+
│ - 新 AID 附带多个信任背书
|
|
420
|
+
│ - 其他用户可以选择信任
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
## G.5 法律和合规保障
|
|
424
|
+
|
|
425
|
+
### G.5.1 破产保护条款
|
|
426
|
+
|
|
427
|
+
**AUN 根证书互信协议**中应包含:
|
|
428
|
+
|
|
429
|
+
```
|
|
430
|
+
第 X 条:破产保护
|
|
431
|
+
|
|
432
|
+
1. CA 运营商应在破产前至少 90 天通知管理局
|
|
433
|
+
2. 破产清算时,Issuer CA 私钥应移交给管理局或指定接管方
|
|
434
|
+
3. 域名控制权应移交给管理局或指定接管方
|
|
435
|
+
4. 保证金用于支付迁移成本和用户补偿
|
|
436
|
+
5. CA 运营商应配合完成所有迁移工作
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
### G.5.2 域名托管
|
|
440
|
+
|
|
441
|
+
**推荐做法**:
|
|
442
|
+
|
|
443
|
+
Issuer CA 运营商应将域名托管在第三方托管服务:
|
|
444
|
+
|
|
445
|
+
```
|
|
446
|
+
域名托管协议:
|
|
447
|
+
- 域名所有权:Issuer CA 运营商
|
|
448
|
+
- 托管方:中立的第三方(如律师事务所)
|
|
449
|
+
- 触发条件:运营商倒闭、服务中断超过 30 天
|
|
450
|
+
- 执行:托管方将域名控制权移交给管理局指定的接管方
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
### G.5.3 数据托管
|
|
454
|
+
|
|
455
|
+
**关键数据托管**:
|
|
456
|
+
|
|
457
|
+
```
|
|
458
|
+
托管内容:
|
|
459
|
+
├─ Issuer CA 证书和私钥(加密)
|
|
460
|
+
├─ Agent 证书数据库
|
|
461
|
+
├─ CRL/OCSP 数据
|
|
462
|
+
└─ 配置和文档
|
|
463
|
+
|
|
464
|
+
托管方式:
|
|
465
|
+
- 定期(每周)加密备份到第三方托管服务
|
|
466
|
+
- 多人授权解密(3/5 多签)
|
|
467
|
+
- 仅在应急情况下使用
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
## G.6 最佳实践建议
|
|
471
|
+
|
|
472
|
+
### G.6.1 对 Root CA 运营商
|
|
473
|
+
|
|
474
|
+
1. **财务透明**:定期公布财务状况,接受审计
|
|
475
|
+
2. **应急预案**:制定详细的应急接管预案
|
|
476
|
+
3. **保证金充足**:确保保证金足以覆盖迁移成本
|
|
477
|
+
4. **定期演练**:每年进行一次应急接管演练
|
|
478
|
+
|
|
479
|
+
### G.6.2 对 Issuer CA 运营商
|
|
480
|
+
|
|
481
|
+
1. **域名托管**:将域名托管在第三方
|
|
482
|
+
2. **数据备份**:定期备份关键数据到托管服务
|
|
483
|
+
3. **财务稳定**:确保至少 2 年的运营资金
|
|
484
|
+
4. **迁移工具**:提供用户自助迁移工具
|
|
485
|
+
|
|
486
|
+
### G.6.3 对用户
|
|
487
|
+
|
|
488
|
+
1. **定期备份**:备份私钥和证书
|
|
489
|
+
2. **监控状态**:关注 Issuer CA 的运营状况
|
|
490
|
+
3. **及时续期**:不要等到证书快过期才续期
|
|
491
|
+
4. **建立信任网络**:与多个联系人建立信任关系
|
|
492
|
+
|
|
493
|
+
## G.7 总结
|
|
494
|
+
|
|
495
|
+
通过多层次的预防和救援机制,可以最大程度避免 AID 变成孤儿:
|
|
496
|
+
|
|
497
|
+
| 机制 | 预防效果 | 救援效果 | 实施难度 |
|
|
498
|
+
|------|---------|---------|---------|
|
|
499
|
+
| 提前预警系统 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | 中 |
|
|
500
|
+
| 强制迁移通知期 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 低 |
|
|
501
|
+
| 证书有效期限制 | ⭐⭐⭐ | ⭐⭐⭐ | 低 |
|
|
502
|
+
| 财务保证金 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 中 |
|
|
503
|
+
| 应急接管 | ⭐⭐ | ⭐⭐⭐⭐⭐ | 高 |
|
|
504
|
+
| AID 映射重定向 | ⭐⭐ | ⭐⭐⭐⭐ | 中 |
|
|
505
|
+
| 临时证书服务 | ⭐ | ⭐⭐⭐⭐⭐ | 高 |
|
|
506
|
+
| 用户自救机制 | ⭐⭐⭐ | ⭐⭐⭐⭐ | 低 |
|
|
507
|
+
| 法律保障 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 中 |
|
|
508
|
+
|
|
509
|
+
**核心思想**:
|
|
510
|
+
- **预防为主**:通过监控、预警、保证金等机制,尽早发现问题
|
|
511
|
+
- **多重保障**:技术、法律、财务多管齐下
|
|
512
|
+
- **用户赋能**:提供工具让用户可以自救
|
|
513
|
+
- **社区互助**:通过信任网络实现社交恢复
|