Czy dobrym pomysłem jest podpisywanie przez GPG starych poleceń git?

9

Właśnie zdałem sobie sprawę, że zapomniałem powiedzieć gitowi, aby używał mojego klucza GPG. Zrobiłem szereg zobowiązań bez ich podpisywania. Czy powinienem wrócić i podpisać je?

Nie mówię o tym, czy powinienem podpisywać tagi, ale zdecydowałem się podpisać same zobowiązania. Nie sądzę, żebym wymyślił jakiś powód, aby tego nie robić, oprócz zepsutej historii gitów, która może, ale nie musi, być tym, co napisałem. Ufam GitHubowi, że nie zadziera z moją historią gita i jestem jedynym autorem około 99% moich projektów, więc biorąc to pod uwagę, czy powinienem to zrobić?

Znalazłem tę odpowiedź , więc wiem, że jest to możliwe, ale filozoficznie rzecz biorąc, czy powinienem?

Alexis Evelyn
źródło

Odpowiedzi:

12

Jeśli zatwierdzenia zostały już opublikowane, nie należy ich ponownie zapisywać w żadnym celu (oprócz usuwania przypadkowych wycieków danych), ponieważ spowodowałoby to zmianę ich identyfikatorów zatwierdzeń. (Pamiętaj, że identyfikator każdego zatwierdzenia jest oparty na skrótach SHA-1 jego zawartości i zatwierdzenia nadrzędnego).

Oznacza to, że wymagałoby przepisania (i zrezygnowania) wszystkich kolejnych zatwierdzeń i spowodowałoby kłopoty dla każdego, kto już pobrał jakiekolwiek z tych zatwierdzeń.

Ale z tego samego powodu nie trzeba jawnie podpisywać tych starych zatwierdzeń, przynajmniej nie dla celów integralności danych. Ponieważ każde zatwierdzenie zawiera identyfikatory swoich rodziców oparte na SHA-1, weryfikacja każdego pojedynczego zatwierdzenia będzie również domyślnie weryfikować całą jego historię za pomocą łańcucha skrótów. Nie ma znaczenia, że ​​łańcuch jest nieco dłuższy lub krótszy.

Z drugiej strony, jeśli nie ufasz SHA-1 pod względem bezpieczeństwa, powinieneś rozważyć podpisanie zatwierdzenia całkowicie bezużyteczne, ponieważ zawartość pliku zatwierdzeń jest również określana przez skróty SHA-1. Jedyną rzeczą, którą podpisujesz bezpośrednio (a nie jej skrót) jest komunikat zatwierdzenia.

użytkownik1686
źródło