Lewati ke konten
getnextpdf.com

Enterprise edisi

Forensik

NextPDF Enterprise Forensics membaca riwayat incremental-update sebuah PDF dan menghasilkan laporan terstruktur hanya-baca berisi revisi, peristiwa terklasifikasi, dan perubahan per-objek. Laporan ini mendukung alur kerja analisis forensik. Laporan ini bukan segel anti-rusak dan tidak menegaskan bahwa sebuah dokumen autentik atau tidak diubah.

Kapabilitas ini disertakan dalam NextPDF Enterprise (nextpdf/enterprise) dan aktif dengan envelope lisensi tingkat-Enterprise. Penerapan tanpa hak akses tersebut tidak memuat kelas-kelas kapabilitas ini. Bandingkan edisi dan dapatkan lisensi.

Terminal window
composer require nextpdf/enterprise:^3

Sebuah PDF dapat diperbarui dengan menambahkan perubahan ke akhir berkas alih-alih menulisnya ulang. Setiap pembaruan menambahkan cross-reference section baru dan trailer baru, dan byte asli dibiarkan di tempatnya — ISO 32000-2:2020 §7.5.6. Ketika sebuah objek diubah, pembaruan menambahkan salinan baru dan cross-reference section pembaruan mencatat byte offset yang menimpa offset lama; sebuah pembaca me-resolve salinan terbaru — ISO 32000-2:2020 §7.5.6. Struktur berkas awal dapat dimodifikasi oleh pembaruan berikutnya — ISO 32000-2:2020 §7.5.4. Cross-reference section sebuah pembaruan hanya mencantumkan objek yang ditambahkan, dimodifikasi, atau dihapus dalam pembaruan itu — ISO 32000-2:2020 §7.5.5.

Penganalisis membaca struktur berlapis ini. Ia mengurai tabel cross-reference setiap revisi, menurunkan batas byte revisi, dan membandingkan entri setiap revisi terhadap revisi yang lebih lama berikutnya untuk mengklasifikasikan setiap objek sebagai ditambahkan, dimodifikasi, atau dihapus. Ia kemudian mengelompokkan perubahan objek menjadi peristiwa tingkat-lebih-tinggi: sebuah tanda tangan ditambahkan, katalog dokumen diperbarui, sebuah kamus enkripsi muncul, atau sekumpulan objek ditambahkan, dimodifikasi, atau dihapus. Keluarannya adalah satu objek laporan yang membawa jumlah revisi, ukuran total, daftar ringkasan per-revisi, lini masa peristiwa terklasifikasi, dan daftar perubahan per-objek.

Penganalisis bersifat hanya-baca. Ia mendeteksi keberadaan sebuah revisi tanda tangan dari penanda struktural; ia tidak memvalidasi tanda tangan apa pun, menghitung ulang digest apa pun, atau memeriksa sertifikat apa pun. Validasi tanda tangan adalah kapabilitas Core tersendiri. Laporan yang dihasilkan adalah deskripsi struktural dari riwayat pembaruan sebagaimana diurai; ia bukan penetapan bahwa sebuah dokumen autentik, bahwa suatu perubahan tidak diotorisasi, atau bahwa setiap modifikasi terdeteksi. Perlakukan laporan sebagai deteksi bukti-rusak sebagaimana diuji terhadap pandangan parser atas rantai revisi, bukan sebagai jaminan forensik atau atestasi yang dapat-diterima-pengadilan.

Penganalisis sengaja berhenti pada struktur. Ia melaporkan apa yang dimuat rantai revisi, dan tidak pernah menegaskan bahwa suatu perubahan diotorisasi atau sebuah tanda tangan valid. Keberadaan struktural dan validitas kriptografi adalah klaim yang berbeda; menggabungkannya akan membuat pemanggil salah mengira bukti-rusak sebagai jaminan. Karena itu validitas tanda tangan tetap berada pada satu permukaan penandatanganan Core, yang menjadi tempat Forensics berkomposisi alih-alih menggandakan. Laporan adalah metadata struktural yang dapat-diserial-JSON, sehingga sebuah SIEM menyerap riwayat penyuntingan tanpa menyentuh konten dokumen. Latar belakang desain: Incremental update dan mengapa penting.

TipeJenisPeranStabilitasSejak
ForensicAnalyzerclassMengurai PDF dan mengembalikan laporan forensik (analyze statis)stable1.10.0
ForensicReportclassHasil analisis; JsonSerializable untuk ekspor SIEMstable1.10.0
RevisionSummaryclassFakta per-revisi: jumlah objek, ukuran, batas byte, flag keberadaanstable1.10.0
ForensicEventclassSatu peristiwa terklasifikasi dengan daftar objek-terdampakstable1.10.0
ForensicEventTypeenumKategori peristiwa (tanda tangan ditambahkan, katalog diperbarui, objek ditambahkan, dan lainnya)stable1.10.0
ObjectChangeclassCatatan perubahan satu objek lintas dua revisistable1.10.0
ObjectChangeTypeenumAdded, Modified, atau Deletedstable1.10.0

ForensicReport memaparkan hasIncrementalUpdates(), hasAnySignature(), getEventsByType(), getChangesForRevision(), dan jsonSerialize(). Flag hasSignature pada ringkasan revisi adalah sinyal keberadaan struktural, bukan hasil validitas.

Analyze the revision history of a PDF
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Enterprise\Forensics\ForensicAnalyzer;
/**
* Produce a forensic report from PDF bytes.
*
* @param string $pdfData Raw PDF file bytes.
*
* @return array{revisions: int, incremental: bool, signedRevisionPresent: bool}
*/
function inspect(string $pdfData): array
{
$report = ForensicAnalyzer::analyze($pdfData);
return [
'revisions' => $report->revisionCount,
'incremental' => $report->hasIncrementalUpdates(),
'signedRevisionPresent' => $report->hasAnySignature(),
];
}

hasAnySignature() melaporkan bahwa sebuah revisi tanda tangan hadir dalam struktur. Ia tidak menyatakan bahwa tanda tangan tersebut valid.

Forensic analysis with SIEM export and fail-closed handling
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Enterprise\Forensics\ForensicAnalyzer;
use NextPDF\Enterprise\Forensics\ForensicEventType;
use Psr\Log\LoggerInterface;
final readonly class RevisionAuditor
{
public function __construct(private LoggerInterface $logger) {}
/**
* Analyze a document and emit a structural JSON record for the SIEM.
*
* @param string $pdfData The PDF bytes to inspect.
*
* @return string A JSON forensic report (no document content).
*/
public function audit(string $pdfData): string
{
try {
$report = ForensicAnalyzer::analyze($pdfData);
$this->logger->info('Forensic analysis complete', [
'revisions' => $report->revisionCount,
'sizeBytes' => $report->totalSizeBytes,
'signatureAddedEvents' => count(
$report->getEventsByType(ForensicEventType::SignatureAdded),
),
]);
return json_encode($report, JSON_THROW_ON_ERROR);
} catch (\Throwable $e) {
$this->logger->error('Forensic analysis failed', ['error' => $e->getMessage()]);
throw $e;
}
}
}

Catatan log hanya membawa jumlah dan ukuran. Ia tidak membawa teks dokumen. Blok catch melempar ulang; ia tidak menelan kegagalan urai.

  • Dokumen revisi-tunggal tidak memiliki riwayat incremental. Daftar perubahan kosong; ini bukan bukti keautentikan.
  • Sebuah peristiwa SignatureAdded berarti sebuah revisi tanda tangan hadir secara struktural. Itu bukan hasil validitas-tanda-tangan. Validasi tanda tangan dengan permukaan penandatanganan Core.
  • Pemakaian-ulang objek adalah hal normal: objek yang diperbarui mempertahankan nomor objeknya dan salinan baru ditambahkan. Penganalisis melaporkan ini sebagai Modified, bukan sebagai penghapusan dan pembuatan-ulang.
  • Klasifikasi Deleted adalah transisi free-entry dalam rantai cross-reference. Sebuah pembaca mungkin masih me-resolve salinan lama objek tersebut; penghapusan pada tingkat struktur bukan jaminan ketidakpulihan.
  • Penganalisis melaporkan apa yang diamati parser. Dokumen yang dirancang untuk membingungkan parser dapat menghasilkan laporan yang tidak cocok dengan pandangan alat berbeda. Laporan bukan klaim bahwa setiap modifikasi terdeteksi.
  • Masukan dibatasi. Dokumen berukuran-berlebih atau dengan revisi-berlebih gagal-tertutup dengan eksepsi urai bertipe alih-alih mengonsumsi memori tak terbatas.

Biaya analisis berskala dengan jumlah revisi dan jumlah objek, bukan dengan kompleksitas halaman yang dirender. Anggaran wall 1500 ms mencakup dokumen bisnis multi-revisi yang khas. Profil reproduksibilitasnya adalah structural: laporan bersifat deterministik untuk masukan tertentu, tetapi byte offset absolut mencerminkan berkas masukan persis dan tidak portabel lintas salinan yang disimpan-ulang.

Penganalisis bersifat hanya-baca dan tidak pernah menulis ke masukan. Ia adalah permukaan analitis, bukan transformasional. Ia mendeteksi keberadaan penanda tanda tangan dan enkripsi tetapi tidak melakukan operasi kriptografi, sehingga ia tidak membuat klaim FIPS. Sebuah laporan menjelaskan riwayat pembaruan yang diurai; ia bukan penegasan keautentikan dan tidak boleh disajikan sebagai anti-rusak, terjamin-secara-forensik, atau dapat-diterima-pengadilan. Operator menarik kesimpulan; pustaka melaporkan struktur.

Analisis berjalan di dalam proses pada host yang menyimpan PDF. Tidak ada konten dokumen yang meninggalkan host. Laporan membawa nomor objek, indeks revisi, ukuran, batas byte, dan kategori peristiwa — metadata struktural, bukan teks dokumen atau data pribadi yang terdeteksi. Apakah PDF masukan atau laporan itu sendiri berisi data pribadi, dan di mana masing-masing disimpan, adalah tanggung jawab penerapan di luar batas pustaka.

Pustaka memunculkan eksepsi bertipe dengan pesan struktural dan tidak menempatkan byte dokumen ke dalam teks eksepsi. Penerapan yang mencatat di sekitar analisis sebaiknya mencatat jumlah dan kategori laporan — seperti yang ditunjukkan dalam sampel produksi — dan tidak boleh mencatat muatan PDF mentah ke log atau backend APM. Laporan JSON adalah artefak aman untuk diteruskan ke SIEM.

Tidak ada operasi kriptografi yang terjadi dalam modul ini, sehingga tidak ada perilaku spesifik-mode-FIPS. Validasi tanda tangan, yang bersifat kriptografi, adalah kapabilitas Core tersendiri dan didokumentasikan di sana.

KlaimStandarKlausa
Pembaruan berikutnya menambahkan elemen tambahan ke akhir berkas; struktur asli dimodifikasi oleh pembaruan berikutnya.ISO 32000-2:2020§7.5.6
Objek yang diperbarui ditambahkan sebagai salinan baru dan entri cross-reference pembaruan menimpa byte offset sebelumnya; pembaca me-resolve salinan terbaru.ISO 32000-2:2020§7.5.6
Struktur berkas awal dapat dimodifikasi oleh pembaruan berikutnya.ISO 32000-2:2020§7.5.4
Cross-reference section sebuah pembaruan hanya berisi entri untuk objek yang ditambahkan, dimodifikasi, atau dihapus.ISO 32000-2:2020§7.5.5
Kamus tanda tangan mencatat apa yang ditandatangani.ISO 32000-2:2020§12.8.1
ByteRange mendefinisikan rentang byte yang dicakup tanda tangan (validasi tanda tangan adalah kapabilitas Core tersendiri).ISO 32000-2:2020§12.8.1
Sebuah Document Security Store menyimpan material validasi jangka panjang dalam revisi berikutnya.ISO 32000-2:2020§12.8.4

Semua klausa diparafrasakan. NextPDF tidak mereproduksi teks normatif. Konsultasikan standar yang diterbitkan untuk redaksi yang otoritatif. NextPDF tidak membuat klaim sertifikasi-forensik; laporan menjelaskan struktur pembaruan yang diurai, bukan penetapan tersertifikasi atas integritas dokumen.

  • Penganalisis bersifat hanya-baca: ia tidak pernah menulis ke dokumen masukan dan tidak melakukan operasi kriptografi.
  • Ia mengurai tabel cross-reference setiap revisi, menurunkan batas byte revisi, dan mengklasifikasikan setiap objek sebagai ditambahkan, dimodifikasi, atau dihapus, lalu mengelompokkan perubahan menjadi lini masa peristiwa terklasifikasi.
  • Sebuah peristiwa SignatureAdded berarti sebuah revisi tanda tangan hadir secara struktural; itu bukan hasil validitas-tanda-tangan — validasi adalah kapabilitas Core tersendiri.
  • Dokumen revisi-tunggal memiliki daftar perubahan kosong (bukan bukti keautentikan); klasifikasi Deleted adalah transisi free-entry, bukan jaminan ketidakpulihan.
  • Masukan dibatasi: dokumen berukuran-berlebih atau dengan revisi-berlebih gagal-tertutup dengan eksepsi urai bertipe. Laporan adalah deteksi bukti-rusak sebagaimana diuji, bukan jaminan forensik atau atestasi yang dapat-diterima-pengadilan.

Halaman ini hanya mendokumentasikan perilaku yang dapat diamati secara eksternal dan permukaan API publik yang didukung. Path namespace internal, kelas pembantu, tabel mekanisme, nama berkas runbook, dan prefiks tiket berada di luar cakupan.

NextPDF Core (Apache-2.0) tidak memiliki penganalisis forensik riwayat-revisi — tidak ada; kapabilitas ini tidak memiliki padanan tingkat-Core. Core menyediakan permukaan validasi-tanda-tangan otoritatif, yang menjadi tempat penganalisis berkomposisi tetapi tidak menggantikan.

NextPDF Pro tidak memiliki penganalisis forensik riwayat-revisi — tidak ada; kapabilitas ini tidak memiliki padanan tingkat-Pro. Pelaporan perubahan revisi dan per-objek hanya-baca serta laporan SIEM yang dapat-diserial-JSON disertakan hanya dalam paket nextpdf/enterprise.

Parser revisi, klasifikasi perubahan, dan lini masa peristiwa dijelaskan pada tingkat perilaku. Internal parser dan setiap detail klasifikasi internal berada di luar cakupan permukaan publik. Validitas tanda tangan secara sengaja tidak berada dalam cakupan di sini — itu adalah tanggung jawab permukaan penandatanganan Core.

Analisis berjalan di dalam proses pada host yang menyimpan PDF; tidak ada konten dokumen yang meninggalkan host. Apakah PDF masukan atau laporan berisi data pribadi, dan di mana masing-masing disimpan, adalah tanggung jawab penerapan di luar batas pustaka. Operator menarik kesimpulan dari laporan; pustaka melaporkan struktur dan tidak menegaskan keautentikan dokumen.

Tidak ada pembatasan kontrol-ekspor yang berlaku pada permukaan Forensics. Laporan tidak boleh disajikan sebagai anti-rusak, terjamin-secara-forensik, atau dapat-diterima-pengadilan. Dokumentasi ini bukan opini hukum; konsultasikan dengan penasihat kepatuhan dan hukum Anda sendiri.