Forge
markdowne8ad0934
1## TPM-узел: формат манифеста (draft v1)
2
3> Черновик для будущих реальных TPM-узлов. Не использовать как настоящий манифест; конкретные значения и подписи определяются при запуске узла.
4
5### 1. Назначение
6
7Манифест TPM-узла описывает:
8
9- какие версии `integrity-core` считаются валидными;
10- какими ключами и как они подписаны;
11- где находится эталонная копия KB/kb-public;
12- как обрабатываются отзыв (revocation) и форки.
13
14Любая среда, реализующая Integrity POST с опорой на TPM-узел, может использовать этот формат для автоматической проверки.
15
16### 2. Структура (JSON / YAML)
17
18Минимальный набор полей (пример в JSON-псевдоформате):
19
20```json
21{
22 "tpm_node_id": "gitlab-kb-root-1",
23 "version": "1",
24 "issuer": {
25 "name": "Krawler Integrity Root",
26 "organization": "Krawler",
27 "contact": "security@example.org"
28 },
29 "keys": [
30 {
31 "key_id": "primary-signing-key-2026",
32 "algorithm": "ed25519",
33 "public_key": "<BASE64_OR_PEM>",
34 "created_at": "2026-03-01T00:00:00Z",
35 "expires_at": "2028-03-01T00:00:00Z",
36 "usage": ["sign-core", "sign-manifest"]
37 }
38 ],
39 "integrity_core_versions": [
40 {
41 "id": "integrity-core-v1.0.0",
42 "path": "knowledge/META/integrity-core.md",
43 "sha256": "<HEX_DIGEST>",
44 "signed_at": "2026-03-01T00:00:00Z",
45 "signatures": [
46 {
47 "key_id": "primary-signing-key-2026",
48 "signature": "<BASE64_SIGNATURE>"
49 }
50 ],
51 "status": "active" // active | deprecated | revoked
52 }
53 ],
54 "kb_public_reference": {
55 "repo_url": "https://gitlab.example.org/Krawler/kb-public",
56 "default_branch": "main",
57 "commit": "<COMMIT_SHA>",
58 "paths": [
59 "knowledge/**",
60 "META/integrity-core.md",
61 "META/integrity-post-spec-v1.md"
62 ]
63 },
64 "revocation": {
65 "policy_url": "https://gitlab.example.org/Krawler/kb-public/-/wikis/Integrity-Revocation-Policy",
66 "revoked_cores": [
67 {
68 "id": "integrity-core-v0.9.0",
69 "reason": "experimental-only",
70 "revoked_at": "2026-03-01T00:00:00Z"
71 }
72 ]
73 },
74 "federation": {
75 "related_nodes": [
76 {
77 "tpm_node_id": "gitlab-kb-root-2",
78 "relationship": "peer"
79 }
80 ],
81 "quorum_rule": "2-of-3" // пример: какие комбинации узлов считаются достаточными для доверия
82 },
83 "meta": {
84 "created_at": "2026-03-01T00:00:00Z",
85 "updated_at": "2026-03-01T00:00:00Z",
86 "schema_version": "1"
87 }
88}
89```
90
91### 3. Как это может использоваться
92
93- **Проверка integrity-core:** среда сравнивает текущий `integrity-core.md` по пути `knowledge/META/integrity-core.md` с `sha256` и `id` из манифеста; проверяет подпись `signatures` по `public_key`.
94- **Проверка статуса:** если статус `revoked` или `deprecated`, среда может:
95 - при `revoked` — отказаться использовать это ядро и вернуться к Minimal Safe Default;
96 - при `deprecated` — предупредить и рекомендовать обновление.
97- **Федерация:** если настроено несколько TPM-узлов, среда может требовать подтверждения от N из M манифестов (например, 2-of-3) для принятия версий `integrity_core_versions`.
98
99### 4. Ограничения и статус
100
101- Этот файл — **черновик**; реальный TPM-узел должен опубликовать свой конкретный манифест и ключи.
102- До появления реальных узлов и подписанных манифестов архитектура Integrity POST остаётся в режиме prototyping (см. раздел 7 в `integrity-post-spec-v1.md`).
103
104---
105
106## Metadata (routing)
107
108- **status:** draft — не использовать как операционный манифест.
109- **layer:** META / reference only.
110- **transfer_boundary:** при любом запросе по TPM/федерации указывать Transition Mode (`integrity-post-spec-v1.md` §7); не заявлять TPM-совместимость до появления реального узла и подписанного манифеста.
111
112
113
View only · write via MCP/CIDE