DS04 — Lập danh mục Sidecar và chuỗi xác minh
Điểm kích hoạt S2, phần tiếp theo
Người kiểm tra ngồi trước màn hình — không có Git-Client, không có quyền truy cập lịch sử của repo, chỉ có thư mục làm việc của Tenant-Repo (hoặc một bản xuất của nó). Người này muốn kiểm tra: Tài liệu có xác thực không, ai đã ký nó, chuỗi có còn nguyên vẹn không?
Bộ xác minh
Trong thư mục của hồ sơ có:
260825-shareholder-meeting-resolution.md (Quell-Dokument)
260825-shareholder-meeting-resolution.md.v7g.md (Sidecar Quell-Dokument)
260913_signature-doc.json (Signatur-Doc, DS02)
260913_signature-doc.json.v7g.md (Sidecar Signatur-Doc)
260913_event-accepted.json (Event 1, DS03)
260913_event-signed.json (Event 2, DS03)
260913_event-signed.json.v7g.md (Sidecar Events)
E1.Signature.transparent.FES.svg ([Facsimile](../../glossar.html#facsimile "Facsimile-Unterschrift — Glossar")-Grafik)
E1.Signature.transparent.FES.svg.v7g.md (Sidecar Grafik)
Quy trình xác minh
Bước 1: Tính toàn vẹn của tài liệu nguồn
sha256sum 260825_GVB_*.md
# → muss mit .sha256 im Sidecar 260825_*.md.v7g.md übereinstimmen
jq -r '.sha256' 260825_*.md.v7g.md
Sai lệch = tài liệu nguồn đã bị thay đổi sau khi Sidecar được tạo → chuỗi bị đứt.
Bước 2: Tham chiếu Signatur-Doc
jq -r '.target.sha256' 260913_signature-doc.json
# → muss mit der Quell-Dokument-SHA (Schritt 1) übereinstimmen
Signatur-Doc gắn với một phiên bản cụ thể — chứ không phải "với tài liệu đại khái".
Bước 3: Chuỗi Event
for f in 260913_event-*.json; do
jq -r '"\(.event) | \(.uuidV7) | prev=\(.prev_event_sha256)"' "$f"
done
# Kette prüfen: prev von ev2 == sha256(ev1)?
Bước 4: Đồ họa Facsimile
sha256sum E1.Signature.transparent.FES.svg
# → muss mit evidence.facsimile_ref.sha256 im Signatur-Doc und im Event übereinstimmen
# → muss mit der Tabelle in PARTNER-ORG-repo/top/signature-block.md übereinstimmen
Hash SHA-256 CHÍNH LÀ bằng chứng cho tính nguyên bản — không phải tem GUID.
SHA-256 định danh đồ họa mọi lúc, mọi nơi: tài liệu nguồn (và đồ họa) có thể
di chuyển (tệp bị chuyển chỗ, được sao chép, được lưu dưới một tên khác) —
việc định danh vẫn được đảm bảo nhờ mã SHA-256, vì mã này được tính từ nội dung
và độc lập với đường dẫn/tên. Ngược lại, tem GUID
(01a09b48-4580-76f9-b789-024691b989c5) chỉ là một đặc điểm kèm theo:
có thể tái tạo một cách tất định từ ts+sha (gc-v7guid gen-doc) và hữu ích
như một tham chiếu được ghi chép — nhưng tính nguyên bản và việc định danh
do riêng SHA-256 đảm nhiệm (cùng với chuỗi SHA-256 của các artifact), chứ
không phải tem GUID.
Bước 5: Lập danh mục Sidecar
jq -r '.v7g_taxonomy[].taxonomy' *.v7g.md | sort | uniq
# → Klassen der beteiligten Artefakte (SIGNATURE_DOC, SIGNATURE_EVENT, SIGNATURE_GRAPHIC)
jq -r '.obsolescence.status' *.v7g.md
# → alle "active"? Abweichung = Artefakt ist obsolete/superseded
Chuỗi xác minh dưới dạng sơ đồ
sha256 T"] --> B["Sidecar Quell-Dokument
sha256(T)"] A --> C["Signatur-Doc
target.sha256 = T"] C --> D["Sidecar
sha256(C)"] C --> E["Event offered
prev=null"] E --> F["Event accepted
prev=sha(E)"] F --> G["Event signed
prev=sha(F)"] G --> H["Facsimile-Grafik
sha256 + guid-Stempel"] D -.-> I["Prüfer: sha256sum + jq
alle Referenzen prüfen"] B -.-> I H -.-> I style I fill:#e8eef7,stroke:#2c5282
Tại sao không cần lịch sử Git?
Ba lý do cho việc kiểm tra độc lập với lịch sử:
- Kịch bản xuất — người kiểm tra nhận được một bản sao thư mục (ZIP, gói container, DS10), chứ không phải repo. Lịch sử sẽ không có trong đó.
- Khả năng truy vết GoBD — chuỗi bằng chứng phải vẫn tồn tại ngay cả khi sau 10 năm công cụ đó có thể không còn phổ biến. SHA-256, JSON và Markdown bền vững theo thời gian.
- Tính độc lập của các cấp bằng chứng — lịch sử Git là một bằng chứng bổ sung, không phải bằng chứng duy nhất. Chuỗi (Sidecar + Event + đồ họa) tự đứng vững.
Các dạng lỗi và ý nghĩa của chúng
| Phát hiện | Ý nghĩa | Hậu quả |
|---|---|---|
| SHA-256 của tài liệu nguồn ≠ Sidecar | Tài liệu nguồn bị thay đổi sau đó | Chuỗi bị đứt; tài liệu nguồn không hợp lệ cho chữ ký này |
| Signatur-Doc tham chiếu đến SHA tài liệu nguồn sai | Chữ ký nằm ở phiên bản sai | Signatur-Doc không hợp lệ (phiên bản mới → Signatur-Doc mới) |
| Chuỗi Event bị khuyết (thiếu prev/không nhất quán) | Hồ sơ chưa hoàn chỉnh | Giá trị bằng chứng bị giảm; thiếu bằng chứng về trạng thái trung gian |
| SHA đồ họa ≠ bảng trong SIGNATURE_BLOCK.md | Đồ họa sai/bị can thiệp | Facsimile không hợp lệ — tầng chữ ký bị ảnh hưởng |
Sidecar obsolescence.status ≠ active |
Artifact đã obsolete/superseded | Người kiểm tra kiểm tra artifact kế nhiệm (superseded_by) |
Tóm tắt
- Quy trình xác minh độc lập với lịch sử (chỉ cần sha256sum + jq) và bền vững theo thời gian (JSON, SHA-256, V7GUID — không phụ thuộc công cụ).
- Mỗi sai lệch ở một mắt xích của chuỗi đều có ý nghĩa và hậu quả được định nghĩa rõ.
- SHA-256 là bằng chứng về tính nguyên bản và định danh — mọi lúc, mọi nơi, kể cả khi tài liệu nguồn/đồ họa di chuyển (độc lập với đường dẫn/tên); tem guid chỉ là một đặc điểm tham chiếu được ghi chép, có thể tái tạo một cách tất định.
- Bài viết tiếp theo (DS05): container chữ ký GCPN gói gọn tất cả các artifact.
Đã tạo: 260913 | Phần I, bài DS04 | Loạt bài: digital-signage