İçeriğe geç
getnextpdf.com

Enterprise sürüm

Adli analiz

NextPDF Enterprise Forensics, bir PDF’in artımlı-güncelleme geçmişini okur ve revizyonların, sınıflandırılmış olayların ve nesne başına değişikliklerin yapılandırılmış, salt okunur bir raporunu üretir. Adli analiz iş akışlarını destekler. Kurcalamaya karşı korumalı bir mühür değildir ve bir belgenin gerçek veya değiştirilmemiş olduğunu ileri sürmez.

Bu yetenek NextPDF Enterprise (nextpdf/enterprise) ile sunulur ve bir Enterprise katmanı lisans zarfıyla etkinleşir. Bu hakka sahip olmayan bir dağıtım, yeteneğin sınıflarını yüklemez. Sürümleri karşılaştırın ve bir lisans alın.

Terminal window
composer require nextpdf/enterprise:^3

Bir PDF, yeniden yazmak yerine değişiklikleri dosyanın sonuna ekleyerek güncellenebilir. Her güncelleme yeni bir çapraz başvuru bölümü ve yeni bir trailer ekler ve orijinal baytlar yerinde bırakılır — ISO 32000-2:2020 §7.5.6. Bir nesne değiştirildiğinde güncelleme yeni bir kopya ekler ve güncellemenin çapraz başvuru bölümü, daha eski uzaklığı geçersiz kılan bir bayt uzaklığı kaydeder; bir okuyucu en yeni kopyayı çözümler — ISO 32000-2:2020 §7.5.6. İlk dosya yapısı sonraki güncellemelerle değiştirilebilir — ISO 32000-2:2020 §7.5.4. Bir güncellemenin çapraz başvuru bölümü, yalnızca o güncellemede eklenen, değiştirilen veya silinen nesneleri listeler — ISO 32000-2:2020 §7.5.5.

Çözümleyici bu katmanlı yapıyı okur. Her revizyonun çapraz başvuru tablosunu ayrıştırır, revizyon bayt sınırlarını türetir ve her nesneyi eklendi, değiştirildi veya silindi olarak sınıflandırmak için her revizyonun girdilerini bir sonraki daha eski revizyonla karşılaştırır. Ardından nesne değişikliklerini daha üst düzey olaylarda gruplar: bir imza eklendi, belge kataloğu güncellendi, bir şifreleme sözlüğü belirdi veya bir nesne kümesi eklendi, değiştirildi ya da kaldırıldı. Çıktı, bir revizyon sayısı, toplam boyut, revizyon başına bir özet listesi, sınıflandırılmış bir olay zaman çizelgesi ve nesne başına değişiklik listesi taşıyan tek bir rapor nesnesidir.

Çözümleyici salt okunurdur. Bir imza revizyonunun varlığını yapısal işaretleyicilerden algılar; herhangi bir imzayı doğrulamaz, herhangi bir özeti yeniden hesaplamaz veya herhangi bir sertifikayı denetlemez. İmza doğrulaması ayrı bir Core yeteneğidir. Üretilen bir rapor, ayrıştırıldığı şekliyle güncelleme geçmişinin yapısal bir açıklamasıdır; bir belgenin gerçek olduğunun, bir değişikliğin yetkisiz olduğunun veya her değişikliğin algılandığının bir belirlemesi değildir. Raporu, bir adli garanti veya mahkemede kabul edilebilir bir tasdik olarak değil, çözümleyicinin revizyon zincirine bakışına karşı sınanmış kurcalama-kanıtı algılaması olarak ele alın.

Çözümleyici bilinçli olarak yapıda durur. Revizyon zincirinin ne içerdiğini raporlar ve bir değişikliğin yetkili ya da bir imzanın geçerli olduğunu asla ileri sürmez. Yapısal varlık ve kriptografik geçerlilik farklı iddialardır; bunları birleştirmek, bir çağıranın kurcalama-kanıtını bir garanti sanmasına yol açar. Bu nedenle imza geçerliliği, Forensics’in birlikte oluştuğu ancak çoğaltmadığı tek Core imzalama yüzeyinde kalır. Rapor, JSON serileştirilebilir yapısal meta veridir; böylece bir SIEM, belge içeriğine dokunmadan düzenleme geçmişini alır. Tasarım arka planı: Artımlı güncellemeler ve neden önemli oldukları.

TürÇeşitRolKararlılıkBeri
ForensicAnalyzersınıfBir PDF’i ayrıştırır ve bir adli rapor döndürür (statik analyze)kararlı1.10.0
ForensicReportsınıfÇözümleme sonucu; SIEM dışa aktarımı için JsonSerializablekararlı1.10.0
RevisionSummarysınıfRevizyon başına olgular: nesne sayısı, boyut, bayt sınırları, varlık bayraklarıkararlı1.10.0
ForensicEventsınıfEtkilenen-nesne listesiyle bir sınıflandırılmış olaykararlı1.10.0
ForensicEventTypeenumOlay kategorileri (imza eklendi, katalog güncellendi, nesneler eklendi ve diğerleri)kararlı1.10.0
ObjectChangesınıfİki revizyon genelinde bir nesnenin değişiklik kaydıkararlı1.10.0
ObjectChangeTypeenumAdded, Modified veya Deletedkararlı1.10.0

ForensicReport; hasIncrementalUpdates(), hasAnySignature(), getEventsByType(), getChangesForRevision() ve jsonSerialize() açığa çıkarır. Bir revizyon özetindeki hasSignature bayrağı, bir geçerlilik sonucu değil, yapısal bir varlık sinyalidir.

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(), yapıda bir imza revizyonunun mevcut olduğunu bildirir. İmzanın geçerli olduğunu belirtmez.

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;
}
}
}

Günlük kaydı yalnızca sayıları ve boyutları taşır. Belge metni taşımaz. catch bloğu yeniden fırlatır; bir ayrıştırma hatasını yutmaz.

  • Tek revizyonlu bir belgenin hiçbir artımlı geçmişi yoktur. Değişiklik listesi boştur; bu, gerçeklik kanıtı değildir.
  • Bir SignatureAdded olayı, bir imza revizyonunun yapısal olarak mevcut olduğu anlamına gelir. Bir imza-geçerliliği sonucu değildir. İmzayı Core imzalama yüzeyiyle doğrulayın.
  • Nesne yeniden kullanımı normaldir: güncellenen bir nesne, nesne numarasını korur ve yeni bir kopya eklenir. Çözümleyici bunu kaldırma ve yeniden oluşturma olarak değil, Modified olarak raporlar.
  • Bir Deleted sınıflandırması, çapraz başvuru zincirinde serbest-girdi geçişidir. Bir okuyucu, o nesnenin daha eski bir kopyasını yine de çözümleyebilir; yapı düzeyinde silme, garanti edilmiş geri alınamazlık değildir.
  • Çözümleyici, ayrıştırıcının gözlemlediğini raporlar. Bir ayrıştırıcıyı şaşırtmak için hazırlanmış bir belge, farklı bir aracın bakışıyla eşleşmeyen bir rapor verebilir. Rapor, her değişikliğin algılandığına dair bir iddia değildir.
  • Girdi sınırlıdır. Aşırı büyük veya aşırı çok revizyonlu bir belge, sınırsız bellek tüketmek yerine türlenmiş bir ayrıştırma istisnasıyla fail-closed olur.

Çözümleme maliyeti, işlenmiş sayfa karmaşıklığıyla değil, revizyon sayısı ve nesne sayısıyla ölçeklenir. 1500 ms duvar bütçesi, tipik bir çok revizyonlu iş belgesini kapsar. Yeniden üretilebilirlik profili structural şeklindedir: rapor belirli bir girdi için deterministiktir, ancak mutlak bayt uzaklıkları tam girdi dosyasını yansıtır ve yeniden kaydedilmiş kopyalar arasında taşınabilir değildir.

Çözümleyici salt okunurdur ve girdiye asla yazmaz. Dönüşümsel değil, analitik bir yüzeydir. İmza ve şifreleme işaretleyicilerinin varlığını algılar ancak hiçbir kriptografik işlem gerçekleştirmez; bu nedenle hiçbir FIPS iddiasında bulunmaz. Bir rapor, ayrıştırılan güncelleme geçmişini açıklar; bir gerçeklik iddiası değildir ve kurcalamaya karşı korumalı, adli olarak garanti edilmiş veya mahkemede kabul edilebilir olarak sunulmamalıdır. Bir operatör sonuçlar çıkarır; kitaplık yapıyı raporlar.

Çözümleme, PDF’i tutan ana makinede süreç içinde çalışır. Hiçbir belge içeriği ana makineden ayrılmaz. Rapor; nesne numaralarını, revizyon dizinlerini, boyutları, bayt sınırlarını ve olay kategorilerini taşır — belge metni veya algılanan kişisel veri değil, yapısal meta veri. Girdi PDF’inin veya raporun kendisinin kişisel veri içerip içermediği ve her birinin nerede saklandığı, kitaplığın sınırının dışında bir dağıtım sorumluluğudur.

Kitaplık, yapısal mesajlarla türlenmiş istisnalar yükseltir ve istisna metnine belge baytları yerleştirmez. Çözümleme çevresinde günlük kaydeden bir dağıtım, raporun sayılarını ve kategorilerini günlüğe kaydetmelidir — üretim örneğinde gösterildiği gibi — ve ham PDF yükünü günlüklere veya bir APM arka ucuna kaydetmemelidir. JSON rapor, bir SIEM’e iletilecek güvenli yapıttır.

Bu modülde hiçbir kriptografik işlem gerçekleşmez; bu nedenle FIPS moduna özgü hiçbir davranış yoktur. Kriptografik olan imza doğrulaması, ayrı bir Core yeteneğidir ve orada belgelenmiştir.

İddiaStandartMadde
Sonraki güncellemeler ek ögeleri dosyanın sonuna ekler; orijinal yapı sonraki güncellemelerle değiştirilir.ISO 32000-2:2020§7.5.6
Güncellenen bir nesne yeni bir kopya olarak eklenir ve güncellemenin çapraz başvuru girdisi önceki bayt uzaklığını geçersiz kılar; okuyucu en yeni kopyayı çözümler.ISO 32000-2:2020§7.5.6
İlk dosya yapısı sonraki güncellemelerle değiştirilebilir.ISO 32000-2:2020§7.5.4
Bir güncellemenin çapraz başvuru bölümü yalnızca eklenen, değiştirilen veya silinen nesneler için girdiler içerir.ISO 32000-2:2020§7.5.5
İmza sözlüğü, neyin imzalandığını kaydeder.ISO 32000-2:2020§12.8.1
ByteRange, imzanın kapsadığı bayt aralığını tanımlar (imza doğrulaması ayrı bir Core yeteneğidir).ISO 32000-2:2020§12.8.1
Bir Document Security Store, sonraki bir revizyonda uzun süreli doğrulama materyalini tutar.ISO 32000-2:2020§12.8.4

Tüm maddeler başka sözcüklerle ifade edilmiştir. NextPDF normatif metni yeniden üretmez. Yetkili ifade için yayımlanmış standarda başvurun. NextPDF hiçbir adli-sertifikasyon iddiasında bulunmaz; rapor, belge bütünlüğünün sertifikalı bir belirlemesini değil, ayrıştırılan güncelleme yapısını açıklar.

  • Çözümleyici salt okunurdur: girdi belgesine asla yazmaz ve hiçbir kriptografik işlem gerçekleştirmez.
  • Her revizyonun çapraz başvuru tablosunu ayrıştırır, revizyon bayt sınırlarını türetir ve her nesneyi eklendi, değiştirildi veya silindi olarak sınıflandırır, ardından değişiklikleri sınıflandırılmış bir olay zaman çizelgesinde gruplar.
  • Bir SignatureAdded olayı, bir imza revizyonunun yapısal olarak mevcut olduğu anlamına gelir; bir imza-geçerliliği sonucu değildir — doğrulama ayrı bir Core yeteneğidir.
  • Tek revizyonlu bir belgenin boş bir değişiklik listesi vardır (gerçeklik kanıtı değildir); bir Deleted sınıflandırması, garanti edilmiş geri alınamazlık değil, bir serbest-girdi geçişidir.
  • Girdi sınırlıdır: aşırı büyük veya aşırı çok revizyonlu bir belge, türlenmiş bir ayrıştırma istisnasıyla fail-closed olur. Rapor, bir adli garanti veya mahkemede kabul edilebilir tasdik değil, sınanmış kurcalama-kanıtı algılamasıdır.

Bu sayfa yalnızca dışarıdan gözlemlenebilir davranışı ve desteklenen genel API yüzeyini belgeler. Dahilî ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, runbook dosya adları ve bilet önekleri kapsam dışıdır.

NextPDF Core’un (Apache-2.0) hiçbir revizyon-geçmişi adli çözümleyicisi yoktur — hiçbiri; bu yeteneğin hiçbir Core katmanı eşdeğeri yoktur. Core, çözümleyicinin birlikte oluştuğu ancak değiştirmediği yetkili imza-doğrulama yüzeyini sağlar.

NextPDF Pro’nun hiçbir revizyon-geçmişi adli çözümleyicisi yoktur — hiçbiri; bu yeteneğin hiçbir Pro katmanı eşdeğeri yoktur. Salt okunur revizyon ve nesne başına değişiklik raporlaması ile JSON serileştirilebilir SIEM raporu yalnızca nextpdf/enterprise paketinde sunulur.

Revizyon ayrıştırıcısı, değişiklik sınıflandırması ve olay zaman çizelgesi, davranış düzeyinde açıklanmıştır. Ayrıştırıcı dahilîleri ve herhangi bir dahilî sınıflandırma ayrıntısı, genel yüzeyin kapsamı dışındadır. İmza geçerliliği burada bilinçli olarak kapsam dışıdır — bu, Core imzalama yüzeyinin sorumluluğundadır.

Çözümleme, PDF’i tutan ana makinede süreç içinde çalışır; hiçbir belge içeriği ana makineden ayrılmaz. Girdi PDF’inin veya raporun kişisel veri içerip içermediği ve her birinin nerede saklandığı, kitaplığın sınırının dışında bir dağıtım sorumluluğudur. Operatör, rapordan sonuçlar çıkarır; kitaplık yapıyı raporlar ve belge gerçekliği ileri sürmez.

Forensics yüzeyine hiçbir ihracat denetimi kısıtlaması uygulanmaz. Rapor, kurcalamaya karşı korumalı, adli olarak garanti edilmiş veya mahkemede kabul edilebilir olarak sunulmamalıdır. Bu belge bir hukuki görüş değildir; kendi uyumluluk ve hukuk danışmanlarınıza başvurun.