Journaux et logs

Comment prouver que les journaux de votre serveur n’ont pas été retouchés

Vos logs disent ce qui s’est passé, mais c’est vous qui les contrôlez. Si chaque tranche est scellée au moment où elle se produit, n’importe qui peut vérifier ensuite qu’elle est restée telle quelle.

Privé. Seule l’empreinte de chaque tranche quitte votre serveur.

Vos journaux, votre parole Ils disent ce qui s’est passé, mais ils vivent dans vos systèmes et votre équipe les administre. Pour qui vous les demande, ce n’est pas suffisant.
Scellés au moment où ils se produisent Chaque tranche est enregistrée à sa clôture, avec une date ancrée sur des réseaux publics qui ne dépend pas de vous.
Seule l’empreinte sort Votre serveur calcule l’empreinte SHA-256 de chaque tranche et l’envoie par API. Les journaux restent là où ils sont.

La scène

« Nous avons besoin des journaux d’accès du 3 au 10 mars. »

Nous sommes en octobre et c’est un audit qui les demande. Les journaux, vous les avez : votre serveur consigne qui se connecte, ce qui se passe et ce qui échoue, et vous les conservez pendant des mois. Mais ils sont à vous. C’est votre système qui les génère, ils vivent sur vos disques et votre équipe les administre. Quand vous les remettez, personne n’a de raison de croire que ce sont les mêmes qu’en mars, et vous n’avez aucun moyen de le prouver. Sauf si chaque tranche a été scellée au moment où elle s’est produite, avant que quiconque ne pose la question.

Le rituel : c’est votre serveur qui le fait, toutes les quelques minutes

  • Créez une clé d’API depuis votre compte. C’est la seule chose à configurer.
  • Toutes les quelques minutes, votre serveur clôture une tranche de ses journaux : les accès, les opérations et les erreurs de cet intervalle.
  • Il calcule l’empreinte SHA-256 de la tranche et l’envoie à l’API de Sellat. Les journaux ne quittent pas votre serveur.
  • Sellat regroupe les empreintes dans un arbre de Merkle et les ancre sur Polygon et, via OpenTimestamps, sur Bitcoin. Avec le compte gratuit, les lots sont clôturés toutes les 4 heures.
  • Vous conservez chaque tranche avec sa preuve, dans votre stockage habituel.
  • Quand on vous demande certaines dates, vous remettez ces tranches et leurs preuves. Celui qui les reçoit les vérifie sans compte et sans avoir à vous faire confiance, ni à Sellat.

Ce que Sellat prouve face à un audit

Sellat prouve que chaque tranche de journaux existait à une date précise telle que vous la remettez : si une seule ligne change, l’empreinte ne correspond plus. C’est une preuve technique que n’importe qui vérifie avec des outils standard. Elle ne dit pas si ce que le serveur a enregistré est vrai, ni qui a raison. Elle dit que ces journaux n’ont pas changé depuis leur scellement. Et si quelqu’un, de l’extérieur ou de l’intérieur, touche ensuite à d’anciens journaux, cela se voit.

Le circuit complet

Des journaux d’aujourd’hui à l’audit dans quelques mois.

Un cas concret : votre serveur consigne qui se connecte, ce qui se passe et ce qui échoue. Des mois plus tard, un audit vous demande les journaux de certaines dates. Votre serveur scelle tout lui-même, toutes les quelques minutes.

  1. Toutes les quelques minutes

    Votre serveur clôture une tranche de ses journaux

    Connexions, opérations et erreurs de ces minutes. La tranche est clôturée et scellée.

  2. Aussitôt

    Seule l’empreinte sort

    Le serveur calcule l’empreinte de la tranche et l’envoie par API. Les journaux ne quittent pas votre serveur. Si vous le demandez, l’horodatage qualifié (eIDAS) s’ajoute.

  3. Des mois plus tard

    On vous demande les journaux

    Un audit, une inspection ou un client victime d’un incident veut voir ce qui s’est passé sur votre serveur à certaines dates.

  4. Le problème

    Les journaux sont les vôtres

    Ils disent ce qui s’est passé, mais c’est vous qui les contrôlez. Comment montrer que personne n’y a touché depuis ?

  5. Le jour même

    Vous remettez les tranches et leurs preuves

    Chaque tranche a été scellée au moment des faits, pas au moment de la demande. Celui qui la reçoit vérifie qu’elle n’a pas changé, sans avoir à vous faire confiance, ni à Sellat.

Sellat ne dit pas si ce que le serveur a consigné est vrai, ni qui a raison. Il apporte la preuve que ces journaux existaient à cette date tels que vous les remettez. Et si quelqu’un, de l’extérieur ou de l’intérieur, touche plus tard à d’anciens journaux, cela se voit.

Voir l’API

Ce que vous conservez, et ce que vous remettez

De chaque tranche, vous conservez la tranche elle-même et sa preuve. L’API vous fournit aussi son dossier de preuve : la preuve, le certificat, les références publiques sur Polygon et Bitcoin et les instructions pour tout vérifier. C’est ce que vous remettez avec les journaux. Celui qui le reçoit calcule l’empreinte de la tranche avec sha256sum et la compare à la preuve avec sellat-verify, le vérificateur open source de Sellat.

Un log sur votre serveur peut être modifié. Un log scellé, s’il change, ça se voit.

Faire tourner, compresser et archiver les journaux est normal, et quiconque a accès au serveur peut les modifier. C’est pourquoi, face à un tiers, vos logs valent ce que vaut votre parole. Une empreinte ancrée sur des réseaux publics à la clôture de la tranche, personne ne la contrôle : ni vous, ni votre équipe, ni Sellat.

Le paquet vu de l'intérieur

Voilà ce que vous remettez quand on vous demande les journaux.

Pour chaque tranche scellée, Sellat prépare un ZIP vérifiable avec des outils qui ne sont pas les nôtres. C’est la vraie liste des fichiers : elle vient du même module qui construit le paquet.

Ouvrir le dossier Fermer le dossier
  • original/<archivo> Avec conservation

    La tranche du journal, octet par octet

    Seulement si vous activez la conservation : par API, seule l’empreinte est envoyée. Sans conservation, vous gardez le journal vous-même, et la preuve fonctionne de la même façon avec votre copie.

  • certificado-<id>.pdf Toujours

    Le certificat lisible

    Le PDF que vous montrez à une personne ou joignez à un dossier. Il est informatif : ce qui se vérifie vraiment, c’est le journal, pas le PDF.

  • proof.json Une fois le lot ancré

    La preuve portable

    L’empreinte de la tranche, son chemin de Merkle, la racine du lot et la transaction publique qui l’enregistre. C’est la pièce qui permet de tout vérifier sans Sellat.

  • sello-cualificado-<id>.tsr Avec horodatage qualifié

    L'horodatage qualifié

    La réponse RFC 3161 de l'autorité d'horodatage qualifiée, telle qu'elle a été émise. C'est le fichier qui fixe la date au sens d'eIDAS.

  • autoridad-sellado.pem Avec horodatage qualifié

    Qui a signé l'horodatage

    Le certificat de signature de cette autorité, avec son SHA-256 inscrit dans le README. Il est inclus pour que la vérification fonctionne hors ligne, sans rien aller chercher.

  • anclaje-bitcoin.ots Une fois le lot ancré

    L'ancrage dans Bitcoin

    La preuve OpenTimestamps de la racine du lot. Elle peut encore attendre un bloc : le fichier est valide et la personne qui le reçoit peut le mettre à jour elle-même.

  • LEEME.txt / README.txt Toujours

    Les instructions, en deux langues

    Ce qu'est chaque fichier, ce qu'il prouve et ce qu'il ne prouve pas, et les commandes exactes de vérification. En espagnol et en anglais, pour qu'un expert ou un avocat n'ait rien à vous demander.

L'horodatage est signé par la FNMT-RCM, pas par Sellat.

Ce n'est pas Sellat qui atteste de l'heure. L'horodatage qualifié est émis par une autorité d'horodatage qualifiée de la FNMT-RCM, et son certificat de signature voyage dans votre paquet. Nous sommes l'intermédiaire qui relie votre empreinte à cet horodatage et vous le remet dans un dossier ordonné.

Cela se vérifie sans nous et sans votre système.

Celui qui le reçoit vérifie la date et l’intégrité du journal avec des outils standard, sur sa propre machine. Cela ne dépend ni de votre base de données ni de l’existence de Sellat.

Le paquet montre que ce journal existait à cette date et n’a pas été modifié. Il ne montre pas que son contenu est vrai, ni que le serveur a tout consigné.

La tranche est scellée au moment où elle se produit. Pas le jour où on vous la demande.

Créez votre clé d’API depuis votre compte et scellez la première tranche dès aujourd’hui. La documentation contient l’appel complet.

Voir l’API

Questions fréquentes

Avant que vous ne le demandiez.

Mes journaux quittent-ils mon serveur ?

Non. Votre système calcule l’empreinte SHA-256 de chaque tranche et n’envoie que cette empreinte. Les journaux restent sur votre serveur, et sur les réseaux publics n’apparaît que la racine du lot, qui ne révèle rien de leur contenu.

À quelle fréquence sceller ?

C’est vous qui décidez : toutes les quelques minutes, toutes les heures ou tous les jours. Plus la tranche est courte, plus la date de chaque ligne est précise et moins vous avez à remettre quand on vous demande des dates précises.

Comment celui qui reçoit les journaux les vérifie-t-il ?

Avec deux commandes : sha256sum calcule l’empreinte de la tranche, et sellat-verify, le vérificateur open source de Sellat, la compare à la preuve et aux références publiques. Sans compte, et sans avoir à vous faire confiance, ni à Sellat.

Et l’horodatage qualifié eIDAS ?

Si vous le demandez dans le même appel d’API, l’empreinte de la tranche reçoit en plus l’horodatage qualifié, à partir des horodatages de votre compte. Il bénéficie d’une présomption légale d’exactitude de la date et de l’heure et d’intégrité des données dans toute l’Union européenne (art. 41, paragraphe 2, du règlement (UE) 910/2014).

Sellat dit-il si ce que mon serveur a enregistré est vrai ?

Non. Sellat ne juge ni le contenu ni qui a raison. Il établit que ces journaux existaient à cette date tels que vous les remettez, et qu’ils n’ont pas changé depuis.

Combien ça coûte ?

Le compte gratuit inclut des preuves quotidiennes par API, ancrées par lots toutes les 4 heures. Les limites de chaque compte sont sur la page des tarifs.

Intégrité des logs et des journaux d’audit avec horodatage

Prouver l’intégrité de logs face à un audit, une inspection ou un client, c’est prouver qu’ils n’ont pas été modifiés depuis leur écriture. Les journaux sont générés et conservés par le système lui-même, leur valeur de preuve dépend donc de quelque chose d’extérieur : une date que ne contrôle pas celui qui les garde. Détail technique, si vous en avez besoin : votre système calcule l’empreinte SHA-256 de chaque tranche et l’envoie à l’API v2 de Sellat. Sellat la regroupe dans un arbre de Merkle et l’ancre sur Polygon et, via OpenTimestamps, sur Bitcoin. Chaque preuve a son dossier de preuve et se vérifie avec sha256sum et sellat-verify, sans compte et sans faire confiance à Sellat. Les journaux ne quittent pas votre serveur.