Aller au contenu

Analyse forensique d'un PDF signé via Connect

Cette recette utilise l’outil d’analyse forensique avec les transports Connect pour reconstruire l’historique des révisions d’un document signé et signaler les changements de contenu survenus hors des plages d’octets signées. L’outil relève du niveau Enterprise : il est découvert via une sonde class_exists() et enregistré uniquement lorsque nextpdf/premium est installé aux côtés du serveur.

L’outil signale les éléments de preuve observés : révisions, plages d’octets, couverture de la signature et indicateurs heuristiques d’attaque par ombre, avec leurs scores de confiance. Un verdict « propre » correspond à l’absence de modification détectée dans le périmètre de l’analyse effectuée par l’outil ; ce n’est pas une garantie que le document n’a pas été falsifié. Les constatations étayent une enquête ; elles ne certifient pas l’intégrité.

Fenêtre de terminal
composer require nextpdf/server

Confirme la présence de l’outil forensique Enterprise avec un appel tools/list. Voir /connect/tool-catalog/.

Une signature couvre une plage d’octets, et toute modification postérieure à la signature est détectable en comparant le document à cette plage (ISO 32000-2 §12.8). Les mises à jour incrémentielles ajoutent des révisions, et une signature ne couvre pas le contenu ajouté après elle (ISO 32000-2 §12.8). La chaîne des révisions peut être reconstruite à partir des sections de références croisées (ISO 32000-2 §7.5). L’outil parcourt ces structures pour construire une chronologie et signaler le contenu modifié hors de la couverture de la signature.

Vérifie les noms des outils auprès du registre en cours d’exécution avec tools/list. Le catalogue de référence est /connect/tool-catalog/. Cette recette ne répète pas le décompte des outils.

{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "forensic_analyze",
"arguments": { "document_id": "<id>" }
}
}
Fenêtre de terminal
curl -sS -X POST https://connect.example.com/v1/tools/forensic_analyze \
-H 'Authorization: Bearer '"$NEXTPDF_CONNECT_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"source":"/var/lib/nextpdf/evidence/disputed-contract.pdf"}' \
-o /tmp/forensic.json -w '%{http_code}' > /tmp/forensic-status || {
echo "transport failure invoking forensic_analyze" >&2; exit 1; }

La réponse comprend une chronologie des révisions, la couverture de la signature par révision, une liste unsigned_modifications avec des décalages d’octets et un niveau de sévérité, des indicateurs heuristiques d’attaque par ombre assortis de scores de confiance, ainsi que les lacunes de couverture. Traite le verdict comme un élément de preuve à interpréter, pas comme une conclusion.

  • Aucune signature dans le document. L’outil renvoie une erreur indiquant l’absence de signature. Utilise la vérification de conformité aux normes pour valider un document non signé.
  • Document chiffré. Fournis les identifiants de déchiffrement, faute de quoi l’appel échoue au lieu d’analyser partiellement.
  • Références croisées mal formées. La reconstruction peut échouer sur un fichier gravement corrompu. Répare le PDF avant de le soumettre à nouveau.
  • Outil absent. Sans nextpdf/premium, l’outil forensique Enterprise n’est pas enregistré et l’appel échoue avec une erreur d’outil inconnu.

Le budget indiqué dans les métadonnées d’en-tête sert de plafond documentaire. Les documents très volumineux peuvent dépasser la limite de taille d’analyse de l’outil. Dans ce cas, l’outil renvoie une erreur de limite de taille au lieu de tronquer silencieusement.

Les indicateurs d’attaque par ombre sont heuristiques et s’accompagnent de scores de confiance. Ils signalent des motifs ; ils ne prouvent pas l’intention. Un verdict « propre » signifie qu’aucune modification n’a été détectée dans le périmètre de l’analyse effectuée : ce n’est pas une garantie d’inviolabilité. Ne consigne pas le chemin du document ni le rapport complet à un niveau de journalisation exposé en externe.

AffirmationClausereference_id
Toute modification après la signature est détectable par rapport à la plage d’octets signéeISO 32000-2 §12.8
Une signature ne couvre pas le contenu ajouté par une mise à jour incrémentielle ultérieureISO 32000-2 §12.8
La chaîne des révisions peut être reconstruite à partir des sections de références croiséesISO 32000-2 §7.5

La prise en charge de l’analyse forensique ne certifie pas l’intégrité du document. Un examinateur indépendant interprète les éléments de preuve.

L’outil d’analyse forensique relève du niveau Enterprise et ne s’enregistre que lorsque nextpdf/premium est installé aux côtés du serveur.

L’outil est invoqué de la même façon via MCP tools/call, le point de terminaison d’outil REST et le service gRPC, au moyen de l’exécuteur d’outils partagé.

L’analyse est en lecture seule et n’est pas approval_required par défaut. Une dérogation de l’opérateur ne peut que relever son niveau de risque. Voir /connect/hitl-risk-tiers/ pour plus de détails.

L’outil ne déclenche pas la barrière, sauf si une dérogation de l’opérateur l’élève à approval_required. Le contrat de l’enveloppe et celui du jeton à usage unique figurent dans /connect/hitl-risk-tiers/.

  • /cookbook/connect/compliance-check/ — validation au regard de normes nommées.
  • /cookbook/connect/ltv-health-check/ — inspection des éléments de validation à long terme.
  • /connect/tool-catalog/ — calcul de l’ensemble des outils par niveau.
  • /connect/hitl-risk-tiers/ — le modèle de risque et la barrière.