Profile bazowe PAdES
Spec: ETSI EN 319 142-1 ETSI EN 319 142-1 Spec: ISO 32000-2, §12.8 ISO 32000-2 §12.8 Spec: RFC 3161 RFC 3161 Evidence: Standard-backed
W skrócie
Dział zatytułowany „W skrócie”PAdES definiuje cztery poziomy bazowe — B-B, B-T, B-LT, B-LTA — budowane jeden na drugim. Każdy poziom dodaje jeden konkretny rodzaj dowodu. Ta strona wyjaśnia tę progresję i pomaga wybrać najniższy poziom, który nadal spełnia zobowiązanie, zamiast najwyższego poziomu znanego akurat z nazwy.
Dlaczego to ma znaczenie
Dział zatytułowany „Dlaczego to ma znaczenie”Ludzie sięgają po „B-LTA”, bo brzmi najsolidniej, albo po „B-B”, bo wymaga najmniej pracy. Oba wybory są zgadywaniem. O potrzebnym poziomie decyduje pytanie, a nie preferencja: jak długo ten podpis musi pozostać weryfikowalny i przez kogo? Wybierzesz zbyt niski, a podpis ważny w dniu złożenia stanie się niemożliwy do zweryfikowania, gdy certyfikat wygaśnie. Wybierzesz zbyt wysoki, a nałożysz na wdrożenie wymagania dotyczące urzędu znacznika czasu i infrastruktury materiału walidacyjnego, których nie potrzebujesz, oraz zobowiązanie archiwizacyjne, które trzeba stale podtrzymywać. Zespół, który nie może później zmienić poziomu, ponosi koszt złego wyboru.
Wersja skrócona
Dział zatytułowany „Wersja skrócona”- Cztery poziomy są kumulatywne. Każdy obejmuje poprzedni i dodaje jeden element.
- B-B — podpis wraz z jego obowiązkowymi atrybutami podpisanymi. Dowodzi, kto podpisał i co.
- B-T — B-B plus zaufany znacznik czasu na podpisie. Dowodzi, kiedy podpisano, niezależnie od zegara podpisującego.
- B-LT — B-T plus osadzony materiał walidacyjny (certyfikaty i dane o unieważnieniu). Dokument sam zawiera dowód, że certyfikat był ważny w chwili podpisywania.
- B-LTA — B-LT plus znacznik czasu dokumentu, odnawiany w czasie. Utrzymuje weryfikowalność całości przez dziesięciolecia i zmiany algorytmów.
- Wybieraj poziom według czasu trwania zobowiązania, a nie tego, co wygląda najbezpieczniej.
Jak podchodzi do tego NextPDF
Dział zatytułowany „Jak podchodzi do tego NextPDF”NextPDF modeluje poziom jako jawny, uporządkowany wybór i nie udaje spełnienia wymagań. Żądasz poziomu. Silnik tworzy dokładnie ten poziom albo kończy się błędem zawierającym informacje potrzebne do naprawy. Nie podpisuje po cichu na niższym poziomie i nie pozwala, by zapis zgodności deklarował wyższy. Ten projekt istnieje właśnie po to, by zapobiec cichemu obniżeniu żądania B-LTA do B-T, gdy brakuje infrastruktury. Wymagania każdego poziomu są zakodowane jako predykaty: czy wymagany jest znacznik czasu, czy wymagany jest osadzony materiał walidacyjny, czy wymagany jest znacznik czasu dokumentu. Silnik sprawdza te predykaty i albo je spełnia, albo się zatrzymuje.
Poniżej przedstawiono tę samą progresję, którą wymusza silnik i którą definiuje standard.
| Poziom | Dodaje względem poprzedniego poziomu | Pytanie, na które odpowiada | Wymaga od Twojego wdrożenia |
|---|---|---|---|
| B-B | Atrybuty podpisane: content-type, message-digest, signing-time, signing-certificate-v2 | Kto podpisał i jakie dokładnie bajty? | Klucz podpisujący i certyfikat |
| B-T | Zaufany znacznik czasu na wartości podpisu | Kiedy podpisano — w sposób możliwy do udowodnienia? | Urząd znacznika czasu (TSA) |
| B-LT | Osadzone certyfikaty + dane o unieważnieniu (DSS) | Czy można później udowodnić, że certyfikat był ważny w chwili podpisywania? | TSA + dostęp do danych o unieważnieniu w chwili podpisywania |
| B-LTA | Znacznik czasu dokumentu, odnawialny w czasie | Czy całość nadal będzie weryfikowalna za dziesięciolecia? | TSA + proces archiwizacji, który ponownie opatruje znacznikiem czasu |
Najważniejszy skok to przejście z B-T do B-LT. B-T dowodzi kiedy. B-LT czyni dokument samowystarczalnym pod względem zaufania: przestaje zależeć od tego, czy urząd certyfikacji nadal jest dostępny i odpowiada na pytania za wiele lat.
- Step 1 of 4: ISO 32000-2 §12.8 — signatures, LTV, document timestamp
- Step 2 of 4: ETSI EN 319 142-1 PAdES baseline levels B-B…B-LTA
- Step 3 of 4: RFC 3161 Timestamp token (introduced at B-T)
- Step 4 of 4: RFC 6960 OCSP revocation evidence (embedded at B-LT)
Co mówią dowody
Dział zatytułowany „Co mówią dowody” Evidence: Standard-backed Definicje poziomów pochodzą z
ETSI. Spec: ETSI EN 319 142-1 ETSI EN 319 142-1 definiuje bazowe poziomy PAdES;
Spec: ETSI EN 319 142-2, §5.3 ETSI EN 319 142-2 §5.3 pokazuje
signature-time-stamp jako element opcjonalny, którego obecność
odróżnia poziom ze znacznikiem czasu od B-B, a
Spec: ETSI EN 319 142-2, §6.3.2.2 ETSI EN 319 142-2 §6.3.2.2 stwierdza, że zaufany
znacznik czasu powinien zostać nałożony bezpośrednio po utworzeniu podpisu, aby
zarejestrowany czas był możliwie najbliższy rzeczywistemu czasowi podpisywania.
Spec: ETSI EN 319 142-2, §5.5 ETSI EN 319 142-2 §5.5 stwierdza, że obsługa długoterminowa
wymaga zarówno składu zabezpieczeń dokumentu (Document Security Store), jak i znaczników czasu dokumentu —
dodatków B-LT i B-LTA.
Po stronie kontenera opisuje to Spec: ISO 32000-2, §12.8.3.3 ISO 32000-2 §12.8.3.3 : podpisy PAdES to profile CAdES CMS połączone z walidacją długoterminową (§12.8.4) oraz słownikiem znacznika czasu dokumentu (§12.8.5), dokładnie tak, jak opisuje ETSI EN 319 142-1. Powód, dla którego B-LT ma znaczenie, ujmuje Spec: RFC 6960, §4.4.4 RFC 6960 §4.4.4 : zarchiwizowany materiał dowodowy dotyczący unieważnienia pomaga walidatorowi wnioskować o wiarygodności podpisu w chwili wytworzenia, nawet po wygaśnięciu certyfikatu użytego do walidacji. Na tym właśnie polega sens jego osadzenia.
Silnik NextPDF koduje każdy poziom jako predykat wymagań i tworzy żądany poziom albo kończy się błędem — nie reklamuje poziomu, którego nie zbudował.
Praktyczny przykład
Dział zatytułowany „Praktyczny przykład”API odzwierciedla progresję: wskazujesz poziom, a silnik traktuje go jak kontrakt.
<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// The level is an explicit, ordered choice — not a flag you hope is honoured.$level = SignatureLevel::PAdES_B_T;
// The level itself tells you what it requires, before you sign:$level->requiresTimestamp(); // B-T and above → true$level->requiresDss(); // B-LT and above → true$level->requiresDocumentTimestamp(); // B-LTA only → true
// Ask for B-LTA only if the deployment can actually fulfil it.// The engine produces exactly the requested level or fails with an// actionable error — it never silently signs lower and reports higher.Jeśli zażądasz B-LTA, a wdrożenie nie może dostarczyć tego, czego wymaga B-LTA, domyślnym zachowaniem jest zakończenie z błędem i wskazanie najwyższego poziomu, który mógł zostać osiągnięty — a nie ciche zwrócenie pliku B-T oznaczonego jako B-LTA.
Częste nieporozumienie
Dział zatytułowany „Częste nieporozumienie”Pułapką jest myślenie „B-LTA jest po prostu najlepszy, zawsze go wybieraj.” B-LTA nie jest lepszy w oderwaniu od kontekstu; to więcej, a więcej oznacza zobowiązania. Wymaga urzędu znacznika czasu, materiału dotyczącego unieważnienia zebranego w chwili podpisywania oraz stałego procesu archiwizacji, który ponownie opatruje dokument znacznikiem czasu, zanim chroniące go algorytmy lub certyfikaty znacznika czasu osłabną. Plik B-LTA, którego nikt ponownie nie opatruje znacznikiem czasu, nie jest odporny na przyszłość — to plik B-LT z dodatkową procedurą. I odwrotnie, B-B dla umowy, która musi przetrwać dekadę, nie jest „lekki”; to podpis, który nie przejdzie walidacji w dniu wygaśnięcia certyfikatu. Właściwy poziom to ten, którego wymaga zobowiązanie, ani wyższy, ani niższy.
Ograniczenia i granice
Dział zatytułowany „Ograniczenia i granice”NextPDF tworzy żądany poziom PAdES; nie dostarcza usług ani podmiotów, od których ten poziom zależy. Urząd znacznika czasu, łańcuch certyfikatów, kotwice zaufania oraz łączność umożliwiająca pobranie danych o unieważnieniu w chwili podpisywania leżą po stronie wdrożenia. Silnik implementuje strukturę i wymusza kontrakt poziomu; nie może uczynić TSA godnym zaufania ani certyfikatu ważnym. Wytworzona struktura zawiera elementy, których wymaga dany poziom, zweryfikowane względem własnych testów silnika i przywołanych klauzul. Nie jest to certyfikacja zgodności przez stronę trzecią; ta strona nie stwierdza skutku prawnego eIDAS, który zależy od certyfikatu, podpisującego i jurysdykcji. To, czy czas podpisania jest niezależnie zaufany, omówiono w Znaczniki czasu i zaufany czas; to, jak dowód długoterminowy utrzymuje weryfikowalność podpisu, omówiono w Walidacja długoterminowa.
Kilka ograniczeń, aby precyzyjnie ustawić oczekiwania:
- B-LT i B-LTA tworzą strukturę walidacji długoterminowej, a nie werdykt zgodności. Silnik zapisuje słownik składu zabezpieczeń dokumentu (Document Security Store) oraz rewizję ze znacznikiem czasu dokumentu — słownik podpisu z Type = DocTimeStamp zgodnie z Spec: ISO 32000-2, §12.8 ISO 32000-2 §12.8 . Ta struktura nie jest tutaj przedstawiana jako przetestowana pod kątem zgodności z profilem; kontrole profilu ETSI EN 319 142-1 są bramkowane wydaniem na ścieżce CI Pro i Enterprise, więc ta strona nie deklaruje zgodności wytworzonego pliku z ETSI EN 319 142-1.
- Obsługa dokumentów zaszyfrowanych działa fail-closed dla B-LT i B-LTA. Żądanie poziomu długoterminowego dla zaszyfrowanego dokumentu zatrzymuje się z błędem zawierającym informacje potrzebne do naprawy, zamiast zapisać częściową rewizję długoterminową.
Dostępność poszczególnych poziomów według planu — wszystkie cztery są osiągane przez ten sam wysokopoziomowy szew, setSignature($cert, SignatureLevel::PAdES_B_LTA, $tsaClient)->save():
| Edition | Availability |
|---|---|
| Core | PAdES B-B — bazowy poziom atrybutów podpisanych; szew Core. |
| Pro | Dodaje PAdES B-T — zaufany znacznik czasu na wartości podpisu, sterowany przez
|
| Enterprise | Dodaje PAdES B-LT i B-LTA — osadzony materiał walidacyjny (DSS) oraz odnawialną pętlę archiwizacji ze znacznikiem czasu dokumentu. Korzystają z tego samego wysokopoziomowego szwu, ale tylko wtedy, gdy zainstalowane są oba pakiety Pro i Enterprise; gdy któregoś brakuje, wywołanie kończy się w trybie fail-closed, zamiast zapisać częściową rewizję długoterminową. |
Powiązane dokumenty
Dział zatytułowany „Powiązane dokumenty”- Jak podpisy umieszczane są w PDF — fundament zakresu bajtów i słownika, na którym buduje każdy poziom.
- Walidacja długoterminowa — co faktycznie osadzają B-LT i B-LTA oraz dlaczego bez tego ważny podpis może później nie przejść walidacji.
- Znaczniki czasu i zaufany czas — znacznik czasu RFC 3161, wprowadzany przez B-T i odnawiany przez B-LTA.
- Przepływ pracy z podpisanymi umowami — praktyczny przepływ pracy, który wykorzystuje wybrany poziom bazowy PAdES.
Słowniczek
Dział zatytułowany „Słowniczek”- PAdES — PDF Advanced Electronic Signatures; seria ETSI EN 319 142 profilująca podpisy CMS dla PDF.
- Poziom bazowy — jeden z B-B, B-T, B-LT, B-LTA; zdefiniowany, kumulatywny zestaw wymaganych elementów podpisu.
- B-B — bazowy podpis wraz z jego obowiązkowymi atrybutami podpisanymi.
- B-T — B-B plus zaufany znacznik czasu na wartości podpisu.
- B-LT — B-T plus osadzony materiał walidacji długoterminowej (DSS).
- B-LTA — B-LT plus odnawialny znacznik czasu dokumentu na potrzeby ważności archiwalnej.
- DSS — Document Security Store; struktura PDF przechowująca osadzone certyfikaty i dane o unieważnieniu.
- TSA — urząd znacznika czasu (Time-Stamp Authority); zaufana usługa wydająca tokeny znaczników czasu RFC 3161.