Est-ce une bonne idée que GPG signe de vieux commits git?


9

Je viens de réaliser que j'avais oublié de dire à git d'utiliser ma clé GPG. J'avais fait un certain nombre de commits sans les signer. Dois-je revenir et les signer?

Je ne veux pas dire si je devrais ou non signer des tags, mais j'ai décidé de signer eux-mêmes. Je ne pense pas que je puisse penser à une raison de ne pas le faire, à part avoir une histoire corrompue de git qui peut ou non être ce que j'ai écrit. Je fais confiance à GitHub pour ne pas jouer avec mon histoire git et je suis le seul auteur d'environ 99% de mes projets, donc étant donné que dois-je le faire?

J'ai trouvé cette réponse , donc je sais maintenant que c'est possible, mais philosophiquement, le devrais-je?

Réponses:


12

Si les validations ont déjà été publiées, vous ne devez pas les réécrire à quelque fin que ce soit (sauf pour supprimer les fuites de données accidentelles), car cela modifierait leurs ID de validation. (N'oubliez pas que l'ID de chaque commit est basé sur les hachages SHA-1 de son contenu et de son commit parent.)

Cela signifie que cela nécessiterait la réécriture (et la démission) de toutes les validations suivantes, et causerait des problèmes à quiconque ayant déjà récupéré l'une de ces validations.

Mais pour la même raison, vous n'avez pas besoin de signer explicitement ces anciens commits, du moins pas à des fins d'intégrité des données. Étant donné que chaque commit contient des identifiants SHA-1 de ses parents, la vérification de n'importe quel commit vérifiera également implicitement l' intégralité de son historique via la chaîne de hachage. Peu importe que la chaîne soit un peu plus longue ou plus courte.

D'un autre côté, si vous ne faites pas confiance à SHA-1 pour la sécurité, alors vous devriez envisager de valider la signature entièrement inutile, car le contenu du fichier de validation est également référencé par les hachages SHA-1. La seule chose que vous signez directement (et non un hachage) est le message de validation.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.