Timestampr

Timestampr est une autorité d’horodatage (TSA) selon le RFC 3161.

Preuve d’intégrité et d’antériorité : une donnée dans un état donné, figée à un instant. Aucun fichier n’est confié à Timestampr.

Fonctionnalités

L’API (HTTP)

Ce document présente l’API d’horodatage telle qu’exposée sur l’instance publique : c’est un bac à sable (sandbox), gratuit, pour essayer le format et le fil de requête. L’inventaire des chemins est dans le tableau. Contrat, erreurs, codes, tailles : voir OpenAPI.

Base URL publique (HTTPS) : https://api.timestampr.bluemossa.com

Chemin Rôle Requête → réponse
POST /tsa Horodatage (TimeStampReq → TimeStampResp) Binaire DER, en-têtes TSP. Statut d’émission : à lire dans le DER, pas seulement le code HTTP.
GET /tsa/certificate Certificat TSA (confiance) → PEM
GET /tsa/info Politique, empreintes, version → JSON · texte de la politique
GET /health Dispo, file, NTP, n° de série → JSON
GET /openapi.yaml Contrat OpenAPI → YAML (HTTPS, compatible Swagger UI)

Fonctionnement

Résumé : fichier → .tsq (requête) → POST /tsa.tsr (jeton) → vérif. avec le certificat. Corps binaire (DER).

  1. Hash en amont

    Donnée (fichier, binaire, etc.) : d’abord, le hachage côté local pour obtenir l’empreinte ; c’est ce résultat qui sert d’engagement pour la suite. La donnée d’origine ne circule pas vers la TSA, seul ce hash sert d’entrée.

  2. Demande d’horodatage

    Cette empreinte est embarquée dans une requête d’horodatage (protocole RFC 3161, en pratique un fichier .tsq produit côté local, p. ex. avec openssl ou l’équivalent) et envoyée à l’autorité pour qu’elle émette un jeton à l’instant donné par son horloge.

  3. Jeton et signature

    La TSA renvoie un jeton d’horodatage (fichier .tsr côté usage courant) : signé par l’autorité, il lie l’empreinte à un moment (ancre) et atteste qu’elle a bien produit ce message. C’est ce couple intégrité (via l’empreinte) + ancrage temporel (via l’instant signé) qui forme la preuve dans le modèle retenu.

  4. Vérification

    À partir du .tsq d’origine, du .tsr reçu, du certificat de l’autorité et d’un outil de contrôle : contrôle de la signature du jeton, de la cohérence empreinte / instant, et raccord à la donnée en recalculant l’empreinte en local. Le RFC 3161 et l’OpenAPI décrivent l’intégration (messages, champs) ; l’exemple OpenSSL + curl plus bas montre l’enchaînement concret.

Exemple (OpenSSL + curl)

Hôte de l’API : api.timestampr.bluemossa.com (HTTPS).

Fichier + requête .tsqecho "mes données" > document.txt
openssl ts -query -data document.txt -sha256 -cert -out request.tsq
POST (réponse en .tsr)curl -sS -X POST https://api.timestampr.bluemossa.com/tsa \
  -H "Content-Type: application/timestamp-query" \
  --data-binary @request.tsq -o response.tsr
Certificat TSA (PEM)curl -sS -o tsa-leaf.pem https://api.timestampr.bluemossa.com/tsa/certificate
Vérificationopenssl ts -verify -in response.tsr -queryfile request.tsq \
  -CAfile tsa-leaf.pem -untrusted tsa-leaf.pem

Intégration

Instance d’essai (sandbox), accès gratuit, sans engagement : l’API hébergée ici sert à essayer l’horodatage (messages RFC 3161, enchaînement avec l’outillage standard). Ce n’est pas un horodatage électronique qualifié (eIDAS). C’est gratuit ; en contrepartie, aucune garantie contractuelle de disponibilité (pas de SLA) et aucun support d’assistance structuré. Il ne s’agit pas d’un service d’exploitation de niveau production ; en particulier, le référentiel de numéros de série peut être réinitialisé lors d’un redéploiement sans persistance de la base de données côté service : ne reposez pas sur cette instance pour des preuves à long terme. Pour un usage ou une offre de niveau production : Intégration (contact, licence).

Pour un déploiement en production (on-prem, brique produit, continuité) ou la version produit / une offre encadrée, contacter l’auteur : issues GitHub, et si besoin courriel (devis ou accord au cas par cas).

Licence (BSL 1.1) : le fichier de licence fixe les droits (notamment non production par défaut avec les paramètres actuels) et l’exploitation en production au titre de la BSL ou d’une licence commerciale auprès de l’auteur, distincte d’une licence d’exploitation / produit pour votre déploiement.