Pro edisi
Keamanan
Sekilas pandang
Bagian berjudul “Sekilas pandang”NextPDF Pro menambahkan sebuah permukaan keamanan di atas NextPDF Core: masking konten pada waktu pembuatan, deteksi PII lapisan-teks, strategi penandatanganan remote dan cloud-KMS, serta penandatanganan sekuensial multipihak. NextPDF Core memproduksi level PAdES B-B dan B-T; Pro memproduksi level yang sama dan menambahkan alur kerja penandatanganan ini di atasnya (untuk B-T, sebuah tanda tangan B-B ditambah satu signature-time-stamp RFC 3161 pada nilai tanda tangan). Halaman ini berada pada tingkat perilaku. Halaman ini menyatakan apa yang dilakukan setiap bagian, apa yang tidak dilakukannya, dan di mana batas Enterprise dimulai.
Ketersediaan & lisensi
Bagian berjudul “Ketersediaan & lisensi”Kapabilitas ini dikirimkan dalam NextPDF Pro (nextpdf/pro) dan aktif dengan envelope lisensi tier-Pro. Sebuah penerapan tanpa hak tersebut tidak memuat kelas-kelas kapabilitas ini. Bandingkan edisi dan dapatkan lisensi.
Core mengirimkan penanda tangan CMS perangkat lunak, klien tanda waktu RFC 3161, validasi jalur RFC 5280, serta pemeriksaan pencabutan OCSP dan CRL. Pro menambahkan alur kerja masking, deteksi PII, dan penandatanganan remote/cloud-KMS/sekuensial; alur kerja tersebut memproduksi level B-B dan B-T Core yang sama melalui tumpukan RFC 3161 Core (untuk B-T, satu signature-time-stamp pada nilai tanda tangan). Sebuah penerapan tanpa hak Pro yang aktif tidak memuat kelas-kelas ini; kontrak penandatanganan Core terus berfungsi tanpa perubahan.
Pemasangan
Bagian berjudul “Pemasangan”composer require nextpdf/pro:^3Tinjauan konseptual
Bagian berjudul “Tinjauan konseptual”Mesin masking menerapkan daftar aturan terurut pada teks sebelum halaman ditulis. Setiap aturan mencocokkan sebuah ekspresi reguler. Sebuah aturan menggantikan kecocokan dengan salah satu dari tiga cara: isian black-box yang menghapus teks dari content stream, sebuah rangkaian tanda bintang dengan jumlah karakter yang sama, atau sebuah label tetap seperti [REDACTED]. Mesin menghapus objek teks yang mendasarinya untuk mode black-box sebagaimana telah diuji; mesin tidak menyatakan bahwa setiap bentuk konten sensitif ditemukan. Deteksi bergantung pada aturan yang Anda konfigurasi.
Permukaan PII adalah alat deteksi, bukan jaminan redaksi. Permukaan ini mengekstrak lapisan teks, lalu menerapkan pola bawaan untuk alamat email, nomor telepon, nomor Social Security Amerika Serikat, dan nomor kartu kredit. Permukaan ini mengembalikan tampilan teks yang di-mask dan jumlah kecocokan. Permukaan ini tidak menimpa glif yang dirender pada citra halaman. Sebuah halaman terpindai tanpa lapisan teks tidak menghasilkan kecocokan. Perlakukan hasil sebagai deteksi yang dicocokkan-pola dari tipe yang dikonfigurasi, bukan sebagai penghapusan data pribadi yang lengkap.
Permukaan penandatanganan menambahkan alur kerja remote dan asinkron di atas penanda tangan Core. Sebuah sesi menghitung digest dokumen, membangun atribut-tertanda CMS, dan menyerahkan byte atribut-tertanda ke sebuah strategi penandatanganan. Sebuah strategi dapat berupa cloud KMS, penanda tangan eksternal yang ditangguhkan, atau jalur ingest yang membungkus tanda tangan CAdES atau XAdES yang ada. Sesi kemudian merakit CMS SignedData dan menyimpannya berpenyandian DER di entri Contents dictionary tanda tangan — ISO 32000-2 §12.8.1. SignerInfo membawa atribut-tertanda content-type dan message-digest; proses komputasi message digest adalah RFC 5652 §5.4. Sebuah pemverifikasi tidak boleh mengandalkan digest yang dihitung pengirim; ia menghitung ulang digest konten secara mandiri dan membandingkannya dengan atribut message-digest, dan perbandingan harus cocok agar tanda tangan valid — proses verifikasi tanda tangan RFC 5652 §5.6.
NextPDF Core memproduksi level PAdES B-B dan B-T; NextPDF Pro memproduksi level yang sama dan menambahkan alur kerja penandatanganannya di atasnya. Untuk B-B, sesi merakit sebuah CMS SignedData dengan rangkaian atribut-tertanda B-B dan tidak menerapkan tanda waktu. Untuk B-T, sesi menambahkan tepat satu signature-time-stamp RFC 3161 sebagai atribut CMS tak-tertanda pada nilai tanda tangan: sebuah signature-time-stamp adalah atribut tak-tertanda yang membawa satu token tanda waktu yang dihitung atas nilai tanda tangan digital untuk seorang penanda tangan — ETSI EN 319 122-1 §5.3, dan MessageImprint-nya adalah hash dari nilai field tanda tangan SignerInfo, yang diidentifikasi oleh OID id-aa-timeStampToken — RFC 3161 Appendix A. genTime tanda waktu adalah instan UTC saat token dibuat — RFC 3161 §2.4.2. Karena tanda waktu adalah atribut tak-tertanda, digest tertanda B-B, nilai tanda tangan SignerInfo, dan /ByteRange PDF tidak berubah; hanya CMS yang membesar. Token RFC 3161 diperoleh dari penyedia tanda waktu yang dikonfigurasi (klien RFC 3161 Core default, atau penyedia yang disuplai pemanggil); B-T menggunakan message imprint SHA-256 pada jalur penyedia default. NextPDF Pro mengimplementasikan dukungan penandatanganan PAdES B-T sesuai ETSI EN 319 122-1 §5.3, RFC 3161, RFC 5652, dan RFC 5816; ini telah diverifikasi-fixture. NextPDF Pro tidak menyatakan sertifikasi ETSI EN 319 142-1 independen dan tidak menyatakan validitas hukum dokumen. B-LT dan B-LTA menambahkan Document Security Store dan tanda waktu dokumen untuk validasi arsip jangka panjang — ETSI EN 319 142-2 §5.5; level-level tersebut adalah kapabilitas Enterprise (nextpdf/enterprise) dan tidak diproduksi oleh Pro. Lihat Batas Enterprise di bawah.
Mengapa dirancang demikian
Bagian berjudul “Mengapa dirancang demikian”Permukaan penandatanganan menyerahkan byte atribut-tertanda ke sebuah SigningStrategy alih-alih menyimpan kunci privat. Satu keputusan itu bersifat menanggung-beban. Sebuah cloud KMS, penanda tangan eksternal yang ditangguhkan, atau jalur ingest-CAdES/XAdES semuanya memenuhi kontrak yang sama, sehingga kode pemanggil tetap identik dan materi kunci tidak pernah masuk ke NextPDF. Memisahkan sesi menjadi RemoteSigningSession::prepare() dan RemoteSigningSession::complete() memungkinkan tanda tangan kembali secara asinkron, karena digest telah ditetapkan sebelum kunci pernah dijangkau. Tanda waktu dilampirkan sebagai atribut CMS tak-tertanda, sehingga B-T tetap aditif: digest tertanda B-B, nilai tanda tangan SignerInfo, dan /ByteRange tidak tersentuh. Setiap sambungan bersifat gagal-tertutup, karena jalur penandatanganan yang menurun secara diam-diam lebih buruk daripada yang berhenti. Latar belakang desain: Penandatanganan pada skala, tanpa kompromi.
Permukaan API
Bagian berjudul “Permukaan API”| Tipe | Jenis | Peran | Stabilitas | Sejak |
|---|---|---|---|---|
RemoteSigningSession | class | Sesi penandatanganan remote atau asinkron dua fase | stable | 1.9.0 |
RemoteSigningConfig | class | Konfigurasi sesi imutabel, termasuk level PAdES | stable | 1.9.0 |
SequentialSigner | class | Penandatanganan sekuensial multipihak dengan dukungan DocMDP | stable | 1.9.0 |
SigningStrategy | interface | Kontrak mekanisme-penandatanganan yang dipanggil sesi | stable | 1.9.0 |
PadesWrapper | class | Membungkus tanda tangan CAdES atau XAdES yang ada untuk penyematan PAdES | stable | 1.9.0 |
KmsSignerInterface | interface (SPI) | Kontrak driver HSM dan KMS pihak ketiga | stable | 2.1.0 |
GenerationTimeMasker | class | Masking yang digerakkan aturan, diterapkan sebelum halaman ditulis | stable | 1.9.0 |
MaskingConfig / MaskingRule / MaskingMode | types | Konfigurasi masking, aturan, dan mode penggantian | stable | 1.9.0 |
RemoteSigningConfig membawa field level PAdES yang enum-nya adalah SignatureLevel Core. Jalur penandatanganan Pro memproduksi baseline B-B dan level B-T: konfigurasikan RemoteSigningConfig::default()->withLevel(SignatureLevel::PAdES_B_T) (atau gunakan SequentialSigner::withTimestamping()) dan suplai sebuah penyedia tanda waktu, maka sesi menambahkan atribut tak-tertanda signature-time-stamp RFC 3161. Ruang /Contents cadangan B-T dinaikkan otomatis agar token pas; ruang yang dikonfigurasi terlalu kecil gagal-tertutup dengan galat konfigurasi bertipe alih-alih memotong. Sebuah level di atas B-T yang dibawa dalam config (B-LT atau B-LTA) adalah nilai yang dideklarasikan-di-muka yang tidak ditindaklanjuti Pro; produser jangka-panjang tersebut diselesaikan saat runtime melalui kontrak Core dan dikirimkan dalam paket nextpdf/enterprise.
Contoh kode — Mulai cepat
Bagian berjudul “Contoh kode — Mulai cepat”<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Pro\Security\Signing\RemoteSigningSession;use NextPDF\Pro\Security\Signing\SigningStrategy;
/** * Produce a signed PDF using any signing strategy. * * @param string $pdfWithPlaceholder PDF bytes with a signature placeholder. * @param SigningStrategy $strategy A cloud-KMS, deferred, or ingest strategy. * * @return string The signed PDF bytes. */function signWithStrategy(string $pdfWithPlaceholder, SigningStrategy $strategy): string{ $session = RemoteSigningSession::create($pdfWithPlaceholder);
$session->prepare( certDer: $strategy->getCertificateDer(), chainDer: $strategy->getCertificateChainDer(), algorithmOid: $strategy->getSignatureAlgorithmOid(), digestAlgorithm: $strategy->getDigestAlgorithm(), contentsHexStart: 0, contentsHexEnd: 0, );
return $session->complete($strategy);}Pemanggil bergantung pada kontrak SigningStrategy. Sebuah strategi cloud-KMS dan strategi ingest-CAdES sama-sama memenuhinya, sehingga kode ini tidak berubah di antara strategi.
Contoh kode — Produksi
Bagian berjudul “Contoh kode — Produksi”<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Pro\Security\Signing\SequentialSigner;use NextPDF\Pro\Security\Signing\SigningStrategy;use Psr\Log\LoggerInterface;
final readonly class ApprovalWorkflow{ public function __construct(private LoggerInterface $logger) {}
/** * Sign a PDF with two parties in sequence. * * @param string $pdfData The PDF bytes to sign. * @param SigningStrategy $approver The first-party strategy. * @param SigningStrategy $reviewer The second-party strategy. * * @return string The signed PDF bytes. */ public function run(string $pdfData, SigningStrategy $approver, SigningStrategy $reviewer): string { try { $result = SequentialSigner::create($pdfData) ->addSigner($approver, 'Approver', reason: 'Approved') ->addSigner($reviewer, 'Reviewer', reason: 'Reviewed') ->sign();
$this->logger->info('Sequential signing complete', [ 'signatures' => $result->signatureCount, ]);
return $result->pdfData; } catch (\Throwable $e) { $this->logger->error('Sequential signing failed', ['error' => $e->getMessage()]);
throw $e; } }}Setiap penanda tangan adalah revisi incremental yang terpisah. Blok catch mencatat log dan melempar ulang; ia tidak menelan kegagalan, yang menjaga jalur penandatanganan tetap gagal-tertutup.
Kasus tepi & jebakan
Bagian berjudul “Kasus tepi & jebakan”- Tanda tangan yang diproduksi bukanlah tanda tangan yang terverifikasi. Validasi jalur berjalan di pemverifikasi dengan trust anchor pemverifikasi tersebut — RFC 5280 §6.1. Produsen tidak dapat menyatakan hasilnya.
- Deteksi masking bergantung pada aturan yang dikonfigurasi. Sebuah rangkaian aturan yang tidak cocok dengan suatu nilai tidak akan memask-nya. Mesin tidak menyatakan bahwa semua konten sensitif ditemukan.
- Deteksi PII hanya lapisan-teks. Sebuah halaman terpindai tanpa lapisan teks tidak menghasilkan kecocokan. Alat ini tidak menimpa glif halaman yang dirender.
- Struktur CMS harus pas dengan ruang
Contentscadangan. SignedData B-B dengan rantai sertifikat lengkap memiliki ukuran; tetapkan ukuran ruang cadangan secara sesuai, atau sesi memunculkan galat overflow. - Sebuah strategi cloud-KMS bergantung pada keterjangkauan jaringan dan ketersediaan penyedia. Galat jaringan atau penyedia memunculkan eksepsi bertipe; sesi tidak secara diam-diam memproduksi dokumen yang tidak ditandatangani.
- OCSP
unknownbukanlahgood. Perlakukanunknownsebagai non-penetapan — RFC 6960 §2.2.
Performa
Bagian berjudul “Performa”Sebuah tanda tangan perangkat lunak adalah milidetik satu-digit. Sebuah tanda tangan cloud-KMS menambahkan satu round trip jaringan ke penyedia. Sebuah tanda tangan B-T menambahkan satu round trip ke penyedia tanda waktu yang dikonfigurasi di atas operasi penandatanganan. Anggaran wall 1500 ms mencakup satu tanda tangan B-B dengan penyedia remote pada koneksi yang hangat. Biaya masking berskala dengan jumlah aturan dan panjang teks. Profil reproduktibilitas adalah structural: atribut-tertanda B-B menyematkan instan penandatanganan dan sebuah tanda tangan B-T secara tambahan menyematkan token tanda waktu, sehingga dua eksekusi berbeda pada byte signing-time dan tanda waktu sementara struktur tertanda identik.
Catatan keamanan
Bagian berjudul “Catatan keamanan”Ini adalah batas kriptografis, sehingga model ancaman bersifat eksplisit. Byte range dihitung oleh mesin dan tidak pernah diterima dari pemanggil. Jalur penandatanganan bersifat gagal-tertutup: sebuah kegagalan primitif atau celah kapabilitas memunculkan eksepsi bertipe dan tidak pernah secara diam-diam menurunkan ke algoritma yang lebih lemah. Sebuah strategi cloud-KMS adalah titik integrasi, bukan key store. Perlindungan kunci bergantung pada penanganan kunci, KMS yang dikonfigurasi, dan penerapannya; NextPDF Pro tidak menyimpan kunci privat untuk sebuah strategi KMS. Pro beroperasi dalam mode yang kompatibel-FIPS ketika dikonfigurasi terhadap KMS atau HSM tervalidasi FIPS; NextPDF Pro sendiri bukanlah modul kriptografi tervalidasi FIPS. Halaman ini berkaitan dengan penandatanganan kriptografis; setiap sumber normatif diparafrasa dan tidak ada yang direproduksi.
Residensi data & mitigasi PII
Bagian berjudul “Residensi data & mitigasi PII”Permukaan masking dan PII berjalan in-process. Tidak ada konten dokumen yang meninggalkan host untuk masking atau deteksi PII. Sebuah strategi cloud-KMS mengirim digest atribut-tertanda, bukan dokumen, ke penyedia untuk operasi penandatanganan. Deteksi PII dicocokkan-pola pada tipe yang dikonfigurasi dan menghapus objek teks yang mendasarinya untuk mode black-box sebagaimana telah diuji; ini bukan jaminan penghapusan data pribadi yang lengkap dan bukan pernyataan kepatuhan regulasi.
Telemetri aman & pembersihan log
Bagian berjudul “Telemetri aman & pembersihan log”Pustaka memunculkan eksepsi bertipe dengan pesan struktural. Pustaka tidak menulis konten dokumen atau nilai PII yang terdeteksi ke dalam pesan eksepsi atau log. Sebuah penerapan yang mencatat log di sekitar jalur penandatanganan harus mencatat field struktural yang ditunjukkan pada contoh produksi, bukan byte dokumen.
Perilaku mode FIPS
Bagian berjudul “Perilaku mode FIPS”Pro memilih algoritma dari algoritma tanda tangan yang dikonfigurasi dan strategi. Ketika dikonfigurasi terhadap KMS atau HSM tervalidasi FIPS, operasi kriptografis berjalan dalam batas tervalidasi tersebut. NextPDF Pro sendiri melakukan perakitan struktural dan komputasi digest; ia bukan modul tervalidasi FIPS dan tidak membuat klaim sertifikasi FIPS.
Batas Enterprise
Bagian berjudul “Batas Enterprise”NextPDF Pro memproduksi baseline B-B dan level B-T. B-T menambahkan satu signature-time-stamp RFC 3161 sebagai atribut CMS tak-tertanda pada nilai tanda tangan, dihitung atas nilai tanda tangan digital untuk seorang penanda tangan — ETSI EN 319 122-1 §5.3. NextPDF Pro mengimplementasikan ini sesuai ETSI EN 319 122-1 §5.3, RFC 3161, RFC 5652, dan RFC 5816; ini telah diverifikasi-fixture. NextPDF Pro tidak menyatakan sertifikasi ETSI EN 319 142-1 independen dan tidak menyatakan validitas hukum dokumen.
Level B-LT dan B-LTA adalah kapabilitas Enterprise dan tidak diproduksi oleh Pro. B-LT dan B-LTA menambahkan Document Security Store dan tanda waktu dokumen untuk validasi arsip jangka panjang — ETSI EN 319 142-2 §5.5. Sebuah konfigurasi yang meminta Document Security Store atau loop arsip jangka-panjang menyelesaikan produser tersebut saat runtime melalui kontrak Core; produser itu dikirimkan dalam paket nextpdf/enterprise. Pada penerapan khusus-Pro, meminta B-LT atau B-LTA gagal-tertutup dengan pesan yang menyebut komponen Enterprise yang hilang. Pro tidak memproduksi Document Security Store, dictionary VRI, tanda waktu dokumen, maupun loop arsip, dan tidak membuat klaim validasi jangka-panjang (LTV). Kustodi kunci perangkat keras melalui PKCS#11, dan profil kebijakan-kripto FIPS 140-3, juga merupakan kapabilitas Enterprise.
| Level PAdES | Menambahkan | Edisi produser |
|---|---|---|
| B-B | Tanda tangan CMS dengan atribut-tertanda | Core, Pro, Enterprise |
| B-T | Satu atribut tak-tertanda signature-time-stamp RFC 3161 pada nilai tanda tangan | Core, Pro, Enterprise |
| B-LT | Document Security Store dengan materi validasi | Enterprise (nextpdf/enterprise) |
| B-LTA | Tanda waktu dokumen untuk validitas arsip | Enterprise (nextpdf/enterprise) |
Kontrak perilaku
Bagian berjudul “Kontrak perilaku”- Masking menerapkan aturan yang dikonfigurasi sebelum halaman ditulis dan menghapus objek teks yang mendasarinya untuk mode black-box sebagaimana telah diuji.
- Deteksi PII mengekstrak lapisan teks, menerapkan pola yang dikonfigurasi, dan mengembalikan tampilan yang di-mask dan jumlah kecocokan. Deteksi ini tidak menimpa glif yang dirender.
- Penandatanganan remote bersifat dua fase: prepare menghitung digest dan membangun atribut-tertanda; complete merakit CMS dan menyematkannya.
- Pro memproduksi baseline B-B dan level B-T. Untuk B-T, sesi menambahkan satu signature-time-stamp RFC 3161 sebagai atribut CMS tak-tertanda pada nilai tanda tangan; digest tertanda B-B dan
/ByteRangetidak berubah. Sebuah permintaan B-T tanpa penyedia tanda waktu, atau dengan ruangContentsyang dikonfigurasi terlalu kecil, gagal-tertutup dengan galat konfigurasi bertipe. Sebuah permintaan B-LT atau B-LTA tanpa paket Enterprise gagal-tertutup dengan galat bernama. - Sebuah strategi cloud-KMS menerima digest atribut-tertanda, bukan dokumen, dan mengembalikan byte tanda tangan mentah.
Kesesuaian
Bagian berjudul “Kesesuaian”| Klaim | Standar | Klausa |
|---|---|---|
Tanda tangan CMS disimpan berpenyandian DER di entri Contents dictionary tanda tangan. | ISO 32000-2 | §12.8.1 |
| Proses komputasi message digest; atribut-tertanda membawa content-type dan message-digest. | RFC 5652 | §5.4 |
| Pemverifikasi tidak boleh mengandalkan digest yang dihitung pengirim; ia menghitung ulang secara mandiri dan membandingkan (proses verifikasi tanda tangan). | RFC 5652 | §5.6 |
| Sebuah signature-time-stamp PAdES B-T adalah atribut tak-tertanda yang membawa satu token tanda waktu yang dihitung atas nilai tanda tangan digital untuk seorang penanda tangan (Pro memproduksi B-T). | ETSI EN 319 122-1 | §5.3 |
MessageImprint token id-aa-timeStampToken signature-time-stamp adalah hash dari nilai field tanda tangan SignerInfo. | RFC 3161 | Appendix A |
Di sisi verifikasi, NextPDF mengikat MessageImprint sebuah signature-time-stamp ke nilai tanda tangan SignerInfo dan gagal-tertutup pada ketidakcocokan, token yang hilang/duplikat, atau imprint SHA-1 (verifikasi ketat, bukan sertifikasi). | RFC 3161 | Appendix A |
| Sebuah token tanda waktu B-T membawa genTime UTC yang merupakan instan saat token dibuat. | RFC 3161 | §2.4.2 |
| Validasi jalur sertifikasi memeriksa basic constraints dan input jalur ke trust anchor. | RFC 5280 | §6.1 |
| OCSP melaporkan certStatus sebagai good, revoked, atau unknown. | RFC 6960 | §2.2 |
| B-LT dan B-LTA menambahkan Document Security Store dan tanda waktu dokumen untuk validasi jangka panjang (batas Enterprise). | ETSI EN 319 142-2 | §5.5 |
Semua klausa diparafrasa. NextPDF tidak mereproduksi teks normatif. Konsultasikan standar yang diterbitkan untuk redaksi otoritatif. NextPDF Pro mengimplementasikan dukungan penandatanganan PAdES B-T sesuai ETSI EN 319 122-1 §5.3 (signature-time-stamp), RFC 3161, RFC 5652, dan RFC 5816, serta telah diverifikasi-fixture. ETSI EN 319 142-1 (bagian level-baseline PAdES) berada di luar rangkaian bukti yang dikutip; NextPDF Pro oleh karena itu tidak menyatakan sertifikasi, konformansi, atau kepatuhan ETSI EN 319 142-1 independen, dan tidak menyatakan validitas hukum dokumen. Halaman ini menyatakan struktur yang diproduksi, standar yang diimplementasikan dukungan B-T, dan batas B-LT/B-LTA Enterprise, bukan level konformansi tersertifikasi.
Batas publikasi
Bagian berjudul “Batas publikasi”Halaman ini mendokumentasikan hanya perilaku yang dapat diamati secara eksternal dan permukaan API publik yang didukung. Jalur namespace internal, kelas helper, tabel mekanisme, nama file runbook, dan prefiks tiket berada di luar cakupan.
Lihat juga
Bagian berjudul “Lihat juga”- Keamanan — Referensi Mendalam — referensi mendalam untuk permukaan keamanan Pro ini.
- Penandatanganan Core — penanda tangan CMS, tanda waktu RFC 3161, validasi jalur RFC 5280, OCSP dan CRL.
- Pemetaan klausa PAdES — B-B, B-T, B-LT, B-LTA lintas edisi.
- NextPDF Pro — permukaan fitur Pro yang lengkap.
- Keamanan Core — enkripsi dan permukaan tanda tangan yang lebih luas.
- CMS · PAdES · RFC 3161 timestamp · KMS · DSS — istilah glosarium.