Verify v2 to rozszerzenie dzisiejszego weryfikatora integralności o dwie rzeczy: upload pliku (PDF/JSON/manifest) zamiast wklejania JSON-a oraz czytelny status podpisu obok statusu hasha. Ta strona jest jednocześnie dokumentem specyfikacji i uczciwym rejestrem tego, co z tego działa dziś, a co jest planowane. Nic tu nie udaje działającego uploadu, którego nie ma.
Doktryna claim ≤ proof: pokazujemy dokładnie tyle funkcji, ile mamy kodem i testem. Hash SHA-256 dowodzi, że treść pakietu się nie zmieniła. To nie jest tożsame z dowodem, kto pakiet wystawił, ani z formalnym podpisem elektronicznym uznawanym prawnie. Verify v2 ma pokazywać oba te statusy obok siebie, żeby nikt nie mylił integralności z autentycznością.
SHA-256 kanonicznego payloadu JSON liczony w przeglądarce (Web Crypto), porównany z zadeklarowanym
package_sha256. Identyczny mechanizm jak w /verify. Zero zmian
w tej części — to, co już działa, zostaje.
Dziś operator musi ręcznie wkleić treść JSON-a. Plan: pole uploadu przyjmujące .pdf,
.json lub manifest evidence-package, z ekstrakcją hasha po stronie klienta (bez wysyłki pliku na
serwer). To spec, nie działający formularz.
Docelowo strona ma pokazywać osobny wskaźnik: „podpisany (PAdES) / ze znacznikiem czasu (TSA) / brak podpisu". Dziś ten wskaźnik zawsze pokazywałby „brak podpisu wystawcy" — bo podpisu jeszcze nie generujemy. Zobacz rejestr w /known-limitations (pozycja „PDF", priorytet P1).
Osobny mechanizm z fali F2: HMAC podpisujący ładunek na potrzeby integralności transportowej, uruchomiony dziś w trybie shadow — liczony i logowany równolegle, bez blokowania ruchu przy niezgodności. To nie jest podpis PAdES ani zamiennik podpisu prawnego dokumentu; to wewnętrzna kontrola integralności warstwy transportowej na środowisku niebankowym.
Poniższy przebieg opisuje, jak ma wyglądać upload w Verify v2, gdy zostanie zbudowany. To specyfikacja MVP, nie dokumentacja działającej funkcji — żaden z poniższych kroków nie ma dziś odpowiadającego endpointu ani kodu klienckiego.
.pdf, .json lub
manifest evidence-package z dysku lokalnego. Plik nie opuszcza przeglądarki (ten sam model co dziś w /verify).crypto.subtle, bez wysyłki treści na serwer.Hash SHA-256 odpowiada na pytanie „czy treść jest dokładnie taka, jak zadeklarowano". Podpis elektroniczny typu PAdES (PDF Advanced Electronic Signatures) i znacznik czasu TSA (RFC 3161) odpowiadają na inne pytanie: „kto to podpisał i kiedy, w sposób trudny do sfałszowania i uznawany formalnie". To dwie różne warstwy dowodu. Dzisiejszy stan ipIII:
| Warstwa | Co dowodzi | Status | Gdzie |
|---|---|---|---|
| SHA-256 integralności | Treść pakietu nie została zmieniona względem policzonego skrótu | LIVE | /verify, ten sam mechanizm w Verify v2 |
| HMAC integrity F2 | Wewnętrzna kontrola spójności ładunku transportowego, tryb obserwacyjny | shadow | środowisko staging, nie produkcja bankowa |
| PAdES (podpis PDF) | Tożsamość wystawcy dokumentu, formalna wartość dowodowa | ROADMAP | brak kodu — pozycja P1 w /known-limitations |
| TSA (znacznik czasu RFC 3161) | Moment istnienia dokumentu potwierdzony przez zaufaną trzecią stronę | ROADMAP | brak kodu — razem z PAdES |
Każdy evidence-package zawiera pole chain_of_custody — listę zapisów porządkujących, które elementy
dowodowe (evidence_id) trafiły do pakietu i w jakim statusie (MEDIA_SIGNAL vs
CONFIRMED). To dziś jest zapis w bazie, nie kryptograficzny łańcuch podpisów — nazwa „chain-of-custody"
opisuje porządek dowodowy (kto/co/kiedy dodał), a nie kryptograficzne powiązanie bloków. Szczegóły mechanizmu i
jego granic: /chain-of-custody.
| Status | Znaczenie tutaj |
|---|---|
| LIVE | Weryfikacja hasha SHA-256 w przeglądarce — identyczna z /verify. |
| shadow | HMAC integrity F2 — liczony/logowany na staging, nie egzekwowany blokująco, nie na produkcji bankowej. |
| ROADMAP | Upload pliku, parsowanie PDF/manifest, status podpisu PAdES/TSA — spec bez kodu. |
Powiązane: weryfikator produkcyjny hasha → /verify · generowanie pakietu z raportu pentestu → /pentest-report-board-pack · porządek dowodowy pakietu → /chain-of-custody · pełny rejestr ograniczeń → /known-limitations.