Qu’est-ce que l’horodatage cryptographique et comment protège-t-il votre code ?
Demandez à une salle de développeurs « quand avez-vous écrit ce code ? » et vous obtiendrez généralement une capture d’écran du journal Git. Demandez à un avocat si cette capture d’écran résiste à un litige sérieux, et la réponse est moins confortable. L’horodatage cryptographique pour le code existe pour combler cette lacune : c’est un processus qui prouve qu’un hash de commit Git spécifique existait à un moment précis, en utilisant les mathématiques et une blockchain publique plutôt qu’une horloge de serveur ou des métadonnées modifiables.
Cet article explique ce qu’est l’horodatage cryptographique pour le code, comment les éléments s’articulent entre eux, et pourquoi une application GitHub gérée est la manière pratique de l’utiliser.
Que signifie réellement « l’horodatage cryptographique pour le code » ?
L’horodatage cryptographique est le processus qui consiste à prouver mathématiquement qu’une donnée spécifique existait à un certain moment. Pour le code, cette « donnée » est généralement un hash de commit Git : une empreinte à sens unique de longueur fixe qui représente l’état exact d’un dépôt au moment d’un commit.
Un horodatage normal n’est qu’une affirmation. Votre système de fichiers enregistre une date de modification. Git enregistre une date d’auteur et une date de commit. Ces valeurs sont utiles au quotidien, mais ce ne sont pas des preuves. Elles peuvent être modifiées localement, réécrites avec un force push, ou définies à n’importe quelle valeur par quelqu’un qui contrôle la machine.
Un horodatage cryptographique est différent. Il lie le hash de commit à un registre public et immuable : la blockchain Bitcoin. Une fois cet ancrage confirmé, l’affirmation « ce hash existait avant ce bloc » devient mathématiquement vérifiable par n’importe qui, n’importe où, sans avoir à faire confiance à la personne qui a créé l’horodatage.
En pratique, l’horodatage cryptographique pour le code répond à une question précise avec une grande confiance :
Ce commit exact existait-il à cette date ou avant ?
Cette question compte plus que ce que beaucoup de développeurs imaginent.
Une analogie simple : le notaire et le journal
Imaginez un notaire avec une procédure inhabituelle.
Vous apportez un document, mais le notaire ne le lit pas et ne le copie pas. Au lieu de cela, elle fait passer le document par une fonction de hachage cryptographique et obtient une courte empreinte. Puis elle publie cette empreinte dans un journal à large diffusion. Le journal est imprimé, archivé, et impossible à modifier discrètement après publication.
Plus tard, si quelqu’un prétend que vous avez écrit le document après une certaine date, vous pouvez montrer le journal. L’empreinte était publique ce jour-là, et seul un document produisant exactement cette empreinte aurait pu en être la source. Vous n’avez pas eu besoin de révéler le document pour prouver son existence.
Transposons maintenant cette analogie au code :
- Le document est votre commit Git.
- L’empreinte est le hash de commit.
- Le journal est la blockchain Bitcoin.
- Le notaire est Timestamp GIT, qui ne voit jamais votre code source réel.
L’important est que le notaire ne manipule que l’empreinte. Votre code reste privé.
Comment fonctionne l’horodatage cryptographique sous le capot
L’idée est simple, mais les mécanismes sont précis.
Étape 1 : Empreinte
Lorsque vous committez du code, Git génère un hash unique représentant l’état complet du dépôt à ce moment-là. Selon la configuration du dépôt, ce hash est généralement SHA-1 ou SHA-256.
Vous pouvez voir le hash du dernier commit localement avec :
git rev-parse HEAD
Cette sortie d’une ligne n’est pas qu’un identifiant. C’est une empreinte cryptographiquement sécurisée de votre travail à cet instant. Si quoi que ce soit dans l’historique du dépôt change plus tard — ne serait-ce qu’un octet — le hash change.
Étape 2 : Ancrage
Un seul hash de commit ne suffit pas. Pour prouver l’existence, le hash doit être intégré dans un registre public qui ne peut pas être réécrit.
Timestamp GIT collecte les hashes de commit des dépôts surveillés, les regroupe en lots quotidiens, et construit un arbre de Merkle à partir de ces hashes. La racine de Merkle est ensuite ancrée dans la blockchain Bitcoin en utilisant le protocole OpenTimestamps.
Cet ancrage fige l’existence du lot dans le temps. La preuve fait désormais partie du registre public de Bitcoin, enregistrée dans un bloc spécifique.
Étape 3 : Preuve
Après la confirmation de la transaction Bitcoin, vous recevez un fichier de reçu .ots immuable. Ce reçu est la preuve cryptographique que vous pouvez montrer à un avocat, un auditeur ou un tribunal.
La propriété clé est l’indépendance. La vérification repose uniquement sur SHA-256 et les données des blocs Bitcoin. Vous n’avez pas besoin de faire confiance à Timestamp GIT, à une base de données privée, ou à un système propriétaire. Même si l’entreprise disparaît, la preuve reste vérifiable contre la blockchain Bitcoin.
Ce processus est entièrement automatisé par Timestamp GIT :
- Chaque commit est détecté automatiquement.
- Les hashes sont mis en file d’attente pendant la journée.
- Un worker nocturne les regroupe, construit l’arbre de Merkle, et ancre la racine dans Bitcoin.
- Le manifeste et les reçus
.otssont renvoyés vers une branche dédiée ou un dépôt fantôme.
La confirmation Bitcoin prend normalement quelques heures, donc la livraison de la preuve n’est pas instantanée. Mais le résultat est un ancrage immuable, pas une entrée de journal modifiable.
La partie zero-knowledge est centrale : seuls les hashes de commit sont traités. Votre code source n’est jamais lu, copié ou stocké.
Pourquoi c’est important pour les développeurs et la conformité
L’horodatage cryptographique pour le code n’est pas une métrique de vanité. Cela change ce que vous pouvez prouver dans de vrais litiges.
Protection contre les trolls de brevets
Les trolls de brevets déposent souvent des brevets larges sur des technologies courantes, puis exigent des paiements d’entreprises qui ont implémenté la même idée plus tôt. Si vous pouvez montrer que votre commit existait avant leur date de dépôt, vous disposez d’une preuve solide d’antériorité.
Cette preuve est bien plus forte qu’un historique Git interne, car un journal interne peut être écarté comme étant intéressé. Une preuve ancrée dans Bitcoin ne peut pas être antidatée.
Résoudre les litiges de paternité et de livraison
Lorsqu’un employé part ou qu’un contractant prétend ne pas avoir été payé pour un travail livré à une date précise, la question est souvent : quand cette fonctionnalité a-t-elle réellement existé ?
Un horodatage immuable vous donne une réponse mathématiquement vérifiable. Ce n’est pas un argument « parole contre parole ». Le hash de commit existait avant un bloc Bitcoin spécifique, ou non.
Se défendre contre les allégations de « salle blanche »
Un concurrent peut prétendre avoir développé indépendamment une fonctionnalité similaire. Si votre implémentation a été ancrée 18 mois plus tôt, cette chronologie devient difficile à contester. La preuve crée une frontière factuelle que les journaux internes seuls ne peuvent pas fournir.
Conformité et préparation aux audits
Pour les équipes qui doivent démontrer leur activité de développement à des auditeurs, des investisseurs ou des conseillers juridiques, les horodatages cryptographiques fournissent des preuves prêtes pour le tribunal. Timestamp GIT fournit également des tableaux de bord publics, des CSV d’audit téléchargeables et des certificats PDF.
Idées reçues courantes
- Ce n’est pas un enregistrement de droit d’auteur. Cela prouve l’existence à un moment donné, pas la propriété en soi.
- Cela ne révèle pas votre code. Seul le hash de commit est ancré.
- Ce n’est pas un remplacement des brevets. C’est un outil complémentaire qui renforce la protection de l’antériorité et des secrets commerciaux.
- Ce n’est pas la même chose que les dates de commit Git. Les dates Git peuvent être modifiées ; les hashes ancrés ne le peuvent pas.
Comment Timestamp GIT rend cela sans effort
Faire de l’horodatage cryptographique à la main est possible, mais cela signifie coordonner manuellement OpenTimestamps, les transactions Bitcoin, les fichiers de preuve et la vérification. Timestamp GIT élimine entièrement ce travail.
Timestamp GIT est un SaaS géré et une application GitHub. Vous installez l’application une fois, sélectionnez les dépôts que vous souhaitez surveiller, et le système s’occupe du reste. Chaque commit est détecté automatiquement, et les hashes sont ancrés chaque nuit dans Bitcoin.
Pas d’outils CLI. Pas d’étapes manuelles.
Une fois qu’un dépôt est connecté, vous obtenez :
- Ancrage nocturne automatique des hashes de commit dans Bitcoin.
- Badges de vérification pour votre README qui affichent le statut publiquement.
- Tableaux de bord publics avec la date d’ancrage la plus ancienne, la régularité quotidienne, les données des blocs Bitcoin et un calendrier en heatmap.
- Téléchargements CSV d’audit pour une revue complète du registre.
- Certificats PDF pour une date spécifique.
Pour les dépôts publics, les informations de statut sont disponibles via des points d’accès API tels que :
curl https://timestampgit.dev/api/statusLast/acme/widget-service
Pour les dépôts privés, Timestamp GIT ajoute un HMAC chiffré aux URL de vérification afin que seuls les utilisateurs autorisés puissent voir le statut.
Il existe deux modes de déploiement principaux :
- Mode Standard (GitHub App) : L’application GitHub lit uniquement le hash du commit HEAD des dépôts surveillés et écrit les fichiers de preuve dans une branche dédiée ou un dépôt fantôme.
- Mode Enterprise ZK : Une GitHub Action de 12 lignes s’exécute sur votre infrastructure et envoie uniquement le hash de commit à l’API Timestamp GIT. Votre code source ne quitte jamais votre environnement.
Pour les environnements air-gapped ou auto-hébergés, Timestamp GIT est également disponible sous forme d’image Docker. Une configuration Compose de base ressemble à ceci :
services:
timestampgit:
image: rue1401/timestampgit:prod
ports:
- "8080:8080"
volumes:
- ./data:/app/data
restart: unless-stopped
valkey:
image: valkey/valkey:8
restart: unless-stopped
Au premier lancement, un assistant de configuration vous guide pour connecter votre application GitHub et configurer l’instance.
La tarification est simple : Open Source est gratuit pour les dépôts publics, Pro Agency est à 49 $/mois pour les dépôts privés, et Enterprise ZK est à 199 $/mois avec le support des GitHub Actions. Consultez la page de tarification pour plus de détails.
Si vous hésitez entre un service géré et OpenTimestamps brut, consultez Timestamp GIT vs OpenTimestamps : géré vs DIY.
FAQ
Q : L’horodatage cryptographique révèle-t-il mon code source ?
R : Non. Timestamp GIT traite uniquement le hash de commit Git, qui est une empreinte cryptographique à sens unique. Votre code source n’est jamais lu, copié ou stocké.
Q : L’horodatage est-il reconnu légalement ?
R : Les horodatages cryptographiques ancrés dans une blockchain publique comme Bitcoin sont de plus en plus acceptés comme preuves dans les procédures judiciaires. Ils fournissent une preuve d’existence mathématiquement vérifiable à un moment précis, qui peut être présentée aux tribunaux et aux auditeurs.
Q : Que se passe-t-il si Timestamp GIT fait faillite ? Puis-je encore vérifier mes horodatages ?
R : Oui. La preuve repose sur des standards ouverts et la blockchain Bitcoin. Vous pouvez vérifier vos fichiers de reçu .ots indépendamment en utilisant les outils de vérification OpenTimestamps standard, même si Timestamp GIT n’existe plus.
Q : En quoi est-ce différent de simplement utiliser la date de commit de Git ?
R : Les dates de commit Git peuvent être facilement modifiées ou falsifiées car elles dépendent de l’horloge système locale et peuvent être réécrites dans l’historique. L’horodatage cryptographique ancre le hash de commit dans une blockchain publique immuable, ce qui rend impossible l’antidatage ou la falsification.
Conclusion
L’horodatage cryptographique pour le code est une manière de transformer un commit Git en preuve d’existence vérifiable. Le hash de commit est l’empreinte ; Bitcoin est le registre public ; le reçu .ots est la preuve.
Vous n’avez pas besoin d’apprendre OpenTimestamps, de gérer des transactions Bitcoin ou de construire votre propre pipeline de preuves. Timestamp GIT automatise tout le processus via une application GitHub, ajoute des badges de vérification et des tableaux de bord, et garde votre code source privé.
Si vous voulez une preuve immuable que votre code existait à une date précise, installez Timestamp GIT et connectez votre premier dépôt.
Articles connexes
- Timestamp GIT vs OpenTimestamps : géré vs DIY
- Automatiser l’horodatage des commits Git avec une application GitHub
- Comment prouver que votre code existait à une date précise (sans le révéler)