Aller au contenu
getnextpdf.com

Enterprise édition

Preuves

NextPDF Enterprise assemble les constats de validation par document en un paquet scellé et immuable doté d’une forme JSON déterministe et d’une empreinte SHA-256 stable, portant optionnellement un jeton d’horodatage RFC 3161. La capture de preuves prend en charge les flux de travail d’audit. Ce n’est ni une attestation juridique, ni une certification d’audit, ni une preuve qu’un document est conforme.

Cette capacité est livrée dans NextPDF Enterprise (nextpdf/enterprise) et s’active avec une enveloppe de licence de palier Enterprise. Un déploiement sans ce droit d’usage ne charge pas les classes de la capacité. Comparer les éditions et obtenir une licence.

Fenêtre de terminal
composer require nextpdf/enterprise:^3

EvidencePortal est le point d’entrée. generateEvidence($documentHash, $records, $tsaTimestamp) assemble une liste d’instances EvidenceRecord en un EvidencePackage, calcule les statistiques de réussite/échec, persiste le paquet via une EvidenceStoreInterface et renvoie le paquet scellé. Un EvidenceRecord capture une vérification de politique : nom de la politique, indicateur de réussite, détails, la version du validateur qui l’a produit, et un horodatage.

EvidencePackage est immuable une fois construit. Il porte un identifiant de paquet, la SHA-256 du document validé, les enregistrements, les comptes agrégés, une heure de génération et un jeton d’horodatage RFC 3161 optionnel. allPassed() et passRate() le résument. Son immuabilité rend un paquet adapté au stockage écrire-une-fois-lire-plusieurs (WORM).

EvidenceExporter sérialise un paquet en une chaîne JSON déterministe — ordre de clés fixe, reproductible — afin que exportHash() renvoie une empreinte SHA-256 stable de 64 caractères pour la vérification d’intégrité. Le même paquet produit toujours la même empreinte, indépendamment du moment et du lieu où elle est calculée.

ContinuousMonitor revalide un document et compare la preuve courante à la preuve antérieure stockée par nom de politique en échec, catégorisant les problèmes comme nouveaux, résolus ou inchangés, et exposant une vérification de calendrier (isDue() / MonitorSchedule / MonitorFrequency). Cela prend en charge la détection de dérive dans le temps ; il rapporte ce qui a changé, il n’affirme aucun statut juridique à quelque moment que ce soit.

Ce module empaquette et horodate les constats de validation pour les flux de travail d’audit. Il ne certifie rien.

  • Un jeton d’horodatage RFC 3161 lie la donnée du paquet à une valeur temporelle : il fournit la preuve que les données existaient avant ce moment. Ce n’est pas une attestation juridique, et il n’affirme pas que le contenu horodaté est conforme ou valide.
  • Un paquet scellé avec allPassed() === true enregistre que les vérifications incluses ont réussi au regard des règles qu’elles mettent en œuvre. Ce n’est pas une certification d’audit.
  • L’empreinte déterministe prouve l’intégrité des octets du paquet. Elle ne prouve pas la suffisance réglementaire du document.

La capture de preuves prend en charge les flux de travail d’audit ; ce n’est ni une attestation juridique, ni une certification d’audit. La validité et la conformité restent des propriétés du fichier final plus un validateur.

L’empaquetage de preuves est une surface réservée à Enterprise. Le Core et Pro produisent des constats et des rapports ; Enterprise Evidence scelle ces constats en un paquet immuable, déterministe, optionnellement horodaté, et suit les régressions. Il dépend de constats produits ailleurs (les surfaces Validation ou Compliance) ; il n’effectue pas lui-même de vérifications de conformité.

Une preuve n’est utile que si elle ne peut pas être discrètement réécrite après coup ; c’est pourquoi EvidencePackage est une valeur readonly scellée sans mutateur — sûre pour le stockage écrire-une-fois-lire-plusieurs. La sortie toJson() de l’exporteur suit un ordre d’insertion de clés fixe, et non un tri à l’exécution, de sorte que le même paquet se sérialise toujours en octets identiques. Cette stabilité des octets permet à un exportHash() stocké de vérifier l’intégrité plus tard : toute modification du paquet change l’empreinte. Le jeton RFC 3161 est conservé comme preuve intégrée du temps, jamais comme un verdict, de sorte qu’un paquet prouve quand une vérification a été exécutée sans affirmer que le document est conforme. Le suivi des régressions compare ensuite par nom de politique en échec au paquet antérieur, de sorte que la détection de dérive reste indépendante de l’ordre ou du nombre des vérifications.

Contexte de conception : Une conformité que tu peux remettre à un auditeur.

ClasseResponsabilité
EvidencePortalAssemble, persiste et récupère les paquets de preuves.
EvidencePackageLot scellé immuable d’enregistrements avec statistiques agrégées.
EvidenceRecordUn résultat de vérification de politique avec version du validateur et horodatage.
EvidenceExporterSérialisation JSON déterministe ; empreinte SHA-256 stable.
EvidenceStoreInterfaceContrat de persistance.
InMemoryEvidenceStoreImplémentation de référence de magasin en mémoire.
ContinuousMonitorRevalide et compare à la preuve antérieure.
MonitorResultCatégorisation des problèmes nouveaux / résolus / inchangés.
MonitorSchedule / MonitorFrequencyInterrogation fondée sur un calendrier.
$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() renvoie 0.0 lorsqu’il n’y a aucun constat ; un paquet vide n’est pas une réussite.
  • L’export n’est déterministe qu’à travers EvidenceExporter ; calculer l’empreinte de sérialisations arbitraires rompt la garantie d’empreinte stable.
  • Un paquet sans jeton TSA est tout de même une preuve valide ; le jeton ajoute une liaison temporelle, et non un verdict.

L’empaquetage et la sérialisation déterministe évoluent linéairement avec le nombre d’enregistrements. Le calcul de l’empreinte est un unique passage SHA-256 sur le JSON sérialisé.

L’empreinte du paquet fournit une résistance à l’altération pour les octets du paquet. Le jeton RFC 3161 optionnel doit provenir d’une TSA de confiance ; ce module intègre le jeton, il ne se porte pas garant de la TSA. Considère les détails des enregistrements comme potentiellement sensibles (voir ci-dessous).

Résidence des données & mesures d’atténuation des PII

Section intitulée « Résidence des données & mesures d’atténuation des PII »

Les enregistrements de preuves et les empreintes de documents peuvent référencer du contenu réglementé. L’empaquetage est en mémoire (in-process) ; la persistance est déléguée à ton implémentation d’EvidenceStoreInterface, de sorte que la résidence suit ton magasin. Applique des contrôles de conservation et de minimisation aux paquets stockés.

Les métadonnées de paquet (identifiants, empreintes, comptes) peuvent être journalisées en toute sécurité. Les détails des enregistrements peuvent reprendre des messages de constats contenant des chaînes extraites du document ; caviarde-les avant de les transmettre vers des collecteurs partagés.

ComportementRéférenceÉtat
Le jeton d’horodatage lie une donnée à un instantIETF RFC 3161 §2Jeton intégré (fourni par la TSA)
Contexte DSS / validation à long termeISO 32000-2:2020 §12.8Référencé (consommé, non produit ici)

Ce tableau consigne les spécifications au regard desquelles ce module est construit. Un jeton d’horodatage est une preuve de temps, et non une certification ni une attestation juridique.

Ce module calcule la SHA-256 sur les octets du paquet et intègre un jeton RFC 3161 fourni par l’appelant. Il n’effectue aucune signature et aucune garde de clés ; les opérations cryptographiques et le comportement en mode FIPS sont gérés par les modules Sécurité et Signature.

Les entrées sont des constats et un jeton TSA optionnel. Mesures d’atténuation : paquets immuables, sérialisation déterministe avec une empreinte d’intégrité stable, et persistance déléguée afin que le magasin applique le WORM et le contrôle d’accès.

  • Le portail assemble les constats en un paquet immuable et scellé avec un identifiant de paquet, la SHA-256 du document validé, les enregistrements, les comptes agrégés, l’heure de génération et un jeton d’horodatage RFC 3161 optionnel.
  • L’exporteur sérialise un paquet en une chaîne JSON déterministe avec un ordre de clés fixe afin que l’empreinte soit une SHA-256 stable de 64 caractères, identique quel que soit le moment ou le lieu de calcul.
  • Le moniteur continu revalide et compare la preuve courante à la preuve antérieure stockée par nom de politique en échec, catégorisant les problèmes comme nouveaux, résolus ou inchangés.
  • passRate() renvoie 0.0 lorsqu’il n’y a aucun constat — un paquet vide n’est pas une réussite ; un paquet sans jeton TSA est tout de même une preuve valide.
  • Un jeton d’horodatage est la preuve que les données existaient avant un moment ; ce n’est pas une attestation juridique et il ne formule aucune revendication sur la conformité ou la validité du contenu.

Cette page documente uniquement le comportement observable de l’extérieur et la surface d’API publique prise en charge. Les chemins d’espace de noms internes, les classes utilitaires, les tableaux de mécanismes, les noms de fichiers de runbook et les préfixes de ticket sont hors périmètre.

Le Core et Pro produisent des constats et des rapports ; sceller ces constats en un paquet immuable, déterministe, optionnellement horodaté avec suivi des régressions n’a aucun équivalent au palier Core. La surface Enterprise dépend de constats produits ailleurs ; elle n’effectue pas elle-même de vérifications de conformité.

Repli sur Pro — aucun ; cette capacité n’a aucun équivalent au palier Pro. Le paquet de preuves scellé, l’exporteur déterministe et le moniteur continu sont livrés uniquement dans le paquet nextpdf/enterprise ; la surface consomme les constats des surfaces Validation ou Compliance.

Le portail, le paquet, l’exporteur et le moniteur sont décrits au niveau du comportement. Le magasin de référence en mémoire est documenté ; la persistance durable est fournie par l’hôte, et tout détail interne du magasin est hors du périmètre de la surface publique. Ce module intègre un jeton TSA fourni par l’appelant ; il ne se porte pas garant de la TSA.

L’empaquetage et la sérialisation sont en mémoire (in-process). L’opérateur fournit une implémentation de magasin durable, est responsable de l’application du WORM et du contrôle d’accès, et fournit un jeton TSA issu d’une TSA de confiance. Les enregistrements de preuves et les empreintes de documents peuvent référencer du contenu réglementé ; la résidence suit le magasin de l’opérateur, et les contrôles de conservation et de minimisation relèvent de la responsabilité de l’opérateur.

La capture de preuves prend en charge les flux de travail d’audit ; ce n’est ni une attestation juridique, ni une certification d’audit, et la validité et la conformité restent des propriétés du fichier final plus un validateur. Cette documentation n’est pas un avis juridique ; consulte tes propres conseillers conformité et juridiques.