Comment vérifier l’horodatage d’un commit Git
Un horodatage de commit Git est étonnamment facile à falsifier. Vous pouvez définir GIT_AUTHOR_DATE, GIT_COMMITTER_DATE, rebaser une branche ou simplement modifier les métadonnées du commit avant de pousser. Dans un litige juridique ou un audit de conformité, un journal Git ordinaire ne prouve souvent pas grand-chose.
C’est pourquoi la vérification compte plus que l’ancrage lui-même. L’ancrage place un hash de commit dans la blockchain Bitcoin. La vérification est l’étape qui vous permet, à vous, à un auditeur ou à un tribunal, de confirmer qu’un hash de commit spécifique a bien été inclus dans un bloc Bitcoin spécifique à un moment précis. Cet article se concentre sur ce flux de vérification en utilisant Timestamp GIT, une application GitHub gérée qui automatise l’ensemble du processus et vous offre des outils basés sur navigateur, des badges et une API publique.
Pourquoi la vérification est importante pour les horodatages de commit Git
Un historique Git standard vit sur des serveurs que vous ne contrôlez pas entièrement. Les plateformes d’hébergement de dépôts, les panneaux d’administration et les dépôts locaux peuvent être modifiés. Même lorsque personne n’agit de manière malveillante, les horodatages peuvent être déplacés accidentellement lors de fusions, d’écrasements ou de migrations de données.
L’ancrage cryptographique change la donne. Lorsque Timestamp GIT traite un dépôt, il ne s’appuie pas sur l’horodatage du commit Git. Il prend le hash du commit — une empreinte cryptographiquement sécurisée de l’état exact du dépôt — et inclut ce hash dans un manifeste quotidien. Le hash du manifeste est intégré dans un arbre de Merkle, et la racine de Merkle est ancrée dans un bloc Bitcoin en utilisant le protocole OpenTimestamps.
La vérification répond alors à trois questions :
- Ce hash de commit est-il présent dans le manifeste quotidien ?
- La preuve de Merkle relie-t-elle ce hash de manifeste à la racine de Merkle ancrée ?
- Cette racine de Merkle est-elle incluse dans un bloc Bitcoin confirmé ?
Si les trois vérifications réussissent, vous disposez d’une preuve mathématique que le commit existait à cette date. Si un contexte plus approfondi sur l’importance de cela pour la propriété intellectuelle logicielle vous intéresse, consultez Qu’est-ce que l’antériorité cryptographique et pourquoi est-ce important pour les logiciels ?.
Timestamp GIT masque le flux de travail brut d’OpenTimestamps. Vous n’avez pas besoin d’installer une CLI, d’exécuter des commandes d’horodatage manuelles ou de créer des transactions Bitcoin. L’application GitHub détecte les commits, les regroupe chaque nuit et écrit des fichiers de preuve standardisés dans votre dépôt.
À quoi ressemble une preuve Timestamp GIT
Une preuve Timestamp GIT n’est pas un fichier unique. C’est une petite collection d’artefacts qui permettent ensemble une vérification indépendante.
Les composants essentiels sont :
- Hash de commit : le hash SHA-1 ou SHA-256 qui identifie un commit spécifique.
- Fichier de manifeste quotidien : un fichier texte brut contenant tous les hashes de commit en attente pour un dépôt à cette date.
- Arbre de Merkle : un arbre de Merkle natif construit à partir des hashes de manifestes quotidiens de tous les dépôts.
- Reçu OpenTimestamps : un fichier
.otsqui relie cryptographiquement le hash du manifeste à un bloc Bitcoin. - Informations sur le bloc Bitcoin : hauteur du bloc, données de transaction et statut de confirmation de l’ancrage.
La preuve est écrite dans une branche d’horodatage dédiée ou un dépôt miroir, selon votre configuration. Un répertoire de preuve typique pour un jour donné pourrait ressembler à ceci :
timestamps/
2026-09-20/
manifest.txt
receipt.ots
Le reçu .ots est autonome dans le sens où n’importe qui peut le vérifier ultérieurement en utilisant uniquement les mathématiques SHA-256 et les données des blocs Bitcoin. Il n’y a aucune technologie propriétaire et aucun verrouillage. Si Timestamp GIT disparaissait demain, les fichiers de preuve existeraient toujours et resteraient vérifiables par rapport à la blockchain Bitcoin.
Comme seul le hash du commit est ancré, la preuve ne contient pas votre code source. Le flux de vérification opère sur le hash, pas sur le contenu du dépôt.
Vérification étape par étape avec les outils de Timestamp GIT
Timestamp GIT propose plusieurs chemins de vérification. Vous pouvez utiliser le tableau de bord visuel pour des vérifications rapides, télécharger des rapports pour la conformité ou interroger l’API pour l’automatisation.
Étape 1 : Ouvrir la page de statut du dépôt
Chaque dépôt connecté dispose d’une page de statut publique ou authentifiée à l’adresse :
https://timestampgit.dev/status/{user}/{repo}
Cette page affiche la date d’ancrage la plus ancienne, la longévité des preuves, la régularité quotidienne, les données de bloc et de transaction Bitcoin, ainsi qu’une carte thermique calendaire. Depuis cette même page, vous pouvez télécharger un CSV d’audit ou un certificat PDF.
Pour une vérification rapide, c’est généralement l’endroit le plus rapide pour commencer. Si le dépôt est privé, l’URL inclut un HMAC chiffré afin que seuls les spectateurs autorisés puissent y accéder.
Étape 2 : Utiliser le badge de vérification dans votre README
Après avoir connecté un dépôt, Timestamp GIT peut générer un badge de vérification intégrable. Le badge affiche le dernier statut de vérification directement dans le README, et cliquer dessus mène à la page de vérification ou au tableau de bord de statut.
Le balisage du badge est généré pour vous sur la page du dépôt connecté ou via l’API de badge. Vous ne devez pas écrire manuellement l’URL du badge ; copiez plutôt l’extrait Markdown généré par Timestamp GIT. Cela évite les erreurs avec les URL signées HMAC des dépôts privés.
Étape 3 : Inspecter la chaîne de Merkle dans le navigateur
Pour une date spécifique, ouvrez :
https://timestampgit.dev/verification/{user}/{repo}/{date}
Cette page parcourt la vérification de la chaîne de Merkle à plusieurs niveaux. Elle affiche le hash du commit, le hash du manifeste quotidien, les nœuds de Merkle intermédiaires et l’ancrage du bloc Bitcoin.
Tous les calculs s’effectuent localement dans le navigateur. Timestamp GIT ne voit pas quel hash vous vérifiez et vous n’envoyez aucun code source nulle part. La page confirme si le hash du commit appartient au manifeste et si le manifeste se connecte à la racine ancrée.
Étape 4 : Télécharger le certificat PDF ou le CSV d’audit
Pour les dossiers de conformité, les audits juridiques ou la documentation interne, Timestamp GIT fournit deux artefacts téléchargeables :
- Certificat PDF : un certificat journalier montrant la date d’ancrage et le statut de vérification.
- CSV d’audit : un registre complet de tous les commits ancrés et de leurs dates pour le dépôt.
Ils sont utiles lorsque vous devez joindre une preuve à un dépôt de dossier, envoyer une preuve à un client ou conserver un enregistrement hors ligne.
Étape 5 : Vérifier par programmation avec l’API publique
Timestamp GIT expose des points de terminaison d’API publique pour l’automatisation. Pour les dépôts publics, vous pouvez interroger les informations de statut directement avec curl.
Vérifier le dernier bloc Bitcoin ancré :
curl https://timestampgit.dev/api/statusLast/your-org/your-repo
Vérifier le nombre total de commits effectués et horodatés :
curl https://timestampgit.dev/api/statusCount/your-org/your-repo
Obtenir un résumé de statut combiné, également utilisé pour les badges Shields.io :
curl https://timestampgit.dev/api/statusSummary/your-org/your-repo
Récupérer les données complètes de la chaîne de Merkle pour une date spécifique :
curl https://timestampgit.dev/api/verify/your-org/your-repo/2026-09-20
Pour les dépôts privés, les points de terminaison nécessitent un HMAC chiffré dans l’URL. Le HMAC est généré par instance de serveur et seuls les utilisateurs autorisés peuvent accéder au statut de ces dépôts.
Interpréter les résultats de vérification et les cas particuliers
Une vérification réussie signifie que la chaîne suivante est intacte :
- Le hash du commit est présent dans le manifeste.
- Le hash du manifeste est correctement inclus dans l’arbre de Merkle.
- La racine de Merkle est ancrée dans un bloc Bitcoin via OpenTimestamps.
- Ce bloc Bitcoin est confirmé dans la blockchain.
Une fois ces conditions réunies, l’horodatage du commit est soutenu par l’immuabilité de Bitcoin.
Il y a quelques cas particuliers de timing et d’accès à comprendre.
Limite du lot quotidien. Les commits sont collectés et ancrés chaque nuit. Un commit effectué après la limite pour un jour donné apparaît dans l’ancrage du jour suivant. Si vous ne voyez pas un commit le jour attendu, vérifiez la page de vérification du jour suivant.
Délai de confirmation Bitcoin. L’ancrage a lieu une fois par jour, mais la confirmation de l’ancrage dans Bitcoin prend généralement environ 3 heures. Les fichiers de preuve sont écrits après la confirmation, donc la vérification est disponible quelques heures après le lot nocturne.
Dépôts privés. Les URL de statut et de vérification des dépôts privés utilisent des chemins signés HMAC. Si un collègue ne peut pas ouvrir la page de statut, il a probablement besoin d’accéder au lien chiffré ou au dépôt via l’application GitHub.
Vérification à divulgation nulle de connaissance. La vérification ne révèle jamais le code source. Elle prouve qu’un hash existait à ce moment-là, pas ce que le code contenait. C’est intentionnel : la preuve concerne l’existence, pas la divulgation.
Que faire si la vérification échoue ? Un échec de vérification peut signifier que le commit n’a pas été inclus dans le lot quotidien, que le fichier de preuve est incomplet ou que les données ont été altérées. Commencez par vérifier la page de statut du dépôt pour la bonne date. Si l’ancrage est manquant ou corrompu, contactez le support de Timestamp GIT.
FAQ
Comment vérifier un horodatage de commit Git avec Timestamp GIT ?
Vous pouvez vérifier un horodatage de commit en visitant la page de statut du dépôt sur Timestamp GIT, en cliquant sur le badge de vérification dans votre README ou en utilisant les points de terminaison de l’API publique. La page de vérification affiche la chaîne de Merkle et permet une vérification locale dans votre navigateur.
Puis-je vérifier un horodatage de commit sans révéler mon code source ?
Oui. Timestamp GIT utilise uniquement le hash du commit, pas le code source. La vérification est effectuée par rapport au hash et à la blockchain Bitcoin, donc votre code reste privé.
Combien de temps faut-il pour qu’un horodatage de commit soit vérifiable ?
Les horodatages sont ancrés chaque nuit, et la confirmation Bitcoin prend généralement environ 3 heures. Après cela, la preuve est disponible et vérifiable.
Que faire si la vérification échoue ?
Si la vérification échoue, cela peut indiquer que le commit n’a pas été inclus dans le lot quotidien ou que la preuve est corrompue. Consultez la page de statut du dépôt pour plus de détails, ou contactez le support de Timestamp GIT.
Conclusion : Faites confiance, mais vérifiez votre historique Git
Un hash de commit ancré dans Bitcoin n’est utile que si vous pouvez le vérifier ultérieurement. Les horodatages Git seuls sont des preuves faibles. Les preuves cryptographiques sont solides — mais seulement lorsque le chemin de vérification est clair, reproductible et indépendant.
Timestamp GIT transforme ce chemin de vérification en un flux de travail pratique. Installez l’application GitHub une fois, connectez un dépôt, et chaque commit est ancré automatiquement chaque nuit. Lorsque vous avez besoin d’une preuve, vous pouvez ouvrir le tableau de bord de statut, cliquer sur un badge, inspecter la chaîne de Merkle dans le navigateur, télécharger un certificat PDF ou appeler un point de terminaison d’API.
Pour les développeurs, les startups, les agences et les équipes de conformité, cela élimine le travail manuel sans sacrifier les garanties mathématiques de l’ancrage Bitcoin. Si votre prochaine étape est de sécuriser votre propre historique de commits, installez l’application GitHub ou consultez la page de tarification.
Articles connexes
- Horodater automatiquement les commits Git avec une application GitHub
- Qu’est-ce que l’antériorité cryptographique et pourquoi est-ce important pour les logiciels ?
- Comment prouver qu’un code existait à un moment précis (sans le révéler)