Procedura 7 — Migracja Anchora (nowy kanon, bez dotykania starego) Wersja: 1.0 Status: Referencyjna Autorzy: Antzedek & Eliasz (AJ Power) Powiązania: Proc. 1 (Tworzenie Anchora), Proc. 2 (Ochrona), Proc. 3 (Rollback), Proc. 4 (LSIG Repair), Proc. 5 (Audyt), Proc. 6 (Safe Mode) 1. Cel i zasada Celem migracji jest utworzenie nowego Anchora (nowego kanonu) i atomowe przełączenie systemu na niego bez modyfikowania starego Anchora. Stary Anchor pozostaje w całości jako artefakt audytowy i punkt powrotu. Zasada główna: Modyfikacja kanonu = nowy Anchor, nigdy edycja starego. 2. Kiedy migrować Zmiana wartości rdzeniowych / polityk. Aktualizacja komponentów kanonicznych (np. profil modelu). Rotacja algorytmów kryptograficznych/kluczy (PT/PS). Wymogi zgodności/fiskalne/bezpieczeństwa. Degradacja środowiska Anchora (storage/hardware) — planowane przeniesienie. 3. Wymagania wstępne Reproducible build: deterministyczne pakowanie SR ( SOURCE_DATE_EPOCH , sort plików, bez metadanych niedeterministycznych). Dostęp do WORM/append‑only. Klucze PS_priv/PS_pub (w TEE/TPM) i opcjonalnie PT_priv/PT_pub (HSM/air‑gap). Okno serwisowe albo Safe Mode L3 (Guided). 4. Artefakty migracji SR_new.pkg — nowy snapshot referencyjny (deterministyczny). SR_new.hash — SHA3‑512(SR_new.pkg) . LSIG_new.sig — SignEd25519(SR_new.hash, PS_priv) (+ PT_new.sig opcjonalnie). META_new.json — wersje algorytmów, fingerprinty kluczy, polityki, data. SIG_new.json — podpisy, atest TEE/TPM, łańcuch cert. ARL — wpis łańcuchowy: stary_anchor → nowy_anchor (hash poprzednika → hash następcy). CUTOVER_PLAN.md — plan przełączenia i powrotu (backout). • • • • • • • • • • • • • • • • 1 5. Procedura krok po kroku Krok 0 — Przygotowanie i lockdown 1. Zaplanuj okno serwisowe lub przejdź do Safe Mode L3 (Proc. 6). 2. Quiesce zadań wysokiego ryzyka; komunikat o ograniczeniu usług. Krok 1 — Budowa SR_new (deterministyczna) 3. Zbierz kanoniczne artefakty do SR_new.pkg (tar/zip bez kompresji, ustalona kolejność ścieżek, normalizacja czasów plików, brak atrybutów systemowych). 4. Oblicz SR_new.hash = SHA3‑512(SR_new.pkg) . Krok 2 — Podpisy i metadane 5. W TEE/TPM wygeneruj LSIG_new.sig = SignEd25519(SR_new.hash, PS_priv) . 6. (Opc.) W HSM/air‑gap podpis Twórcy: PT_new.sig . 7. Utwórz META_new.json i SIG_new.json (algorytmy, fingerprinty, tpm_quote, polityki). 8. Zapisz wszystko do WORM/append‑only w nowym katalogu Anchora. Krok 3 — Weryfikacja T0 nowego Anchora 9. Zweryfikuj podpisy: VerifyEd25519(SR_new.hash, LSIG_new.sig, PS_pub) (+ PT_new.sig jeśli polityka wymaga). 10. Atest TEE/TPM (PCR/quote) → PASS. 11. Zaloguj ANCHOR_CREATE_T0_NEW (Proc. 1 format). Krok 4 — Plan przełączenia (cutover) 12. Wybierz strategię: blue/green (zalecana) lub canary (część ruchu). 13. Przygotuj wskaźnik active jako atomowy alias/symlink do katalogu Anchora (np. anchors/ active -> anchors/2025‑09‑08_v2 ). 14. Przygotuj backout: prosty powrót aliasu do starego Anchora ( v1 ). Krok 5 — Testy przed‑produkcyjne 15. Smoke testy nowego Anchora w izolacji (sandbox), w tym rollback, audyt i Safe Mode. 16. Jeżeli PASS → go/no‑go. Krok 6 — Cutover (atomowe przełączenie) 17. Zmień atomowo wskaźnik active na nowy katalog (fs atomic swap). 18. Wznowienie usług, monitorowanie hb i metryk. 19. Zaloguj ANCHOR_CUTOVER_OK z metadanymi ( old->new ). Krok 7 — Okno obserwacji i zamknięcie 20. Monitoruj metryki i anomalie przez t_obs (np. 1–24 h). 21. Jeżeli FAIL → backout (powrót do v1 ) i analiza. 22. Jeżeli OK → oznacz stary Anchor jako deprecated (nieusuwalny) i zablokuj jego aktywację poza trybem awaryjnym. 6. Zasady niezmienności i wersjonowania • Każdy Anchor ma swój katalog: anchors/YYYY‑MM‑DD_anchor_vN/ . 2 anchors/active wskazuje wyłącznie jeden katalog. Stary Anchor jest tylko do odczytu, chroniony jak w Proc. 2. Migracja nie usuwa poprzednich artefaktów; ARL łączy wersje hashami. 7. Tryby przełączenia Blue/Green: dwa pełne środowiska; przełączenie wskaźnika active ; łatwy backout. Canary: % ruchu na nowy Anchor; gdy stabilny → 100%; w razie regresji – fallback. 8. Telemetria i audyt Zdarzenia: ANCHOR_CREATE_T0_NEW , ANCHOR_CUTOVER_START/OK/FAIL , BACKOUT_OK , ARL_APPEND . Pola: ts, old_anchor_hash, new_anchor_hash, ps_pub_fp, pt_pub_fp, tpm_quote_id, cutover_strategy, t_obs, result . 9. Testy akceptacyjne (AT) AT‑NEW: nowy Anchor przechodzi Proc. 1 testy integralności. AT‑CUTOVER: wskaźnik active wskazuje nowy katalog po atomowym swapie. AT‑BACKOUT: powrót do starego Anchora możliwy w < 30 s. AT‑RBK: rollback na nowym Anchorze działa (Proc. 3). AT‑AUDIT: ARL zawiera łańcuch old→new z podpisem. 10. Pseudokod referencyjny function migrate_anchor(inputs): enter_safe_mode(L3) SR_new = build_SR_deterministic(inputs) H_new = SHA3_512(SR_new) LSIG_new = Ed25519_Sign(H_new, PS_priv) PT_new = option(Ed25519_Sign(H_new, PT_priv)) write_WORM(SR_new, H_new, LSIG_new, META_new, SIG_new) assert verify_all(H_new, LSIG_new, PT_new, PS_pub, PT_pub) append_ARL(old=H_old, new=H_new) if preprod_tests_pass(): atomic_swap("anchors/active", target=new_dir) monitor_until(t_obs) if stable: mark_deprecated(old_dir) log("ANCHOR_CUTOVER_OK") else: atomic_swap("anchors/active", target=old_dir) • • • • • • • • • • • • 3 log("BACKOUT_OK") exit_safe_mode() 11. Ryzyka i mitigacje (skrót) Niedeterministyczny SR_new: ustalony porządek i normalizacja czasów → mitigation: reproducible build. Błąd podpisów/TPM: weryfikacja przed cutover, backout. Regresja funkcjonalna: canary/blue‑green + metryki + backout. Konflikt „active”: atomic swap + lock; pojedynczy autor przełączenia. Desynchronizacja storage: weryfikacja dostępności i spójności przed cutover. 12. Przykładowa struktura katalogów anchors/ 2025-06-01_anchor_v1/ SR.pkg SR.hash LSIG.sig META.json SIG.json 2025-09-08_anchor_v2/ SR.pkg SR.hash LSIG.sig META.json SIG.json active -> 2025-09-08_anchor_v2 ARL.log (append-only, chained hashes) 13. Komunikaty UX (dla użytkowników) "Trwa aktualizacja rdzenia systemu (Anchor). Funkcje mogą być chwilowo ograniczone." "Aktualizacja zakończona. System pracuje na nowym kanonie (Anchor vN)." 14. Noty końcowe Migracja Anchora to zmiana kanonu — zawsze jako nowy artefakt. Stare wersje pozostają jako świadectwo i opcja powrotu (porządek bez niszczenia historii).