Lewati ke konten

Lanskap standar

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

Mesin PDF tidak tunduk pada satu dokumen saja. Ia tunduk pada federasi kecil standar, yang ditulis oleh badan-badan berbeda dan saling merujuk. Halaman ini memetakan federasi tersebut sebagaimana dilacak oleh NextPDF, sekaligus menunjukkan jalur yang ditempuh sebuah klausa dari “sebuah standar mengatakannya” menjadi “mesin melakukannya, dan sebuah pengujian membuktikannya.”

Halaman ini ditujukan bagi insinyur senior yang perlu mengetahui dokumen mana yang mengatur sebuah perilaku sebelum memutuskan apakah pembacaan NextPDF atas klausa itu dapat mereka pertanggungjawabkan.

“Dukungan PDF” adalah klaim yang menyembunyikan sebuah pertanyaan: dukungan terhadap apa, tepatnya? Sintaks intinya adalah ISO 32000-2. Tanda tangan disalurkan melalui ETSI. Stempel waktu adalah protokol IETF. HTML dan CSS yang dirender oleh mesin adalah W3C. Kriptografi di baliknya adalah NIST. Aksesibilitas keluaran kembali lagi ke W3C.

Jika sebuah pustaka memperlakukan semuanya sebagai satu gumpalan yang tak terbedakan, Anda tidak dapat menalar suatu kegagalan. Ketika sebuah validator menolak faktur yang ditandatangani, pertanyaan pertama yang berguna bukanlah “apakah PDF-nya rusak?” Melainkan “klausa standar mana yang tidak terpenuhi, dan di sisi mana?” Untuk mengajukan pertanyaan itu, Anda membutuhkan peta yang menyebutkan badan-badannya dan penjelasan jujur tentang bagaimana sebuah klausa menjadi perilaku.

  • NextPDF melacak lima badan standar. ISO memiliki formatnya. ETSI memiliki profil tanda tangan Eropa. IETF memiliki protokol jaringan (stempel waktu, primitif kripto melalui rujukan). W3C memiliki HTML, CSS, dan kriteria aksesibilitas. NIST memiliki algoritme kriptografi yang disetujui.
  • Dokumen-dokumen ini membentuk jejak, bukan sekadar daftar: satu kapabilitas PDF bertanda tangan melintasi ISO → ETSI → IETF → NIST, dengan setiap lapisan secara normatif merujuk lapisan berikutnya.
  • Sebuah klausa tidak menjadi perilaku hanya karena dibaca. Ia menjadi perilaku dengan diparafrasakan dan disitasi, dipetakan ke sebuah persyaratan, diimplementasikan, dan dikunci oleh sebuah pengujian. Halaman yang menjelaskan perilaku tersebut menyatakannya bersama tingkat buktinya.
  • Ketika sebuah klausa bersifat wajib, ia membawa kata kunci normatif (sebuah shall, sebuah must). NextPDF memperlakukan kata kunci tersebut sebagai kontrak. Sebuah should adalah rekomendasi yang didokumentasikan sebagaimana adanya, bukan sebagai jaminan.

ISO 32000-2 adalah pusatnya. Dokumen ini mendefinisikan berkas yang sesuai (conforming). Sebuah berkas yang sesuai harus mematuhi setiap persyaratan dokumen, sekaligus bebas menghilangkan fitur apa pun yang tidak secara eksplisit diwajibkan oleh dokumen Spec: ISO 32000-2, §6 . Dokumen ini juga menetapkan kewajiban pada penulis: apa pun yang dibuat atau diubah NextPDF dalam sebuah berkas harus sesuai dengan format dan tetap konsisten dengan elemen yang sudah ada di sana Spec: ISO 32000-2, §6 . Klausa inilah alasan mesin menolak mengeluarkan pembaruan inkremental yang secara struktural tidak konsisten. Ini bukan preferensi NextPDF. Ini adalah aturan format itu sendiri.

Dari pusat itu, ISO 32000-2 menunjuk ke luar. Penanganan tanda tangan didefinisikan “melalui rujukan” ke seri ETSI EN 319 142 untuk PAdES. ETSI pada gilirannya merujuk IETF RFC 3161 untuk token stempel waktu, dan seri NIST FIPS untuk algoritme hash dan tanda tangan. Oleh karena itu, sebuah kapabilitas adalah jalur melalui beberapa dokumen, yang masing-masing bersifat normatif untuk lapisannya sendiri.

  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
Jejak standar yang dilalui satu PDF bertanda tangan yang dapat divalidasi jangka panjang: ISO mendefinisikan wadahnya dan menunjuk ke ETSI untuk profil tanda tangan; ETSI mensyaratkan stempel waktu IETF; primitif kriptografinya disetujui NIST; keluaran yang dirender tunduk pada aksesibilitas W3C. Setiap panah adalah rujukan normatif, bukan asosiasi yang longgar.

Cara berbahaya bekerja dengan standar adalah membaca sebuah klausa lalu menulis kode berdasarkan ingatan. Jalur NextPDF sengaja dibuat lebih panjang, karena justru jalur yang lebih panjang inilah yang dapat Anda audit:

  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.
Jalur dari sebuah klausa normatif menjadi perilaku mesin yang teruji: ambil dan sitasi klausanya, klasifikasikan kewajibannya berdasarkan kata kunci normatifnya, petakan ke sebuah persyaratan mesin, implementasikan, paku dengan sebuah pengujian, dan tandai halaman pendokumentasiannya dengan dasar buktinya. Sebuah klausa yang berhenti sebelum pengujian adalah klaim, bukan perilaku.

Langkah “klasifikasi” adalah tempat sebagian besar ambiguitas diselesaikan. Spesifikasi mengodekan tingkat persyaratannya dalam kata kunci: keluarga MUST, SHALL, SHOULD, MAY yang sudah terkenal. Makna kata kunci tersebut ditetapkan oleh konvensi kata kunci persyaratan IETF, yang diperbarui untuk menegaskan bahwa hanya bentuk berhuruf kapital yang bersifat normatif, lalu diterapkan pada prosa deskriptif setiap spesifikasi Spec: RFC 2119 Spec: RFC 8174 . NextPDF membaca sebuah shall sebagai batas keras yang tidak dilewati oleh mesin, dan sebuah should sebagai rekomendasi yang ia ikuti dan dokumentasikan sebagai rekomendasi — tidak pernah sebagai janji. Perbedaan itulah yang membedakan antara pernyataan kapabilitas yang jujur dengan klaim berlebihan.

“Sesuai” jarang berupa satu bit. Standar tanda tangan disusun bertingkat — profil jangka-panjang-dengan-arsip Eropa, misalnya, memang ada untuk menambahkan token stempel waktu yang menjaga agar sebuah tanda tangan tetap dapat divalidasi lama setelah dibuat Spec: ETSI EN 319 122-1, §6 . Klaim ini secara ketat lebih kuat daripada tanda tangan baseline polos. Standar aksesibilitas memiliki pola yang sama: sebuah tingkat kesesuaian hanya tercapai dengan memenuhi setiap kriteria keberhasilan pada tingkat tersebut, dan sebuah klaim menyatakan tingkat yang benar-benar dicapainya Spec: WCAG 2.2, §5.2.1 . Oleh karena itu, NextPDF menyatakan profil dan tingkatnya, bukan sekadar “patuh” tanpa kualifikasi.

Halaman ini adalah Evidence: Standard-backed : setiap klaim ditambatkan pada sebuah klausa, diparafrasakan, dan disitasi dengan sebuah digest sehingga peninjau berikutnya dapat memverifikasinya ulang terhadap sumbernya.

LapisanBadanKlausa jangkar (parafrasa)Apa yang diaturnya di NextPDF
FormatISOElemen yang dibuat atau diubah oleh penulis harus sesuai dan tetap konsisten Spec: ISO 32000-2, §6 PDF yang dikeluarkan mesin
KesesuaianISOBerkas yang sesuai memenuhi semua persyaratan; fitur tambahan bersifat opsional Spec: ISO 32000-2, §6 Apa makna “keluaran yang valid”
Profil tanda tanganETSITingkat jangka-panjang-dengan-arsip menambahkan stempel waktu untuk validasi di kemudian hari Spec: ETSI EN 319 122-1, §6 Profil PAdES yang menjadi sasaran sebuah tanda tangan
Waktu tepercayaIETFSebuah layanan penyetempelan waktu membuktikan bahwa suatu datum sudah ada sebelum suatu waktu Spec: RFC 3161, §2 Token stempel waktu dokumen
KriptografiNISTHash yang disetujui memiliki kekuatan keamanan yang berbeda Spec: NIST FIPS 180-4, §1 Algoritme digest di balik sebuah tanda tangan
Akses keluaranW3CSebuah tingkat kesesuaian mensyaratkan setiap kriteria pada tingkat tersebut Spec: WCAG 2.2, §5.2.1 Klaim aksesibilitas pada PDF yang dirender

Digest yang disitasi dicatat dalam frontmatter citations halaman ini. Tidak ada teks standar yang direproduksi di sini. Aturan yang mengatur pilihan tersebut dibahas di halaman tersendiri. Lihat Disiplin sitasi.

Lanskap standar bukan sesuatu yang dijalankan; Anda membacanya untuk memutuskan apa yang akan diminta dari mesin. Secara konkret, sebuah panggilan penandatanganan yang dapat divalidasi jangka panjang adalah pernyataan tentang titik mana pada jejak yang Anda butuhkan:

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',
);

Menyebut PAdES_B_LTA alih-alih baseline polos bukanlah tombol untuk menyetel kinerja. Itu adalah keputusan tentang seberapa jauh kewajiban tersebut menjangkau di sepanjang jejak standar. B-LT dan B-LTA membawa masuk lapisan DSS dan stempel-waktu-arsip serta mensyaratkan paket LTV enterprise saat runtime. Alih-alih menurunkan tingkat secara diam-diam, mesin menolak berpura-pura bahwa tingkat yang lebih rendah memberikan tingkat yang lebih tinggi.

Jebakannya adalah membaca “NextPDF patuh standar” sebagai sebuah jaminan tunggal yang menyeluruh. Tidak demikian, dan tidak ada mesin yang jujur menawarkan jaminan semacam itu. Kepatuhan bersifat per standar, per klausa, dan per tingkat. NextPDF menyasar baseline PDF 2.0, profil PAdES yang disebutkan, dan tingkat aksesibilitas yang dinyatakan — masing-masing tercakup, masing-masing disitasi. Sebuah klaim tanpa klausa dan tingkat di belakangnya adalah pemasaran, dan Insider_ tidak menerbitkannya.

Jebakan kedua yang lebih halus adalah mengasumsikan sebuah should normatif sebagai janji. Itu adalah rekomendasi. NextPDF mendokumentasikan rekomendasi sebagai rekomendasi. Jaminan mesin dibangun dari klausa shall, dan perbedaannya penting secara operasional.

Halaman ini adalah peta, bukan wilayahnya. Halaman ini tidak mencantumkan satu per satu setiap klausa yang diimplementasikan NextPDF, dan bukan pula sertifikat kesesuaian. Bukti untuk tiap perilaku berada di halaman topik yang membahas perilaku tersebut, beserta tingkat bukti halaman itu sendiri — misalnya PDF 2.0: apa yang berubah untuk delta format.

Lanskap standar juga terus bergerak. Edisi baru terbit. Rujukan diperbarui. Sebuah klausa yang disitasi di sini ditambatkan pada snapshot korpus yang dicatat dalam citations halaman ini. Ketika sebuah standar hulu direvisi, sitasinya divalidasi ulang terhadap klausa yang baru, bukan diasumsikan tetap berlaku. Saat halaman ini menyebutkan kapabilitas tingkat Premium, ia melakukannya pada tingkat standar mana yang dijawabnya, tidak pernah pada tingkat mekanisme internal.

  • Badan standar — organisasi yang menerbitkan suatu spesifikasi (ISO, ETSI, IETF, W3C, NIST). Masing-masing memiliki lapisan yang berbeda dari tumpukan PDF.
  • Klausa normatif — persyaratan dalam suatu standar, yang dikenali dari kata kuncinya (shall/must untuk wajib, should untuk direkomendasikan, may untuk opsional).
  • Jejak standar — rantai spesifikasi berurutan yang dilalui satu kapabilitas, di mana setiap dokumen secara normatif merujuk dokumen berikutnya.
  • Tingkat kesesuaian — jenjang kepatuhan yang bertingkat (sebuah profil baseline ETSI, sebuah tingkat WCAG). Sebuah klaim menyatakan tingkat yang benar-benar dicapai, bukan sekadar “patuh” tanpa kualifikasi.
  • PAdES — PDF Advanced Electronic Signatures, keluarga ETSI EN 319 142 dari profil tanda tangan yang dirujuk ISO 32000-2 untuk penandatanganan PDF.