Export judiciaire & valeur probante

planar produit des dossiers numriques valeur probante conformes la norme NF Z42-013, avec horodatage qualifi eIDAS et chane de custody cryptographique.

Vue d'ensemble

L'export judiciaire gnre un dossier ZIP autonome contenant l'intgralit des preuves d'une mission : photos, vidos bodycam, enregistrements audio, traces GPS, marqueurs et notes. Chaque lment est hash individuellement (SHA-256) et l'ensemble est certifi par un jeton d'horodatage RFC 3161.

Conformit NF Z42-013

La norme NF Z42-013 (AFNOR) dfinit les spcifications relatives la conception et l'exploitation de systmes informatiques en vue d'assurer la conservation et l'intgrit des documents stocks. L'architecture d'export de planar s'inspire des exigences de cette norme : intgrit cryptographique, horodatage certifi, traabilit des oprations et vrifiabilit indpendante.

Stratgie d'horodatage

L'horodatage suit un modle deux niveaux : hachage local continu pendant la mission, certification externe au moment de l'export.

Pendant la mission (hachage local)

Chaque fichier captur (photo, vido, audio, marqueur) reoit immdiatement un hash SHA-256 calcul localement sur l'appareil. Ce hash est stock avec les mtadonnes du fichier. Pour les enregistrements bodycam chiffrs, deux hashes sont conservs :

Note : Les horodatages locaux reposent sur l'horloge de l'appareil et n'ont pas de valeur probante en soi. Ils servent de rfrence temporelle interne, certifie ultrieurement par le jeton RFC 3161 l'export.

l'export (certification TSA)

Au moment de l'export judiciaire, un manifest est gnr listant tous les fichiers avec leurs hashes SHA-256. Le hash de ce manifest est soumis une autorit d'horodatage (TSA) qui retourne un jeton RFC 3161 sign. Ce jeton unique certifie cryptographiquement que l'ensemble du dossier existait la date indique.

Autorits d'horodatage (TSA)

🔒

Starter — RFC 3161 standard

Services TSA publics gratuits (FreeTSA, DigiCert, Sectigo). Conformes RFC 3161. Admissibles devant les tribunaux, mais la fiabilit du TSA doit tre dmontre par la partie qui s'en prvaut.

Professional — Certigna eIDAS

Certigna (Dhimyotis), TSA qualifie eIDAS et ANSSI. Les horodatages bnficient de la prsomption d'exactitude (art. 41.2 du rglement eIDAS n910/2014). Valeur probante dans les 27 tats membres de l'UE sans formalit supplmentaire.

Structure du dossier export

Le ZIP gnr est un dossier autonome et auto-vrifiable. Un tiers (magistrat, expert, avocat) peut vrifier l'intgrit de l'ensemble avec des outils standard (OpenSSL).

export_mission_<id>_<date>.zip
├── originaux/
│   ├── photos/
│   │   └── photo_<timestamp>_<hash8>.jpg
│   ├── videos/
│   │   └── video_<timestamp>_<hash8>.webm
│   ├── audio/
│   │   └── audio_<timestamp>_<hash8>.webm
│   └── donnees/
│       ├── markers.json
│       ├── tracks.gpx
│       ├── filatures.json
│       ├── notes.json
│       ├── evidence_chain.json      ← Hash chain incrémentale complète
│       ├── chain_anchors.json       ← Points d'ancrage Merkle
│       └── chain_verification.json  ← Rapport de vérification automatique
├── signatures/
│   ├── timestamp.tsr            ← Jeton RFC 3161 (binaire DER)
│   ├── timestamp_info.json      ← Mtadonnes lisibles du jeton
│   ├── tsa_certificate.der      ← Certificat du TSA (vrification indpendante)
│   ├── timestamp_audit.json     ← Journal d'audit horodatage
│   ├── manifest.sig             ← Signature Ed25519 du manifest
│   └── public_key.json          ← Cl publique Ed25519
├── manifest.json                ← Inventaire complet + hashes SHA-256
└── chain_of_custody.json        ← Chane de custody (capture → export)

Le manifest

Le manifest.json est le cur du dossier probatoire. Il contient l'inventaire exhaustif de tous les fichiers exports, chacun avec son hash SHA-256, sa taille, sa date de capture et ses mtadonnes (GPS, auteur, appareil). C'est le hash de ce manifest qui est soumis au TSA.

Champ Contenu
version Version du format (1.0)
mission Identifiant, nom de code, dates de dbut/fin
export Date d'export, identit de l'exportateur, appareil
files[] Pour chaque fichier : chemin, hash SHA-256, taille, date de capture, coordonnes GPS, auteur
integrity Hash global du manifest, nombre total de fichiers, taille totale
signatures Algorithme Ed25519, cl publique, signature du manifest
rfc3161_timestamp Jeton RFC 3161 encod base64, date certifie, identit du TSA, statut de vrification

Chane de custody

Le fichier chain_of_custody.json trace chaque vnement li aux preuves, de la capture l'export. Pour chaque fichier, trois vnements sont enregistrs :

📷

Capture

Cration du fichier sur l'appareil. Enregistre : auteur, appareil, horodatage local, coordonnes GPS, hash SHA-256 du contenu original.

🗃

Stockage

Persistance dans le stockage chiffr local (AES-256-GCM). Enregistre : mthode de stockage, statut de chiffrement, IV et salt.

📦

Export

Inclusion dans le dossier judiciaire. Enregistre : identit de l'exportateur, finalit (livrable judiciaire), nombre total de fichiers.

Hash chain incrémentale (anti-falsification)

En plus de la traçabilité capture → stockage → export, le dossier inclut une chaîne de hachage incrémentale qui enregistre en temps réel chaque action probatoire pendant la mission. Comparable à une blockchain privée, chaque entrée est liée cryptographiquement à la précédente par un HMAC-SHA256.

🔗

evidence_chain.json

Chaîne complète : chaque entrée avec son sequence, contentHash, previousHash, entryHash (HMAC), timestamp, type d'événement et ID de preuve.

🌳

chain_anchors.json

Points d'ancrage Merkle : toutes les 50 entrées ou 15 min, un Merkle root condense un segment de la chaîne. Permet la vérification par lots.

chain_verification.json

Vérification automatique : rapport d'intégrité généré à l'export (liens validés, HMAC recalculés, Merkle roots vérifiés).

🔒
Garantie anti-falsification

La chaîne de hachage est incrémentale et ne progresse que vers l'avant. Il est cryptographiquement impossible d'insérer, supprimer ou modifier une entrée sans casser la chaîne. Un expert judiciaire peut vérifier l'intégrité en recalculant séquentiellement chaque HMAC-SHA256 et chaque Merkle root.

Vrification indpendante

Le dossier export est conu pour tre vrifiable par un tiers sans accs planar. Les outils standard OpenSSL suffisent.

Vrifier le jeton RFC 3161

# Vrifier que le timestamp correspond au manifest
openssl ts -verify \
  -in signatures/timestamp.tsr \
  -data manifest.json \
  -CAfile signatures/tsa_certificate.der

# Lire le contenu du jeton
openssl ts -reply -in signatures/timestamp.tsr -text

Vrifier l'intgrit des fichiers

# Calculer le hash SHA-256 d'un fichier et comparer au manifest
sha256sum originaux/photos/photo_20250206_a1b2c3d4.jpg

# Comparer avec la valeur dans manifest.json → files[].hash_sha256

Vrifier la signature Ed25519

# La cl publique est dans signatures/public_key.json
# La signature du manifest est dans signatures/manifest.sig
# Vrifiable avec tout outil supportant Ed25519 (libsodium, openssl 3.x)
Aspect Starter Professional
Autorit d'horodatage FreeTSA / DigiCert / Sectigo Certigna (ANSSI)
Norme RFC 3161 RFC 3161 + eIDAS qualifi
Charge de la preuve L'utilisateur doit dmontrer la fiabilit du TSA Prsomption lgale d'exactitude (art. 41.2 eIDAS)
Porte gographique Dpend de la juridiction 27 tats membres UE
Chane de custody Identique : traabilit complte capture → stockage → export
Intgrit Identique : SHA-256 par fichier + signature Ed25519 du manifest + hash chain HMAC-SHA256 incrémentale avec ancrage Merkle

Deux types d'export : judiciaire vs forensique

planar propose deux exports complémentaires pour répondre à des besoins différents dans le cadre d'une procédure.

Export judiciaire (ZIP) Export forensique (JSON)
Objectif Livrable complet pour le tribunal : fichiers, métadonnées, horodatage Kit de vérification pour expert forensique : clés, chaîne, instructions
Contenu Photos, vidéos, audio, GPS, marqueurs + manifest SHA-256 + signature Ed25519 + jeton RFC 3161 Chaîne de preuves complète + clé maître HMAC + paramètres HKDF + clés publiques Ed25519
Périmètre Par mission (une mission à la fois) Global (toute la chaîne de l'utilisateur, toutes missions confondues)
Clé maître Non incluse (sécurité : empêche la falsification) Incluse (permet la vérification HMAC indépendante)
Accès Page mission → bouton Exporter Paramètres → Compte → Vérification forensique
Manipulation Partageable librement (pas de secret) Pièce à conviction (contient la clé : transmettre sous scellé judiciaire)
🔎
Usage typique

L'export judiciaire est le livrable remis au tribunal ou au client. L'export forensique est transmis séparément à un expert désigné par le juge pour qu'il puisse vérifier de manière indépendante que les preuves n'ont pas été altérées.

Vérification forensique indépendante

Pour les procédures judiciaires, un expert forensique peut vérifier l'intégrité de la chaîne de preuves de manière totalement indépendante, sans accès à planar.

Exporter le bundle de vérification

Depuis Paramètres → Compte → Vérification forensique, cliquez sur « Exporter les données de vérification ». Le fichier JSON généré contient :

🔒
Bundle autoportant — aucune information externe requise

Le fichier export contient la clé maître cryptographique et tous les paramètres nécessaires à la vérification complète de la chaîne. L'expert n'a besoin que de ce fichier JSON. Il doit être transmis comme pièce à conviction (sous scellé judiciaire).

Processus de vérification par l'expert

  1. Lire la clé maître depuis le champ keyDerivation.masterKeyHex du bundle JSON.
  2. Dériver la clé HMAC : HKDF-SHA256(ikm=masterKeyHex décodé en 32 octets, salt="evidence-chain-v1", info="hmac-key", 256 bits).
  3. Vérifier chaque entrée : HMAC-SHA256(clé, contentHash|previousHash|sequence|timestamp) == entryHash.
  4. Vérifier le chaînage : entry[n].previousHash == entry[n-1].entryHash (première : "GENESIS").
  5. Vérifier les signatures Ed25519 per-entrée avec les clés publiques fournies dans signingPublicKeys.
  6. Vérifier les horodatages RFC 3161 des ancres Merkle (si présents).

Questions fréquentes

Quel code PIN dois-je communiquer à l'expert ?

Aucun. Depuis la mise à jour de février 2026, le bundle de vérification est auto-contenu : il inclut directement la clé maître cryptographique nécessaire à la vérification. L'expert n'a besoin que du fichier JSON exporté. Ce fichier doit être transmis comme pièce à conviction (sous scellé).

Note : le code PIN de chiffrement de l'application (utilisé pour protéger vos données locales) est un code séparé de votre mot de passe de connexion. Il n'est pas nécessaire pour la vérification forensique.

Puis-je changer mon code PIN de chiffrement en cours de mission ?

Oui. La clé de la chaîne de preuves est indépendante du code PIN. Changer votre PIN re-chiffre vos données locales mais n'affecte pas l'intégrité de la chaîne de preuves. Toutes les entrées — passées et futures — restent vérifiables avec le même bundle d'export.

Script de vérification (Python)

import hmac, json, sys

bundle = json.load(open(sys.argv[1]))

# Read master key directly from bundle (no PIN needed)
master_key_hex = bundle["keyDerivation"]["masterKeyHex"]
master_key = bytes.fromhex(master_key_hex)

# Derive HMAC chain key via HKDF
import hkdf  # pip install hkdf
chain_key = hkdf.hkdf_expand(
    hkdf.hkdf_extract(b"evidence-chain-v1", master_key),
    b"hmac-key", 32
)

# Verify each entry
entries = sorted(bundle["evidenceChain"]["entries"], key=lambda e: e["sequence"])
prev_hash = "GENESIS"
ok_count = 0
for e in entries:
    expected = hmac.new(chain_key,
        f'{e["contentHash"]}|{prev_hash}|{e["sequence"]}|{e["timestamp"]}'.encode(),
        "sha256").hexdigest()
    chain_ok = e["previousHash"] == prev_hash
    hmac_ok = expected == e["entryHash"]
    ok = chain_ok and hmac_ok
    if ok: ok_count += 1
    else: print(f'FAIL seq={e["sequence"]} chain={chain_ok} hmac={hmac_ok}')
    prev_hash = e["entryHash"]

print(f"\n{ok_count}/{len(entries)} entries verified OK")

planar fournit les outils techniques de collecte et de certification de preuves numriques. La recevabilit d'une preuve dpend du contexte juridique et de l'apprciation du magistrat. Pour les procdures judiciaires, consultez un avocat spcialis.

← Scurit Sauvegarde →