Krajobraz standardów
Spec: ISO 32000-2 ISO 32000-2 Spec: ETSI EN 319 142-1 ETSI EN 319 142-1 Spec: RFC 3161 RFC 3161 Spec: WCAG 2.2 WCAG 2.2 Evidence: Standard-backed
W skrócie
Dział zatytułowany „W skrócie”Silnik PDF nie odpowiada przed jednym dokumentem. Odpowiada przed niewielką federacją standardów, opracowanych przez różne organizacje, które wzajemnie się do siebie odwołują. Ta strona przedstawia tę federację tak, jak śledzi ją NextPDF. Pokazuje też drogę, którą klauzula przechodzi od „standard tak mówi” do „silnik tak robi, a test to potwierdza”.
Jest napisana dla doświadczonego inżyniera, który musi wiedzieć, który dokument reguluje dane zachowanie, zanim oceni, czy interpretacja tego dokumentu przez NextPDF jest możliwa do obrony.
Dlaczego to ma znaczenie
Dział zatytułowany „Dlaczego to ma znaczenie”„Obsługa PDF” to deklaracja, która ukrywa pytanie: obsługa czego, dokładnie? Podstawową składnię określa ISO 32000-2. Podpisy przechodzą przez ETSI. Znaczniki czasu to protokół IETF. HTML i CSS renderowane przez silnik należą do W3C. Kryptografia leżąca u podstaw to NIST. Dostępność wyniku ponownie należy do W3C.
Jeśli biblioteka traktuje je jako jeden niezróżnicowany blok, nie da się sensownie analizować awarii. Gdy walidator odrzuca podpisaną fakturę, użytecznym pierwszym pytaniem nie jest „czy PDF jest uszkodzony?”. Brzmi ono: „klauzula którego standardu nie została spełniona i po której stronie?”. Aby zadać to pytanie, potrzebna jest mapa, która wskazuje organizacje, oraz uczciwy opis tego, jak klauzula staje się zachowaniem.
Krótka wersja
Dział zatytułowany „Krótka wersja”- NextPDF śledzi pięć organizacji standaryzacyjnych. ISO odpowiada za format. ETSI odpowiada za europejskie profile podpisów. IETF odpowiada za protokoły transmisji (znaczniki czasu, prymitywy kryptograficzne przez odwołanie). W3C odpowiada za HTML, CSS i kryteria dostępności. NIST odpowiada za zatwierdzone algorytmy kryptograficzne.
- Te dokumenty tworzą ścieżki, a nie listę: pojedyncza zdolność dotycząca podpisanego PDF przechodzi przez ISO → ETSI → IETF → NIST, gdzie każda warstwa normatywnie odwołuje się do następnej.
- Klauzula nie staje się zachowaniem przez samo jej przeczytanie. Staje się nim dopiero wtedy, gdy zostaje sparafrazowana i zacytowana, odwzorowana na wymaganie, zaimplementowana i przypięta testem. Strona opisująca to zachowanie komunikuje to przez swój poziom dowodu.
- Gdy klauzula jest obowiązkowa, zawiera słowo kluczowe normatywne (
shall,must). NextPDF traktuje te słowa kluczowe jako kontrakt.shouldto zalecenie, które dokumentuje jako zalecenie, a nie jako gwarancję.
Jak podchodzi do tego NextPDF
Dział zatytułowany „Jak podchodzi do tego NextPDF”Federacja, a nie jeden blok
Dział zatytułowany „Federacja, a nie jeden blok”ISO 32000-2 jest punktem centralnym. Definiuje, czym jest plik zgodny. Plik zgodny musi spełniać każde wymaganie dokumentu, a jednocześnie może pominąć każdą funkcję, której dokument wyraźnie nie wymaga Spec: ISO 32000-2, §6 ISO 32000-2 §6 . Nakłada też obowiązek na podmiot zapisujący: wszystko, co NextPDF tworzy lub zmienia w pliku, musi być zgodne z formatem i pozostać spójne z już istniejącymi elementami Spec: ISO 32000-2, §6 ISO 32000-2 §6 . Ta jedna klauzula sprawia, że silnik odmawia wyemitowania strukturalnie niespójnej aktualizacji przyrostowej. To nie jest preferencja NextPDF. To reguła samego formatu.
Z tego punktu centralnego ISO 32000-2 wskazuje na zewnątrz. Obsługa podpisów jest w nim zdefiniowana „przez odwołanie” do serii ETSI EN 319 142 dla PAdES. ETSI z kolei odwołuje się do IETF RFC 3161 w sprawie tokenu znacznika czasu oraz do serii NIST FIPS w sprawie algorytmów skrótu i podpisu. Dana zdolność jest więc ścieżką przez kilka dokumentów, z których każdy jest normatywny dla swojej własnej warstwy.
- Step 1 of 5: ISO 32000-2 §12.8 signatures
- Step 2 of 5: ETSI EN 319 142-1 PAdES baseline
- Step 3 of 5: RFC 3161 timestamp token
- Step 4 of 5: NIST FIPS 180-4 hash strength
- Step 5 of 5: WCAG 2.2 tagged output
Jak klauzula staje się zachowaniem
Dział zatytułowany „Jak klauzula staje się zachowaniem”Niebezpieczna wersja pracy ze standardami polega na przeczytaniu klauzuli, a następnie kodowaniu z pamięci. Ścieżka NextPDF jest celowo dłuższa, ponieważ właśnie tę dłuższą ścieżkę można audytować:
- Retrieve The clause is read from the standard, not from memory.
- Cite It is paraphrased and pinned with a chunk digest, never quoted.
- Classify Its keyword (shall / should / may) sets whether it is a contract or a recommendation.
- Map The obligation becomes a concrete engine requirement.
- Implement The requirement is built into the pipeline.
- Pin A test holds the behaviour against drift.
- Tag The page that describes it declares its evidence level.
Krok „sklasyfikuj” to moment, w którym rozstrzyga się większość niejednoznaczności. Specyfikacje kodują swoje poziomy wymagań w słowach kluczowych: dobrze znana rodzina MUST, SHALL, SHOULD, MAY. Znaczenie tych słów kluczowych ustala konwencja słów kluczowych wymagań IETF, później doprecyzowana tak, by normatywne były wyłącznie formy pisane wielkimi literami, a następnie stosowana do opisowej treści każdej specyfikacji
Spec: RFC 2119 RFC 2119 Spec: RFC 8174 RFC 8174 .
NextPDF odczytuje shall jako twardą granicę, której silnik nie przekracza, a
should jako zalecenie, które stosuje i dokumentuje jako zalecenie —
nigdy jako obietnicę. To rozróżnienie wyznacza różnicę między uczciwą
deklaracją zdolności a deklaracją na wyrost.
Zgodność jest stopniowalna, a nie binarna
Dział zatytułowany „Zgodność jest stopniowalna, a nie binarna”„Zgodny” rzadko oznacza pojedynczy bit. Standardy podpisów są poziomowane — europejski profil długoterminowy z archiwizacją istnieje na przykład właśnie po to, aby dodawać tokeny znaczników czasu, które utrzymują podpis walidowalnym długo po jego utworzeniu Spec: ETSI EN 319 122-1, §6 ETSI EN 319 122-1 §6 . To deklaracja ściśle silniejsza niż sam podpis na poziomie podstawowym. Standard dostępności ma podobny kształt: poziom zgodności osiąga się tylko poprzez spełnienie każdego kryterium sukcesu na tym poziomie, a deklaracja podaje poziom, który faktycznie osiągnięto Spec: WCAG 2.2, §5.2.1 WCAG 2.2 §5.2.1 . NextPDF podaje zatem profil i poziom, a nie nieokreślone „zgodny”.
Co mówi dowód
Dział zatytułowany „Co mówi dowód”Ta strona jest Evidence: Standard-backed : każda deklaracja jest zakotwiczona w klauzuli, sparafrazowana i zacytowana wraz ze skrótem, aby kolejny recenzent mógł ponownie zweryfikować ją względem źródła.
| Warstwa | Organizacja | Klauzula kotwicząca (sparafrazowana) | Co reguluje w NextPDF |
|---|---|---|---|
| Format | ISO | Utworzone lub zmienione elementy podmiotu zapisującego muszą być zgodne i pozostać spójne Spec: ISO 32000-2, §6 ISO 32000-2 §6 | PDF, który emituje silnik |
| Zgodność | ISO | Plik zgodny spełnia wszystkie wymagania; dodatkowe funkcje są opcjonalne Spec: ISO 32000-2, §6 ISO 32000-2 §6 | Co oznacza „poprawny wynik” |
| Profil podpisu | ETSI | Poziom długoterminowy z archiwizacją dodaje znaczniki czasu do późniejszej walidacji Spec: ETSI EN 319 122-1, §6 ETSI EN 319 122-1 §6 | Profil PAdES, na który celuje podpis |
| Zaufany czas | IETF | Usługa znakowania czasem dowodzi, że dana wielkość istniała przed określonym czasem Spec: RFC 3161, §2 RFC 3161 §2 | Token znacznika czasu dokumentu |
| Kryptografia | NIST | Zatwierdzone skróty różnią się siłą bezpieczeństwa, którą zapewniają Spec: NIST FIPS 180-4, §1 NIST FIPS 180-4 §1 | Algorytm skrótu pod podpisem |
| Dostęp do wyniku | W3C | Poziom zgodności wymaga każdego kryterium na tym poziomie Spec: WCAG 2.2, §5.2.1 WCAG 2.2 §5.2.1 | Deklaracje dostępności dla wyrenderowanych plików PDF |
Zacytowane skróty są zapisane we frontmatterze citations tej strony. Żadna treść standardów nie jest tu odtwarzana. Reguła, która reguluje ten wybór, sama ma osobną stronę. Zobacz Dyscyplina cytowania.
Przykład praktyczny
Dział zatytułowany „Przykład praktyczny”Krajobrazu standardów się nie uruchamia; czyta się go, aby zdecydować, o co poprosić silnik. W praktyce wywołanie podpisu z możliwością długoterminowej walidacji to deklaracja tego, którego punktu na ścieżce potrzebujesz:
<?php
declare(strict_types=1);
use NextPDF\Core\Document;use NextPDF\Security\Signature\CertificateInfo;use NextPDF\Security\Signature\DigitalSigner;use NextPDF\Security\Signature\SignatureLevel;
// The signature level is a coordinate on the ISO -> ETSI -> RFC trail.// PAdES B-B is the ETSI baseline CMS SignedData the Core engine produces;// B-T adds an RFC 3161 timestamp, and B-LT/B-LTA add the DSS and document// timestamps that keep a signature validatable after the certificate// expires. The level you name is the point on the trail you are asking for.$certInfo = CertificateInfo::fromFiles( certPath: 'signer-cert.pem', keyPath: 'signer-key.pem',);
// The functional signing path is the direct two-phase signing engine.// (Document::setSignature() records intent but its writer seam is not yet// wired and fail-fasts on output — see the PadesOrchestrator docblock.)$signer = new DigitalSigner( certInfo: $certInfo, level: SignatureLevel::PAdES_B_B,);
$result = $signer->sign(file_get_contents('agreement.pdf'));
printf( "PAdES %s CMS: %d bytes, timestamp=%s\n", SignatureLevel::PAdES_B_B->value, $result->getSize(), $result->hasTimestamp() ? 'yes' : 'no',);Nazwanie PAdES_B_LTA zamiast samego poziomu podstawowego nie jest przełącznikiem wydajności. To decyzja o tym, jak głęboko w ścieżkę standardów sięga obowiązek. B-LT i B-LTA włączają warstwy DSS oraz znaczników czasu archiwizacji i wymagają pakietu enterprise LTV w czasie działania. Zamiast po cichu obniżać poziom, silnik odmawia udawania, że niższy poziom dostarcza wyższy.
Częste nieporozumienie
Dział zatytułowany „Częste nieporozumienie”Pułapką jest odczytanie „NextPDF jest zgodny ze standardami” jako pojedynczej, całkowitej gwarancji. Tak nie jest i żaden uczciwy silnik takiej nie oferuje. Zgodność dotyczy konkretnego standardu, konkretnej klauzuli i konkretnego poziomu. NextPDF celuje w poziom podstawowy PDF 2.0, nazwane profile PAdES oraz określone poziomy dostępności — każdy z nich opatrzony zakresem i cytowaniem. Deklaracja bez stojącej za nią klauzuli i poziomu to marketing, a Insider_ tego nie publikuje.
Druga, subtelniejsza pułapka to założenie, że normatywne should jest obietnicą. To zalecenie. NextPDF dokumentuje zalecenia jako zalecenia. Gwarancje silnika są zbudowane z klauzul shall, a ta różnica ma znaczenie.
Ograniczenia i granice
Dział zatytułowany „Ograniczenia i granice”Ta strona to mapa, a nie teren. Nie wylicza każdej klauzuli, którą implementuje NextPDF, i nie jest certyfikatem zgodności. Dowód dla danego zachowania znajduje się na stronie tematycznej, która opisuje to zachowanie, wraz z właściwym dla niej poziomem dowodu — na przykład PDF 2.0: co się zmieniło dla różnicy formatu.
Krajobraz standardów również się zmienia. Pojawiają się nowe wydania. Odwołania są aktualizowane. Klauzula zacytowana tutaj jest przypięta do migawki korpusu zapisanej we frontmatterze citations tej strony. Gdy standard nadrzędny jest poprawiany, cytowanie jest ponownie walidowane względem nowej klauzuli, a nie uznawane automatycznie za przeniesione. Tam, gdzie ta strona nazywa zdolność z poziomu Premium, robi to na poziomie standardu, do którego się odwołuje, nigdy na poziomie wewnętrznego mechanizmu.
Powiązane dokumenty
Dział zatytułowany „Powiązane dokumenty”- PDF 2.0: co się zmieniło — konkretna różnica w ISO 32000-2, na którą wskazuje warstwa formatu tej mapy.
- Dokumentacja jako produkt — dlaczego dyscyplina odwzorowywania klauzul na zachowania jest traktowana jako inżynieria.
- Dyscyplina cytowania — reguła decydująca o tym, jak klauzula jest tutaj cytowana i co oznacza poziom dowodu.
Słowniczek
Dział zatytułowany „Słowniczek”- Organizacja standaryzacyjna — organizacja, która publikuje specyfikację (ISO, ETSI, IETF, W3C, NIST). Każda odpowiada za inną warstwę stosu PDF.
- Klauzula normatywna — wymaganie w standardzie, identyfikowane na podstawie słowa kluczowego (
shall/mustdla obowiązkowego,shoulddla zalecanego,maydla opcjonalnego). - Ścieżka standardów — uporządkowany łańcuch specyfikacji, przez który przechodzi pojedyncza zdolność, gdzie każdy dokument normatywnie odwołuje się do następnego.
- Poziom zgodności — stopniowalny szczebel zgodności (podstawowy profil ETSI, poziom WCAG). Deklaracja podaje poziom faktycznie osiągnięty, a nie nieokreślone „zgodny”.
- PAdES — PDF Advanced Electronic Signatures, rodzina profili podpisów ETSI EN 319 142, do której ISO 32000-2 odwołuje się przy podpisywaniu PDF.