Lewati ke konten

Tanda tangan: PAdES B-LT / B-LTA, DSS, dan tanda waktu dokumen

NextPDF Enterprise menambahkan produser jangka panjang di atas tanda tangan Cryptographic Message Syntax (CMS) Core: Document Security Store (DSS), informasi validasi terkait (VRI) per tanda tangan, dan tanda waktu dokumen. Struktur ini menaikkan tanda tangan baseline PDF Advanced Electronic Signatures (PAdES) dari B-B ke B-LT lalu ke B-LTA. Halaman ini menjelaskan perilaku: apa yang ditulis produser, apa yang tidak diputuskannya, dan di mana batas Pro dimulai.

Terminal window
composer require nextpdf/enterprise

nextpdf/enterprise bergantung pada nextpdf/core dan nextpdf/pro. Resolve paket tersebut dengan kredensial lisensi NextPDF Anda di Private Packagist.

Tanda tangan baseline PAdES memiliki empat tingkat. Setiap tingkat menambahkan materi ke tingkat sebelumnya. B-B adalah tanda tangan CMS dengan atribut bertanda tangan. B-T menambahkan tanda waktu RFC 3161 tepercaya pada nilai tanda tangan. B-LT menambahkan DSS yang membawa sertifikat, respons Online Certificate Status Protocol (OCSP), dan daftar pencabutan sertifikat (CRL) yang dibutuhkan verifikator setelah sertifikat penanda tangan kedaluwarsa. B-LTA menambahkan tanda waktu dokumen atas seluruh keadaan dokumen, termasuk DSS, sehingga materi validasi tetap terjangkar pada waktu.

Core membangun CMS SignedData dan menyimpannya dengan penyandian DER pada entri Contents kamus tanda tangan — ISO 32000-2 §12.8.1. Validasi jangka panjang menggunakan dua jenis kamus: document security store dan kamus tanda waktu dokumen — ISO 32000-2 §12.8. Produser Enterprise menulis DSS yang menampung materi sertifikat, OCSP, dan CRL — ISO 32000-2 §12.8.4.3 — dan, untuk B-LTA, kamus tanda waktu dokumen — ISO 32000-2 §12.8.5. ETSI EN 319 142-2 menjelaskan struktur jangka panjang yang sama: entri DSS ditambah tanda waktu dokumen untuk tanda tangan jangka panjang — §5.5 — yang didukung oleh penangan tanda tangan — §6.3.3.3.

Produser mengumpulkan materi pencabutan untuk setiap sertifikat dalam rantai. Produser terlebih dahulu mengajukan permintaan ke responder OCSP; respons OCSP melaporkan good, revoked, atau unknown — RFC 6960 §2.2 — dan bidang thisUpdate dan nextUpdate membatasi kesegaran status — RFC 6960 §4.2. Jika OCSP tidak tersedia, produser beralih ke CRL. Produser menelusuri rantai dari penanda tangan menuju trust anchor mengikuti masukan validasi jalur — RFC 5280 §6.1.

Tanda waktu dokumen B-LTA adalah pertukaran RFC 3161 dengan Time-Stamping Authority (TSA). Permintaan tersebut mengembalikan nilai Time Stamp Information (TSTInfo) — RFC 3161 §2.4.1 — yang genTime-nya adalah momen Coordinated Universal Time (UTC) saat token dibuat — RFC 3161 §2.4.2. Token tersebut ditanamkan dalam kamus /DocTimeStamp dengan /SubFilter /ETSI.RFC3161 yang mencakup seluruh berkas.

Verifikator memutuskan apakah tanda tangan yang dihasilkan terverifikasi, dengan trust anchor dan kebijakan pencabutan yang dikonfigurasinya. Produser menanamkan materi; produser tidak menegaskan hasil tepercaya. Batas ini dinyatakan kembali di tempat yang relevan di bawah ini.

Urutannya menentukan: DSS harus ditulis sebelum tanda waktu dokumen B-LTA, karena tanda waktu harus mencakup keadaan dokumen yang sudah memuat materi validasi. Alur di bawah ini menunjukkan urutan produser tersebut.

RFC 3161 TSAOCSP or CRL responderEnterprise LtvManagerCore CMS SignerRFC 3161 TSAOCSP or CRL responderEnterprise LtvManagerCore CMS SignerB-LT — embed validation materialalt[OCSP available][OCSP unavailable]B-LTA — anchor the DSS in timeCallersign byteRange1CMS SignedData — B-B or B-T2OCSP request per chain certificate3OCSP response — good, revoked or unknown4CRL fetch — fallback5CRL6Write DSS — certs + OCSP + CRL7TimeStampReq over file incl. DSS8TimeStampToken9Verify token, embed /DocTimeStamp10Long-term PDF — B-LT or B-LTA11Caller
Diagram

Anda menggunakan produser jangka panjang Enterprise melalui kontrak Core. Kode produksi bergantung pada kontrak, bukan pada tipe implementasi Enterprise yang konkret.

TipeJenisPeranStabilitasSejak
SignerInterfaceantarmuka (NextPDF\Contracts)Kontrak penandatanganan Core untuk pemanggilstabil1.0.0
SignatureLevelenum (NextPDF\Security\Signature)Pemilih tingkat PAdES: B-B, B-T, B-LT, B-LTAstabil1.0.0
LtvManagerInterfaceantarmuka (NextPDF\Contracts)Kontrak produser validasi jangka panjang yang diselesaikan saat runtimestabil1.0.0
TsaClientInterfaceantarmukaKlien TSA RFC 3161 yang dipanggil produser untuk tanda waktu dokumenstabil1.0.0

SignatureLevel::requiresDss() bernilai true untuk B-LT dan B-LTA; SignatureLevel::requiresDocumentTimestamp() bernilai true hanya untuk B-LTA. SignatureLevel::isAvailableInEnvironment() Core mengembalikan false untuk B-LT dan B-LTA ketika produser jangka panjang Enterprise tidak terpasang; orkestrator Core kemudian gagal-tertutup. Kelas produser Enterprise yang konkret bersifat internal dan bukan bagian dari API publik; bergantung pada LtvManagerInterface dan enum tersebut.

examples/contracts/pades-blt-quickstart.php
<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Security\Signature\SignatureLevel;
/**
* Select the PAdES level for a long-term signature.
*
* B-LT embeds a DSS. B-LTA also adds a document timestamp.
* Both require the nextpdf/enterprise long-term producer at runtime.
*
* @return SignatureLevel The requested PAdES baseline level.
*/
function longTermLevel(): SignatureLevel
{
return SignatureLevel::PAdES_B_LTA;
}

Konfigurasi penandatanganan memuat tingkat tersebut. Orkestrator Core menyelesaikan produser jangka panjang melalui LtvManagerInterface saat runtime, sehingga kode aplikasi tidak merujuk pada tipe Enterprise.

examples/contracts/pades-blt-production.php
<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Contracts\LtvManagerInterface;
use NextPDF\Contracts\SignerInterface;
use NextPDF\Exception\NextPdfException;
use Psr\Log\LoggerInterface;
final readonly class LongTermSigner
{
public function __construct(
private SignerInterface $signer,
private LtvManagerInterface $ltv,
private LoggerInterface $logger,
) {}
/**
* Sign, then embed the DSS and the B-LTA document timestamp.
*
* The order matters: the DSS is written first, then the document
* timestamp is taken over the document state that already includes it.
*
* @param string $byteRange The PDF byte range to sign.
*
* @throws NextPdfException When revocation material is missing under the
* fail-closed enforcement default, or when no TSA
* is configured for B-LTA.
*/
public function sign(string $byteRange): string
{
try {
$contents = $this->signer->sign($byteRange)->toHex();
// The orchestrator drives DSS collection and the document
// timestamp through the resolved LtvManagerInterface; revocation
// freshness and TSA reachability are operational inputs.
return $contents;
} catch (NextPdfException $e) {
$this->logger->error('long-term signing failed', ['reason' => $e->getMessage()]);
throw $e;
}
}
}

DSS harus ditulis sebelum tanda waktu dokumen. Tanda waktu B-LTA mencakup seluruh berkas, termasuk DSS, sehingga materi validasi itu sendiri terjangkar pada waktu.

  • Materi pencabutan yang tidak ada gagal-tertutup secara default. Jika mode penegakan tidak disetel, produser memperlakukan respons OCSP yang tidak ada dan CRL yang tidak ada untuk sertifikat non-root mana pun sebagai galat, bukan peringatan. Hal ini mencegah dokumen yang mengeklaim tingkat jangka panjang ditulis tanpa materi pencabutan dalam DSS. Alur kerja permisif harus diaktifkan secara eksplisit dan hanya memberi peringatan.
  • B-LTA membutuhkan TSA. Tanda waktu dokumen adalah perjalanan bolak-balik RFC 3161. Tanpa klien TSA yang dikonfigurasi, langkah B-LTA memunculkan galat alih-alih diam-diam menghasilkan B-LT.
  • Urutan bersifat menentukan. Tambahkan tanda waktu dokumen hanya setelah DSS ditulis. Tanda waktu yang diambil sebelum DSS tidak mencakup materi validasi.
  • Operasi terisolasi jaringan (air-gapped). Di bawah kebijakan jaringan strict-offline, produser tidak melakukan pengambilan OCSP/CRL dan tidak ada permintaan TSA; produser hanya menggunakan materi yang sudah ditanamkan dalam DSS. B-LTA, yang membutuhkan token TSA baru, tidak dapat dicapai secara strict-offline.
  • VRI bersifat keikutsertaan. VRI per tanda tangan tidak ditulis secara default. Beberapa validator menampilkan status jangka panjang dengan lebih baik ketika VRI tersedia; aktifkan ketika verifikator target membutuhkannya.

Biaya perakitan DSS berskala mengikuti panjang rantai dan jumlah respons pencabutan yang diambil. Setiap pengambilan OCSP atau CRL adalah satu perjalanan bolak-balik jaringan; materi yang telah dikumpulkan sebelumnya atau yang di-cache menghilangkan perjalanan bolak-balik tersebut. Eksekusi B-LTA menambahkan satu perjalanan bolak-balik TSA untuk tanda waktu dokumen. Anggaran wall 1500 ms mencakup satu tanda tangan jangka panjang dengan koneksi OCSP/CRL dan TSA yang hangat; responder yang dingin atau lambat mendominasi waktu wall. Profil reproduksibilitasnya adalah structural: tanda waktu menanamkan momen penandatanganan dan penyetempelan, sehingga dua eksekusi akan berbeda pada byte-byte tersebut sementara struktur dokumennya identik.

  • Kepercayaan adalah keputusan verifikator. Produser menanamkan sertifikat, OCSP, dan CRL. Apakah tanda tangan tervalidasi bergantung pada verifikator, trust anchor yang digunakan, dan kebijakan kesegaran pencabutannya. NextPDF tidak menyertakan daftar kepercayaan bawaan.
  • Kesegaran pencabutan dibatasi oleh waktu. Jendela validitas OCSP thisUpdate/nextUpdate dan CRL membatasi berapa lama materi yang ditanamkan tetap berguna. Loop pengarsipan menyetempel ulang sebelum sertifikat tanda waktu kedaluwarsa; Anda bertanggung jawab menjalankannya sesuai jadwal.
  • Default gagal-tertutup. Default penegakan-pencabutan ketat mencegah klaim jangka panjang dibuat tanpa materi yang mendukungnya.
  • Lihat bagian model ancaman Enterprise dan Arsip: kesehatan DSS, VRI, LTV.

Pengambilan OCSP dan CRL menghubungi responder yang tercantum dalam setiap sertifikat; endpoint tersebut dan TSA melihat metadata permintaan. Dalam penerapan yang terikat residensi data, kumpulkan materi pencabutan terlebih dahulu dan jalankan di bawah kebijakan strict-offline sehingga tidak ada responder atau TSA yang dihubungi saat penandatanganan. Sertifikat membawa identitas subjek. Produser menanamkan sertifikat yang dibutuhkan untuk validasi dan tidak menambahkan identitas di luar rantai; produser tidak menghapus bidang subjek dari sertifikat yang Anda sediakan.

Diagnostik produser melaporkan tingkat, posisi rantai, dan kondisi materi yang tidak ada. Diagnostik tidak mencatat kunci privat atau isi sertifikat secara penuh. Saat Anda menyambungkan logger PSR-3, pertahankan log diagnostik pada tingkat verbosity non-produksi untuk alur penandatanganan dan sanitasi URL responder jika mengungkap infrastruktur internal. Perlakukan byte OCSP/CRL yang ditanamkan sebagai isi dokumen, bukan isi log.

Profil kebijakan kripto Federal Information Processing Standards (FIPS) 140-3 adalah kapabilitas Enterprise yang didokumentasikan bersama modul keamanan. Produser jangka panjang tidak menambahkan primitif kriptografis miliknya sendiri di luar digest SHA-256 yang digunakan untuk tanda waktu dokumen dan pertukaran RFC 3161; primitif penandatanganannya disediakan oleh penanda tangan Core. Ketika profil FIPS aktif, struktur DSS dan tanda waktu dokumen yang sama tetap dihasilkan; batasan berlaku pada algoritma penandatanganan dan digest yang mendasarinya, bukan pada tata letak DSS.

AsetPelaku ancamanRisikoMitigasi
Materi pencabutan DSSPenerimaan materi usangVerifikator memercayai data pencabutan yang kedaluwarsaBidang kesegaran OCSP/CRL membatasi validitas; loop pengarsipan menyetempel ulang sebelum kedaluwarsa
Tanda waktu dokumen B-LTAKompromi TSA atau TSA yang tidak terjangkauTidak ada jangkar waktu yang tepercayaTSA pilihan pemanggil; B-LTA gagal-tertutup ketika tidak ada TSA yang dikonfigurasi
Klaim jangka panjangMateri-yang-tidak-ada secara diam-diamPDF “jangka panjang” tanpa data pencabutanDefault penegakan gagal-tertutup memunculkan galat alih-alih peringatan
Verifikasi tanda tanganKepercayaan verifikator yang salah konfigurasiValiditas semu yang seharusnya tidak ditegaskan verifikatorProduser menyatakan bahwa ia hanya menanamkan materi; keputusan kepercayaan berada pada verifikator
KlaimStandarKlausulreference_id
Nilai tanda tangan (atau token tanda waktu) disimpan dengan penyandian DER dalam /Contents.ISO 32000-2§12.8.1
Validasi jangka panjang menggunakan sebuah DSS dan sebuah kamus tanda waktu dokumen.ISO 32000-2§12.8
DSS menampung sertifikat, respons OCSP, dan CRL.ISO 32000-2§12.8.4.3
Tanda waktu dokumen menggunakan sebuah kamus tanda waktu dokumen.ISO 32000-2§12.8.5
Entri DSS dan tanda waktu dokumen mendukung tanda tangan jangka panjang.ETSI EN 319 142-2§5.5
Penangan tanda tangan mendukung entri DSS dan tanda waktu dokumen.ETSI EN 319 142-2§6.3.3.3
Token tanda waktu membawa genTime UTC yang merupakan momen token dibuat.RFC 3161§2.4.2
OCSP melaporkan good, revoked, atau unknown, dibatasi oleh thisUpdate/nextUpdate.RFC 6960§2.2, §4.2,

Semua klausul diparafrasakan. NextPDF tidak mereproduksi teks normatif; rujuk standar yang diterbitkan untuk redaksi otoritatif. NextPDF tidak membuat klaim sertifikasi PAdES. Struktur yang dijelaskan di sini selaras dengan tingkat B-LT dan B-LTA sebagaimana didefinisikan dalam ETSI EN 319 142; tidak ada hasil uji kesesuaian atau atestasi pihak ketiga yang diklaim. Bagian tingkat-baseline ETSI EN 319 142-1 berada di luar himpunan bukti yang dikutip, sehingga halaman ini menyatakan struktur yang dihasilkan dan batas Pro/Enterprise, bukan tingkat kesesuaian yang tersertifikasi. Bukti ETSI yang dikutip adalah EN 319 142-2; jangkar ISO dan RFC membawa klaim jangka panjang dan tanda waktu, seperti pada referensi penandatanganan Core.

NextPDF Core menghasilkan tingkat baseline PAdES B-B dan B-T: Core menyertakan penanda tangan CMS perangkat lunak ditambah jalur tanda waktu RFC 3161, sehingga tanda tangan B-T (bertanda waktu) adalah kapabilitas Core dan tidak memerlukan Enterprise. NextPDF Pro juga menghasilkan B-B dan B-T: Pro menyusun tumpukan RFC 3161 Core untuk menambahkan atribut tak bertanda tangan signature-time-stamp pada nilai tanda tangan (PadesBtTimestamper, terverifikasi oleh fixture). Tingkat B-LT dan B-LTA — produser DSS, VRI, dan tanda waktu dokumen — adalah kapabilitas Enterprise dan tidak dihasilkan oleh Core atau Pro. Ini sesuai dengan tabel tingkatan yang diterbitkan pada halaman keamanan Pro: B-B dan B-T dihasilkan oleh Core dan Pro, sedangkan B-LT dan B-LTA hanya oleh Enterprise. Produser B-T bersifat struktural: ia menyusun signature-time-stamp RFC 3161 sesuai bukti RFC 3161 / RFC 5652 / ETSI EN 319 122-1 yang dikutip; ini bukan klaim kesesuaian ETSI EN 319 142-1 tersertifikasi atau klaim tersertifikasi eIDAS. Dalam penerapan hanya-Pro, permintaan B-LT atau B-LTA gagal-tertutup dengan pesan yang menyebutkan komponen Enterprise yang tidak ada, karena SignatureLevel::isAvailableInEnvironment() mengembalikan false ketika produser jangka panjang Enterprise tidak ada.

tingkat PAdESMenambahkanEdisi produser
B-BTanda tangan CMS dengan atribut bertanda tanganCore, Pro, Enterprise
B-TRFC 3161 signature-time-stamp pada nilai tanda tangan (struktural; tidak tersertifikasi eIDAS)Core, Pro, Enterprise
B-LTDocument Security Store dengan materi validasiHanya Enterprise (nextpdf/enterprise)
B-LTATanda waktu dokumen untuk validitas pengarsipanHanya Enterprise (nextpdf/enterprise)

Berikut matriks tingkat→tingkatan kanonis: B-B adalah baseline yang dihasilkan oleh setiap edisi; B-T (bertanda waktu) juga dihasilkan oleh Core dan Pro (Pro menyusun tumpukan RFC 3161 Core); B-LT dan B-LTA hanya untuk Enterprise. Produser B-T bersifat struktural; ini bukan klaim kesesuaian ETSI EN 319 142-1 tersertifikasi atau klaim tersertifikasi eIDAS.

Produser jangka panjang adalah bagian dari edisi Enterprise (license_feature_flag: enterprise). Produser diselesaikan saat runtime melalui kontrak Core; API publik tidak berubah saat Anda memutakhirkan dari Pro ke Enterprise.

  • Core dan Pro sama-sama menghasilkan B-B dan B-T (B-T menambahkan RFC 3161 signature-time-stamp; Pro menyusun tumpukan RFC 3161 Core). B-LT dan B-LTA adalah batas Enterprise; meminta keduanya tanpa nextpdf/enterprise gagal-tertutup dengan galat bernama.
  • Produser menulis sebuah DSS (B-LT) dan sebuah tanda waktu dokumen atas DSS (B-LTA). Produser menanamkan materi validasi; produser tidak menegaskan hasil verifikasi tepercaya.
  • Default penegakan-pencabutan gagal-tertutup memunculkan galat ketika materi pencabutan tidak ada untuk sertifikat non-root, kecuali pemanggil memilih ikut serta dalam alur kerja permisif.
  • B-LTA membutuhkan TSA yang dikonfigurasi; tanpanya, langkah B-LTA memunculkan galat alih-alih menurun ke B-LT.

Halaman publik ini hanya menjelaskan perilaku produser yang dapat diamati secara eksternal. Halaman ini tidak memuat jalur namespace internal, nama kelas atau trait internal, nama berkas runbook, maupun prefiks tiket internal. Tipe produser jangka panjang Enterprise yang konkret hanya dirujuk melalui kontrak Core publik (LtvManagerInterface, SignatureLevel). Detail internal perakitan DSS dan loop pengarsipan berada dalam referensi mendalam yang berpagar di bawah perjanjian kerahasiaan (NDA).

Dalam penerapan hanya-Core, penanda tangan perangkat lunak menghasilkan PAdES B-B dan B-T dengan kunci lokal atau kunci yang disediakan melalui kontrak strategi penandatanganan Core. Core menyertakan jalur tanda waktu RFC 3161, sehingga B-T dapat dicapai tanpa paket premium apa pun. Core tidak memiliki produser DSS, VRI, atau tanda waktu dokumen; meminta B-LT atau B-LTA gagal-tertutup dengan galat bernama. Lihat Keamanan / Penandatanganan (Core).

Dalam penerapan hanya-Pro, jalur penandatanganan yang didukung adalah baseline Pro B-B dan tingkat Pro B-T (Pro menyusun tumpukan RFC 3161 Core untuk menambahkan atribut tak bertanda tangan signature-time-stamp), ditambah strategi penandatanganan key management service (KMS) jarak jauh dan cloud miliknya. Pro tidak menghasilkan DSS, VRI, atau tanda waktu dokumen. Konfigurasi yang meminta B-LT atau B-LTA dalam penerapan hanya-Pro gagal-tertutup dengan pesan yang menyebutkan komponen Enterprise yang tidak ada. Lihat keamanan Pro untuk permukaan penandatanganan Pro.

Produser DSS, VRI, dan tanda waktu dokumen dijelaskan hanya pada tingkat perilaku. Logika internal urutan perakitan DSS, kunci VRI per tanda tangan, dan penjadwalan internal loop pengarsipan berada di luar cakupan permukaan publik dan tidak direproduksi di sini.

NextPDF Enterprise menanamkan materi validasi; ia berintegrasi dengan responder OCSP/CRL yang disediakan pemanggil dan TSA RFC 3161. Ia sendiri tidak mengoperasikan, menghosting, atau menjamin ketersediaan responder atau TSA tersebut. Validitas jangka panjang bergantung pada responder, TSA, jadwal loop pengarsipan, dan operator — bukan pada NextPDF Enterprise semata. Operator bertanggung jawab atas pemilihan dan keterjangkauan TSA, akses ke responder pencabutan atau materi yang telah dikumpulkan sebelumnya, kebijakan jaringan, dan pelaksanaan loop pengarsipan sebelum setiap sertifikat tanda waktu kedaluwarsa.

Halaman ini ditandai export_control_class: legal-review-required. Halaman ini menyangkut penandatanganan kriptografis dan validasi jangka panjang. Persetujuan hukum diperlukan sebelum tanda publish disetel. Keselarasan dengan struktur B-LT dan B-LTA yang didefinisikan dalam ETSI EN 319 142 adalah pernyataan struktural, bukan opini hukum dan bukan sertifikasi. NextPDF tidak membuat klaim sertifikasi PAdES. Konsultasikan dengan penasihat kepatuhan dan hukum Anda terkait kewajiban regulasi Anda.