İçeriğe geç

Standartlar dünyası

Spec: ISO 32000-2 Spec: ETSI EN 319 142-1 Spec: RFC 3161 Spec: WCAG 2.2 Evidence: Standard-backed

Bir PDF motorunun sorumluluğu tek bir belgeyle sınırlı değildir. Farklı kuruluşlar tarafından yazılmış ve birbirine atıfta bulunan küçük bir standartlar federasyonuna karşı sorumludur. Bu sayfa, söz konusu federasyonu NextPDF’in izlediği biçimde haritalandırır. Ayrıca bir hükmün “standart böyle söylüyor” noktasından “motor böyle davranıyor ve bunu bir test kanıtlıyor” noktasına nasıl taşındığını gösterir.

NextPDF’in bir davranışa ilişkin yorumunun savunulabilir olup olmadığına karar vermeden önce, o davranışı hangi belgenin yönettiğini bilmesi gereken kıdemli bir mühendis için yazılmıştır.

“PDF desteği”, bir soruyu gizleyen bir iddiadır: tam olarak neyin desteği? Çekirdek söz dizimi ISO 32000-2’dir. İmzaların yolu ETSI’den geçer. Zaman damgaları bir IETF protokolüdür. Motorun işlediği HTML ve CSS W3C’dir. Altta yatan kriptografi NIST’tir. Çıktının erişilebilirliği yine W3C’dir.

Bir kitaplık bunların tamamını ayrıştırılmamış tek bir yığın gibi ele alırsa, bir hatayı sağlıklı biçimde analiz edemezsiniz. Bir doğrulayıcı imzalı bir faturayı reddettiğinde, ilk yararlı soru “PDF bozuk mu?” değildir. Asıl soru şudur: “hangi standardın hangi hükmü, hangi tarafta karşılanmadı?” Bu soruyu sorabilmek için, kuruluşları adlandıran bir haritaya ve bir hükmün nasıl davranışa dönüştüğüne ilişkin dürüst bir açıklamaya ihtiyacınız vardır.

  • NextPDF beş standart kuruluşunu izler. ISO biçimden sorumludur. ETSI Avrupa imza profillerinden sorumludur. IETF aktarım protokollerinden sorumludur (zaman damgaları, atıf yoluyla kriptografik ilkel yapılar). W3C HTML, CSS ve erişilebilirlik ölçütlerinden sorumludur. NIST onaylanmış kriptografik algoritmalardan sorumludur.
  • Bu belgeler bir liste değil, izler oluşturur: tek bir imzalı PDF yeteneği ISO → ETSI → IETF → NIST boyunca ilerler ve her katman bir sonrakine normatif olarak atıfta bulunur.
  • Bir hüküm yalnızca okunarak davranışa dönüşmez. Bir davranışa dönüşmesi için başka sözcüklerle ifade edilip atıf yapılması, bir gereksinime eşlenmesi, uygulanması ve bir testle sabitlenmesi gerekir. Davranışı açıklayan sayfa, bunu kendi kanıt düzeyiyle bildirir.
  • Bir hüküm zorunlu olduğunda, normatif bir anahtar sözcük içerir (bir shall, bir must). NextPDF bu anahtar sözcükleri sözleşme olarak ele alır. Bir should, garanti değil, öneri olarak belgelenen bir tavsiyedir.

Merkezde ISO 32000-2 yer alır. Uyumlu bir dosyanın ne olduğunu tanımlar. Uyumlu bir dosya, belgenin her gereksinimine uymak zorundadır; ancak belgenin açıkça gerektirmediği herhangi bir özelliği atlamakta serbesttir Spec: ISO 32000-2, §6 . Ayrıca yazıcıya bir yükümlülük getirir: NextPDF’in bir dosyada oluşturduğu veya değiştirdiği her şey biçime uymak ve zaten orada bulunan öğelerle tutarlı kalmak zorundadır Spec: ISO 32000-2, §6 . Motorun yapısal olarak tutarsız bir artımlı güncelleme üretmeyi reddetmesinin nedeni işte bu tek hükümdür. Bu bir NextPDF tercihi değil, biçimin kendi kuralıdır.

Bu merkezden bakıldığında ISO 32000-2 dışarıyı işaret eder. İmza işleme, PAdES için ETSI EN 319 142 serisine yapılan “atıf yoluyla” tanımlanır. ETSI ise zaman damgası belirteci için IETF RFC 3161’e, özet ve imza algoritmaları için NIST FIPS serisine atıfta bulunur. Bu nedenle bir yetenek, her biri kendi katmanı için normatif olan birkaç belge boyunca uzanan bir yoldur.

  1. Step 1 of 5: ISO 32000-2 §12.8 signatures
  2. Step 2 of 5: ETSI EN 319 142-1 PAdES baseline
  3. Step 3 of 5: RFC 3161 timestamp token
  4. Step 4 of 5: NIST FIPS 180-4 hash strength
  5. Step 5 of 5: WCAG 2.2 tagged output
Tek bir uzun vadede doğrulanabilir imzalı PDF'nin geçtiği standartlar izi: ISO kapsayıcıyı tanımlar ve imza profili için ETSI'ye işaret eder; ETSI bir IETF zaman damgası gerektirir; kriptografik ilkel yapılar NIST onaylıdır; işlenmiş çıktı W3C erişilebilirliğine tabi tutulur. Her ok, gevşek bir ilişkilendirme değil, normatif bir atıftır.

Standartlarla çalışmanın tehlikeli yolu, bir hükmü okuyup ardından belleğe güvenerek kod yazmaktır. NextPDF’in yolu bilinçli olarak daha uzundur, çünkü daha uzun yol aynı zamanda denetlenebilir yoldur:

  1. Retrieve The clause is read from the standard, not from memory.
  2. Cite It is paraphrased and pinned with a chunk digest, never quoted.
  3. Classify Its keyword (shall / should / may) sets whether it is a contract or a recommendation.
  4. Map The obligation becomes a concrete engine requirement.
  5. Implement The requirement is built into the pipeline.
  6. Pin A test holds the behaviour against drift.
  7. Tag The page that describes it declares its evidence level.
Normatif bir hükümden sınanmış bir motor davranışına giden yol: hükmü getirin ve ona atıf yapın, yükümlülüğünü normatif anahtar sözcüğüne göre sınıflandırın, bir motor gereksinimine eşleyin, uygulayın, bir testle sabitleyin ve belgeleyen sayfayı kanıt temeliyle etiketleyin. Teste ulaşmadan duran bir hüküm, bir davranış değil, bir iddiadır.

“Sınıflandır” adımı, belirsizliğin büyük bölümünün giderildiği adımdır. Şartnameler, gereksinim düzeylerini anahtar sözcüklerle kodlar: iyi bilinen MUST, SHALL, SHOULD, MAY ailesi. Bu anahtar sözcüklerin anlamı, yalnızca büyük harfli biçimlerin normatif olduğunu açıklığa kavuşturacak şekilde güncellenen IETF gereksinim anahtar sözcükleri uzlaşımıyla sabitlenir ve ardından her şartnamenin betimleyici metnine uygulanır Spec: RFC 2119 Spec: RFC 8174 . NextPDF bir shall ifadesini motorun aşamayacağı katı bir sınır olarak okur ve bir should ifadesini, izlediği ve öneri olarak belgelediği bir tavsiye olarak okur — asla bir taahhüt olarak değil. Bu ayrım, dürüst bir yetenek beyanı ile aşırı bir iddia arasındaki farkı belirler.

“Uyumlu” durumu nadiren tek bir bit meselesidir. İmza standartları kademelidir — örneğin Avrupa uzun-vadeli-arşivlemeli profili, bir imzanın oluşturulmasından çok sonra bile doğrulanabilir kalmasını sağlayan zaman damgası belirteçleri eklemek için özellikle vardır Spec: ETSI EN 319 122-1, §6 . Bu, yalın bir temel imzaya göre kesinlikle daha güçlü bir iddiadır. Erişilebilirlik standardı da aynı yapıdadır: bir uyumluluk düzeyine yalnızca o düzeydeki her başarı ölçütü karşılanarak ulaşılır ve beyan, gerçekte ulaşılan düzeyi belirtir Spec: WCAG 2.2, §5.2.1 . Bu nedenle NextPDF, niteliksiz bir “uyumlu” yerine profili ve düzeyi belirtir.

Bu sayfa Evidence: Standard-backed niteliğindedir: her iddia bir hükme dayandırılır, başka sözcüklerle ifade edilir ve bir özetle atıf yapılır; böylece bir sonraki gözden geçiren kişi bunu kaynakla karşılaştırarak yeniden doğrulayabilir.

KatmanKuruluşBağlantılı hüküm (başka sözcüklerle ifade edilmiş)NextPDF’te neyi yönettiği
BiçimISOBir yazıcının oluşturduğu veya değiştirdiği öğeler uyumlu olmak ve tutarlı kalmak zorundadır Spec: ISO 32000-2, §6 Motorun ürettiği PDF
UyumlulukISOUyumlu bir dosya tüm gereksinimleri karşılar; ek özellikler isteğe bağlıdır Spec: ISO 32000-2, §6 “Geçerli çıktı”nın ne anlama geldiği
İmza profiliETSIUzun-vadeli-arşivlemeli düzey, sonraki doğrulama için zaman damgaları ekler Spec: ETSI EN 319 122-1, §6 Bir imzanın hedeflediği PAdES profili
Güvenilir zamanIETFBir zaman damgalama hizmeti, bir verinin belirli bir zamandan önce var olduğunu kanıtlar Spec: RFC 3161, §2 Belge zaman damgası belirteci
KriptografiNISTOnaylanmış özetler, sağladıkları güvenlik gücü bakımından farklılık gösterir Spec: NIST FIPS 180-4, §1 Bir imzanın altındaki özet algoritması
Çıktı erişimiW3CBir uyumluluk düzeyi, o düzeydeki her ölçütü gerektirir Spec: WCAG 2.2, §5.2.1 İşlenmiş PDF’lere ilişkin erişilebilirlik iddiaları

Atıf yapılan özetler, bu sayfanın citations ön bilgisinde kaydedilir. Standartların metinlerinin hiçbiri burada yeniden basılmaz. Bu seçimi yöneten kural ayrı bir sayfada açıklanır. Atıf disiplini sayfasına bakın.

Standartlar dünyasını çalıştırmazsınız; motordan ne isteyeceğinize karar vermek için onu okursunuz. Somut olarak, uzun vadede doğrulanabilir bir imzalama çağrısı, standartlar izinin hangi noktasına ihtiyaç duyduğunuza ilişkin bir ifadedir:

examples/36-sign-pades-b-b-and-b-t.php
<?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',
);

Yalın bir temel yerine PAdES_B_LTA düzeyini adlandırmak, bir başarı düğmesine basmak değildir. Bu, yükümlülüğün standartlar izinde ne kadar derine ulaştığına ilişkin bir karardır. B-LT ve B-LTA, DSS ve arşivleme-zaman-damgası katmanlarını devreye alır ve çalışma zamanında kurumsal LTV paketini gerektirir. Motor, sessizce geriye düşmek yerine, daha düşük bir düzeyin daha yüksek bir düzey sunduğunu varsaymayı reddeder.

Tuzak, “NextPDF standartlara uyumludur” ifadesini tek ve eksiksiz bir garanti olarak okumaktır. Öyle değildir ve hiçbir dürüst motor böyle bir garanti sunmaz. Uyumluluk standart başına, hüküm başına ve düzey başına geçerlidir. NextPDF, PDF 2.0 temelini, adlandırılmış PAdES profillerini ve belirtilen erişilebilirlik düzeylerini hedefler — her birinin kapsamı belirlenmiştir ve her birine atıf yapılmıştır. Arkasında bir hüküm ve bir düzey bulunmayan bir iddia pazarlamadır ve Insider_ böyle bir iddiayı yayımlamaz.

İkinci ve daha incelikli tuzak, normatif bir should ifadesini taahhüt sanmaktır. Bu bir tavsiyedir. NextPDF tavsiyeleri tavsiye olarak belgeler. Motorun garantileri shall hükümlerinden inşa edilir ve bu fark belirleyicidir.

Bu sayfa, arazinin kendisi değil, haritasıdır. NextPDF’in uyguladığı her hükmü tek tek saymaz ve bir uyumluluk sertifikası değildir. Her davranışın kanıtı, davranışın sahibi olan konu sayfasında, o sayfanın kendi kanıt düzeyiyle birlikte bulunur — örneğin biçim farkı için PDF 2.0: neler değişti.

Standartlar dünyası da değişir. Yeni baskılar yayımlanır. Atıflar güncellenir. Burada atıf yapılan bir hüküm, bu sayfanın citations bilgisinde kaydedilen derleme anlık görüntüsüne sabitlenir. Bir üst kaynak standart düzeltildiğinde, atıfın geçerli kaldığı varsayılmaz; yeni hükme karşı yeniden doğrulanır. Bu sayfa bir Premium katmanı yeteneğini adlandırdığında, bunu hangi standarda karşı sorumlu olduğu düzeyinde yapar, asla iç mekanizma düzeyinde yapmaz.

  • PDF 2.0: neler değişti — bu haritanın biçim katmanının işaret ettiği somut ISO 32000-2 farkı.
  • Bir ürün olarak belgeleme — hükümleri davranışa eşleme disiplininin neden mühendislik olarak ele alındığı.
  • Atıf disiplini — bir hükme burada nasıl atıf yapılacağına ve bir kanıt düzeyinin ne anlama geldiğine karar veren kural.
  • Standart kuruluşu — bir şartname yayımlayan bir kuruluş (ISO, ETSI, IETF, W3C, NIST). Her biri PDF yığınının farklı bir katmanından sorumludur.
  • Normatif hüküm — bir standarttaki, anahtar sözcüğüyle tanımlanan bir gereksinim (zorunlu için shall/must, tavsiye edilen için should, isteğe bağlı için may).
  • Standartlar izi — tek bir yeteneğin izlediği, her belgenin bir sonrakine normatif olarak atıfta bulunduğu sıralı bir şartnameler zinciri.
  • Uyumluluk düzeyi — kademeli bir uyumluluk basamağı (bir ETSI temel profili, bir WCAG düzeyi). Bir beyan, niteliksiz bir “uyumlu” değil, gerçekte ulaşılan düzeyi belirtir.
  • PAdES — PDF Advanced Electronic Signatures; PDF imzalama için ETSI EN 319 142 imza profilleri ailesidir ve ISO 32000-2 buna atıfta bulunur.