Przejdź do treści
dyrektywaNIS2

Reprodukowalność

Audyt-pack — weryfikator Memo audytowego

Wklej JSON-LD wygenerowany przez Klasyfikator NIS2. Strona uruchomi ten sam silnik klasyfikujący na wejściu z memo i porówna wynik z deklaracją memo — niezależna weryfikacja dla audytora, organu właściwego lub komitetu audytu. Pełna logika po stronie przeglądarki; plik memo nie jest nigdzie wysyłany.

Obsługujemy zarówno memo z pojedynczego klasyfikatora jak i grupowe memo (z klasyfikatora grupowego) — weryfikator automatycznie rozpoznaje typ memo po obecności tablicy entities. Dla memo grupowego sprawdza: zewnętrzny groupHash (integralność całego pliku), zagnieżdżone memoHash per-entity, oraz agregat podsumowania (zsumowanie kar, kontaktów, K/V/W). Werdykt wskazuje który podmiot zawiódł, jeśli wynik jest niezgodny.

Aktualizacja: 3 min czytania

Weryfikator

Aktualna wersja silnika: v1.5.0. Memo wygenerowane przeciwko starszej wersji zostanie oznaczone jako „match-stale" jeżeli wszystkie pola wyniku są zgodne.

Możesz też załadować plik .jsonld z dysku (maks. 5 MB) lub wkleić ze schowka. Dane nie są nigdzie wysyłane — cała weryfikacja w przeglądarce.

Co weryfikator sprawdza

Weryfikator rozpakowuje memo (JSON-LD ze schema.org Report) i uruchamia ten sam silnik klasyfikujący na polu input z memo. Porównuje wynik z deklarowanym w polu result w siedmiu wymiarach:

  • klasyfikacja (Kluczowy / Ważny / Wyłączony);
  • tier MŚP (mikro / małe / średnie / duże);
  • confidence (high / medium / low);
  • cykl audytu (ex-ante 3-letni / ex-post na żądanie / n/a);
  • cykl raportowania (24h / 72h / 1m / n/a);
  • kolejność uruchomienia reguł (R-numerki w kolejności firingu);
  • kindy ostrzeżeń wraz z severity (critical / warning / info).

Jeżeli wszystkie pola są identyczne — memo jest zweryfikowany. Jeżeli różnią się — pokazana zostanie tabela różnic.

Wersja silnika

Memo zawiera pinning wersji rejestru reguł (versionPins.ruleRegistryVersion). Jeżeli wersja silnika uruchomionego w przeglądarce różni się od wersji z memo, weryfikator oznaczy memo jako match-stale — wynik zgodny, ale silnik został zaktualizowany. Memo pozostaje obronny dla momentu wygenerowania (zobacz changelog reguł dla pełnej historii wersji).

Co weryfikator NIE potwierdza

Niezależna weryfikacja silnika nie zastępuje audytu danych wejściowych: weryfikator nie potwierdza, że dane z pola input (liczba etatów, obrót, struktura grupy kapitałowej) odpowiadają stanowi faktycznemu firmy. Ta warstwa pozostaje obowiązkiem operatora oraz audytora w trakcie kontroli. Weryfikator potwierdza jedynie, że dla zadanych danych silnik produkuje deklarowaną klasyfikację — i robi to deterministycznie, synchronicznie, bez wywołań sieciowych.

Integralność memo

Od wersji schematu 2.0.0 każde memo zawiera pole memoHash — wewnętrzny skrót integralności (FNV-1a 8 znaków hex) liczony nad kanoniczną reprezentacją wszystkich pozostałych pól. Weryfikator najpierw przelicza ten skrót i porównuje z zadeklarowanym. Naiwna ingerencja w plik (edycja JSON w edytorze bez przeliczenia skrótu) zostanie wykryta w mikrosekundach, bez nawet uruchomienia silnika klasyfikującego — wynik weryfikacji: mismatch z różnicą w polu memoHash.

Pole memoHash jest środkiem dowodowym, nie środkiem kryptograficznym — wyrafinowany przeciwnik, który zna funkcję kanonizacji, może wygenerować skuteczne sfałszowanie poprzez ponowne uruchomienie silnika na zmodyfikowanym wejściu. W takim przypadku skrót się zgodzi, ale druga warstwa weryfikatora — niezależne przeliczenie silnika na deklarowanym input — wykryje niespójność wyniku z danymi wejściowymi (różnica w polu result.classification lub innych).

URN-style identifier memo zawiera dodatkowy fingerprint wejścia gwarantujący unikalność per (data, dane wejściowe). Dla pełnej niezaprzeczalności prawnej rekomendujemy zewnętrzny podpis kwalifikowany (e-podpis, qualified electronic signature wg eIDAS) na pliku JSON-LD przed przekazaniem do organu nadzoru — memoHash gwarantuje spójność treści, e-podpis gwarantuje tożsamość sygnatariusza.

Memo grupowe (wielopodmiotowe)

Holdingi i grupy kapitałowe generują memo grupowe (z klasyfikatora grupowego) — jeden plik JSON-LD zawierający per-entity decyzje klasyfikacyjne dla wszystkich spółek zależnych. Weryfikator obsługuje ten format automatycznie: jeśli memo zawiera tablicę entities, uruchamiana jest gałąź grupowa.

Memo grupowe ma trzy warstwy obrony:

  • groupHash — zewnętrzny skrót integralności nad kanoniczną zawartością całego pliku (włącznie z zagnieżdżonymi memo). Edycja dowolnego pola w pliku, w tym wewnątrz zagnieżdżonego memo, psuje ten skrót.
  • Per-entity memoHash — każde zagnieżdżone memo ma własny skrót integralności (jak w memo pojedynczym). Pozwala to na niezależną ekstrakcję i podpis e-IDAS pojedynczego podmiotu, jeśli polityka grupy tego wymaga.
  • Per-entity re-run silnika — dla każdego zagnieżdżonego memo weryfikator ponownie uruchamia silnik klasyfikujący na deklarowanym input i porównuje wynik z deklarowanym result. Sfałszowanie inner memoHash i outer groupHash nie wystarczy — silnik musi też zgadzać się z danymi wejściowymi.

Werdykt grupowy zawiera per-entity tabelę werdyktów — jeśli memo wskaże niezgodność, auditor od razu widzi który z N podmiotów zawiódł. Plus weryfikator sprawdza agregat podsumowania (sumę kar, kontaktów Art. 9, K/V/W) względem zsumowania per-entity wyników; ręczna podmiana headline'a w polu summary przy poprawnych zagnieżdżonych memo zostanie wykryta jako różnica w polu summary.*.

Schemat memo grupowego ma pinning wersji (versionPins.groupMemoSchemaVersion) oraz strukturalny fingerprint (SS-3, GROUP_MEMO_SCHEMA_FINGERPRINT) gwarantujący że zewnętrzne integracje audytora dostrzegą każdą zmianę kształtu memo — niezależnie czy bumpniemy MAJOR, MINOR, czy PATCH.

Umów konsultację