Ga naar inhoud
getnextpdf.com

Enterprise editie

Bewijs

NextPDF Enterprise voegt validatiebevindingen per document samen tot een verzegeld, onveranderlijk pakket met een deterministische JSON-vorm en een stabiele SHA-256-digest, dat optioneel een RFC 3161-tijdstempeltoken draagt. Het vastleggen van bewijs ondersteunt auditworkflows. Het is geen juridische attestatie, geen auditcertificering en geen bewijs dat een document conform is.

Deze mogelijkheid wordt geleverd in NextPDF Enterprise (nextpdf/enterprise) en wordt geactiveerd met een licentie-envelop op Enterprise-niveau. Een implementatie zonder die rechten laadt de classes van de mogelijkheid niet. Vergelijk edities en verkrijg een licentie.

Terminal window
composer require nextpdf/enterprise:^3

EvidencePortal is het toegangspunt. generateEvidence($documentHash, $records, $tsaTimestamp) voegt een lijst EvidenceRecord-instances samen tot een EvidencePackage, berekent geslaagd/gefaald-statistieken, persisteert het pakket via een EvidenceStoreInterface en retourneert het verzegelde pakket. Een EvidenceRecord legt één beleidscontrole vast: beleidsnaam, geslaagd-vlag, details, de validatorversie die deze produceerde en een tijdstempel.

EvidencePackage is onveranderlijk zodra het is geconstrueerd. Het draagt een pakket-id, de SHA-256 van het gevalideerde document, de records, aggregaattellingen, een generatietijd en een optioneel RFC 3161-tijdstempeltoken. allPassed() en passRate() vatten het samen. De onveranderlijkheid maakt een pakket geschikt voor write-once-read-many (WORM)-opslag.

EvidenceExporter serialiseert een pakket naar een deterministische JSON-string — vaste sleutelvolgorde, reproduceerbaar — zodat exportHash() een stabiele SHA-256-digest van 64 tekens retourneert voor integriteitsverificatie. Hetzelfde pakket levert altijd dezelfde digest op, onafhankelijk van wanneer of waar deze wordt berekend.

ContinuousMonitor valideert een document opnieuw en vergelijkt het huidige bewijs met het opgeslagen eerdere bewijs op naam van het gefaalde beleid, categoriseert problemen als nieuw, opgelost of ongewijzigd en stelt een schemacontrole beschikbaar (isDue() / MonitorSchedule / MonitorFrequency). Dit ondersteunt driftdetectie in de tijd; het rapporteert wat is veranderd, het doet op geen enkel moment een uitspraak over de juridische status.

Deze module verpakt en voorziet validatiebevindingen van een tijdstempel voor auditworkflows. Het certificeert niets.

  • Een RFC 3161-tijdstempeltoken bindt het pakketdatum aan een tijdwaarde: het levert bewijs dat de gegevens vóór dat tijdstip bestonden. Het is geen juridische attestatie, en het stelt niet dat de getijdstempelde inhoud conform of geldig is.
  • Een verzegeld pakket met allPassed() === true registreert dat de opgenomen controles slaagden tegen de regels die ze implementeren. Het is geen auditcertificering.
  • De deterministische digest bewijst de integriteit van de pakketbytes. Het bewijst niet de regelgevende toereikendheid van het document.

Het vastleggen van bewijs ondersteunt auditworkflows; het is geen juridische attestatie of auditcertificering. Geldigheid en conformiteit blijven eigenschappen van het uiteindelijke bestand plus een validator.

Bewijsverpakking is een Enterprise-only-oppervlak. Core en Pro produceren bevindingen en rapporten; Enterprise Evidence verzegelt die bevindingen tot een onveranderlijk, deterministisch, optioneel getijdstempeld pakket en volgt regressies. Het hangt af van elders geproduceerde bevindingen (de Validation- of Compliance-oppervlakken); het voert zelf geen conformiteitscontroles uit.

Bewijs is alleen nuttig als het niet stilletjes achteraf kan worden herschreven, dus EvidencePackage is een verzegelde readonly-waarde zonder mutators — veilig voor write-once-read-many-opslag. De toJson()-uitvoer van de exporter volgt een vaste invoegvolgorde van sleutels, geen sortering tijdens runtime, zodat hetzelfde pakket altijd naar identieke bytes serialiseert. Die byte-stabiliteit laat een opgeslagen exportHash() toe om de integriteit later te verifiëren: elke wijziging aan het pakket wijzigt de digest. Het RFC 3161-token wordt bewaard als ingebed bewijs van tijd, nooit als een oordeel, zodat een pakket bewijst wanneer een controle liep zonder te stellen dat het document conform is. Regressievolging vergelijkt vervolgens op naam van het gefaalde beleid met het eerdere pakket, zodat driftdetectie onafhankelijk blijft van de volgorde of het aantal controles.

Ontwerpachtergrond: Compliance die je aan een auditor kunt overhandigen.

ClassVerantwoordelijkheid
EvidencePortalBewijspakketten samenstellen, persisteren en ophalen.
EvidencePackageOnveranderlijke verzegelde bundel records met aggregaatstatistieken.
EvidenceRecordEén beleidscontroleresultaat met validatorversie en tijdstempel.
EvidenceExporterDeterministische JSON-serialisatie; stabiele SHA-256-digest.
EvidenceStoreInterfacePersistentiecontract.
InMemoryEvidenceStoreIn-memory referentie-store-implementatie.
ContinuousMonitorOpnieuw valideren en vergelijken met eerder bewijs.
MonitorResultCategorisatie nieuw / opgelost / ongewijzigd probleem.
MonitorSchedule / MonitorFrequencySchemagebaseerde polling.
$package = $portal->generateEvidence($documentHash, $records);
$digest = $exporter->exportHash($package); // 64-char SHA-256
$package = $portal->generateEvidence($documentHash, $records, $tsaToken);
$logger->info('evidence.sealed', [
'package' => $package->packageId,
'digest' => $exporter->exportHash($package),
'pass_rate' => $package->passRate(),
]);
$delta = $monitor->check($package, $documentHash);
if ($delta->newIssues !== []) {
$logger->warning('evidence.regression', ['count' => count($delta->newIssues)]);
}
// The package is audit-supporting evidence, not an attestation of compliance.
  • passRate() retourneert 0.0 wanneer er geen bevindingen zijn; een leeg pakket is geen pass.
  • De export is alleen deterministisch via EvidenceExporter; het hashen van willekeurige serialisaties breekt de stabiele-digest-garantie.
  • Een pakket zonder TSA-token is nog steeds geldig bewijs; het token voegt een tijdbinding toe, geen oordeel.

Verpakking en deterministische serialisatie schalen lineair met het aantal records. Digestberekening is één enkele SHA-256-pass over de geserialiseerde JSON.

De pakketdigest levert tamper-evidence voor de pakketbytes. Het optionele RFC 3161-token moet afkomstig zijn van een vertrouwde TSA; deze module bedt het token in, het staat niet in voor de TSA. Behandel recorddetails als mogelijk gevoelig (zie hieronder).

Bewijsrecords en documenthashes kunnen verwijzen naar gereguleerde inhoud. Verpakking gebeurt in-process; persistentie wordt gedelegeerd aan je EvidenceStoreInterface-implementatie, dus residentie volgt je store. Pas bewaar- en minimalisatiecontroles toe op opgeslagen pakketten.

Pakketmetadata (id’s, digests, tellingen) zijn veilig om te loggen. Recorddetails kunnen bevindingsberichten weergeven die geëxtraheerde documentstrings bevatten; scrub die voordat je ze naar gedeelde sinks doorstuurt.

GedragReferentieStatus
Time-stamp token binds a datum to a timeIETF RFC 3161 §2Token ingebed (TSA-geleverd)
DSS / long-term validation contextISO 32000-2:2020 §12.8Gerefereerd (geconsumeerd, hier niet geproduceerd)

Deze tabel registreert de specificaties waartegen deze module is gebouwd. Een tijdstempeltoken is bewijs van tijd, geen certificering of juridische attestatie.

Deze module berekent SHA-256 over pakketbytes en bedt een door de aanroeper geleverd RFC 3161-token in. Ze voert geen ondertekening en geen sleutelbewaring uit; cryptografische bewerkingen en FIPS-modusgedrag worden afgehandeld door de Security- en Signature-modules.

Invoer bestaat uit bevindingen en een optioneel TSA-token. Mitigaties: onveranderlijke pakketten, deterministische serialisatie met een stabiele integriteitsdigest en gedelegeerde persistentie zodat de store WORM en toegangscontrole afdwingt.

  • De portal voegt bevindingen samen tot een onveranderlijk, verzegeld pakket met een pakket-id, de SHA-256 van het gevalideerde document, records, aggregaattellingen, generatietijd en een optioneel RFC 3161-tijdstempeltoken.
  • De exporter serialiseert een pakket naar een deterministische JSON-string met een vaste sleutelvolgorde zodat de digest een stabiele SHA-256 van 64 tekens is, identiek ongeacht wanneer of waar deze wordt berekend.
  • De continuous monitor valideert opnieuw en vergelijkt het huidige bewijs met het opgeslagen eerdere bewijs op naam van het gefaalde beleid, en categoriseert problemen als nieuw, opgelost of ongewijzigd.
  • passRate() retourneert 0.0 wanneer er geen bevindingen zijn — een leeg pakket is geen pass; een pakket zonder TSA-token is nog steeds geldig bewijs.
  • Een tijdstempeltoken is bewijs dat de gegevens vóór een tijdstip bestonden; het is geen juridische attestatie en doet geen uitspraak over de conformiteit of geldigheid van de inhoud.

Deze pagina documenteert alleen extern waarneembaar gedrag en het ondersteunde openbare API-oppervlak. Interne namespace-paden, helper-classes, mechanismetabellen, runbook-bestandsnamen en ticketprefixen vallen buiten de scope.

Core en Pro produceren bevindingen en rapporten; het verzegelen van die bevindingen tot een onveranderlijk, deterministisch, optioneel getijdstempeld pakket met regressievolging heeft geen equivalent op Core-niveau. Het Enterprise-oppervlak hangt af van elders geproduceerde bevindingen; het voert zelf geen conformiteitscontroles uit.

Pro-terugval — geen; deze mogelijkheid heeft geen equivalent op Pro-niveau. Het verzegelde bewijspakket, de deterministische exporter en de continuous monitor worden alleen geleverd in het nextpdf/enterprise-pakket; het oppervlak consumeert bevindingen van de Validation- of Compliance-oppervlakken.

De portal, het pakket, de exporter en de monitor worden op gedragsniveau beschreven. De in-memory referentie-store is gedocumenteerd; duurzame persistentie wordt geleverd door de host, en eventuele interne store-internals vallen buiten de scope van het openbare oppervlak. Deze module bedt een door de aanroeper geleverd TSA-token in; het staat niet in voor de TSA.

Verpakking en serialisatie gebeuren in-process. De operator levert een duurzame store-implementatie, is verantwoordelijk voor WORM-handhaving en toegangscontrole, en levert een TSA-token van een vertrouwde TSA. Bewijsrecords en documenthashes kunnen verwijzen naar gereguleerde inhoud; residentie volgt de store van de operator, en bewaar- en minimalisatiecontroles zijn de verantwoordelijkheid van de operator.

Het vastleggen van bewijs ondersteunt auditworkflows; het is geen juridische attestatie of auditcertificering, en geldigheid en conformiteit blijven eigenschappen van het uiteindelijke bestand plus een validator. Deze documentatie is geen juridisch oordeel; raadpleeg je eigen compliance- en juridische adviseurs.