Skip to main content
  • Envoi du hash à une TSA (cout ?)
  • pdf pour signature
  • Signature : une table dédiée, un enregistrement par signature.
  • Données capturées :
    • PIN utilisé pour accéder à l’intervention : planifiée → PIN reçu par email ; non planifiée → PIN de l’établissement.
    • Nom et prénom du prestataire en charge.
    • Planifiée : société et/ou email du prestataire.
    • Non planifiée : utilisateur Kare qui a affiché le QR code (pas de société/email prestataire dans ce cas).
    • timestamp serveur
Lors de la signature, on va demander un OTP via e-mail afin de s’assurer de la personne.
Pourquoi pas un hash de la signature image pour prouver que l’on ai bien la même image de stocké.

signature d’intervention KARE (joco)

À la signature (sur tablette, côté intervenant)
  1. Le client signe sur un canvas, capture du tracé vectoriel (points + timestamps) et des métadonnées : nom et fonction du signataire, ID intervenant, ID intervention, établissement, date/heure, IP, appareil
  2. Affichage d’une mention de consentement avant signature (“En signant, je valide la réalisation de l’intervention…”)
Côté serveur (à la réception)
3. Génération du PDF récapitulatif d’intervention avec le tracé de signature incrusté
4. Calcul du SHA-256 du PDF
5. Envoi du hash à une TSA (RFC 3161), récupération du jeton d’horodatage, idéalement embarqué directement dans le PDF via un scellement PAdES avec certificat de cachet AKORD
6. Stockage du PDF (et du jeton si séparé) dans un bucket Scaleway Object Storage avec object lock (WORM) et versioning
En base Postgres
7. Une table signatures append-only (trigger bloquant UPDATE/DELETE) avec : signature_id, intervention_id, signer_name, signer_role, signed_at, document_hash, storage_key, timestamp_token_ref, ip, user_agent, plus le tracé vectoriel brut en JSON comme donnée source
Règles de gestion
8. Mode hors ligne géré : la signature est capturée localement, l’horodatage se fait à la resynchro
9. Rétention longue, pas de purge automatique sur ces données

Informations

PKCS#7, c’est un format, pas un niveau

Ce que tu as entendu s’appelle PKCS#7, devenu CMS (Cryptographic Message Syntax). C’est une enveloppe cryptographique qui contient la signature, le certificat du signataire et éventuellement le document. En Europe, on utilise plutôt ses déclinaisons standardisées pour l’eIDAS : CAdES (basé sur CMS), XAdES (XML) et surtout PAdES (signature intégrée dans un PDF). Pour un rapport d’intervention GMAO, PAdES est le choix naturel : le PDF signé est autoportant, vérifiable avec Adobe Reader, et archivable tel quel. Signature simple (SES) : signature tracée au doigt sur tablette, case cochée, code SMS. Juridiquement admissible en France (art. 1367 du Code civil) mais en cas de litige, c’est à toi de prouver l’identité du signataire et l’intégrité du document. C’est ce qu’utilisent Chronopost, les livreurs, et la plupart des outils de maintenance terrain. Signature avancée (AES) : liée de manière univoque au signataire, identifié, sous son contrôle exclusif, avec détection de toute modification ultérieure. Nécessite en pratique un certificat électronique et une vérification d’identité. Signature qualifiée (QES) : niveau avancé + certificat qualifié + dispositif qualifié (QSCD). Équivalente à la signature manuscrite avec présomption de fiabilité. Réservée aux actes à fort enjeu (actes notariés, certains marchés publics).

Ce qui compte vraiment : le dossier de preuve

La valeur juridique d’une signature simple repose sur ce que tu peux prouver a posteriori. Concrètement, à chaque signature tu dois constituer :
  1. Le document signé, idéalement un PDF du rapport d’intervention avec le tracé de signature incrusté
  2. L’empreinte du document (SHA-256) calculée au moment de la signature
  3. Un horodatage fiable, idéalement un jeton RFC 3161 délivré par une autorité d’horodatage (TSA), qui prouve que le document existait sous cette forme à cet instant. Certigna ou Universign proposent ça, il existe aussi des TSA gratuites pour du non qualifié
  4. Le contexte : identité déclarée du signataire (nom, fonction, éventuellement email/téléphone), identifiant de l’intervenant, établissement, ID d’intervention, IP, user-agent, appareil, géolocalisation si pertinente
  5. Le consentement : la mention affichée au signataire (“En signant, je reconnais avoir réalisé de l’intervention…”)