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ơ đồ

%%{init: {'theme':'base','themeVariables':{'primaryColor':'#FBFAF7','primaryTextColor':'#0F1B33','primaryBorderColor':'#6B7280','lineColor':'#6B7280'}}}%% flowchart TB A["Quell-Dokument (MD)
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ử:

  1. 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 đó.
  2. 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.
  3. 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


Đã tạo: 260913 | Phần I, bài DS04 | Loạt bài: digital-signage