2015-01-10 4 views
5

Diciamo che in futuro SHA1 è incrinato al punto in cui è possibile creare commit dannosi per un dato ID commit. I git hanno un piano di migrazione di emergenza per modificare la loro funzione di hash senza richiedere l'aggiornamento simultaneo di client e repository?Git ha in programma di cambiare la loro funzione di hash?

La versione corrente di Git dispone di codice per riconoscere in modo intelligente diversi algoritmi di hash e fornire un buon messaggio all'utente se non lo riconosce? L'algoritmo hash è memorizzato ovunque nel repository? Aggiungeranno prefissi agli hash come $#$ in /etc/shadow per indicare un diverso algoritmo di hash?

risposta

7

Questo succede abbastanza frequentemente.

Un recent thread mostra che di recente, nel novembre 2014, questo è un cambiamento in qualche modo coinvolto:

Esiste un piano per l'aggiornamento a una funzione di hash meglio in futuro? (ad es., Se dovesse diventare un bisogno urgente.)

Quali sono i blocchi stradali per l'adozione di una funzione hash sostitutiva? Basta documentare questo sarebbe un modo per rendere possibile l'aggiornamento un giorno.

L'ostacolo maggiore è l'assunzione di SHA-1 ovunque nel codice sorgente (ad esempio assumere il nome dell'oggetto avviene sempre 20 byte). Brian ha iniziato a ripulirlo [1], ma penso che sia in fase di stallo. Quindi abbiamo bisogno di per gestire il percorso di aggiornamento per i repository SHA-1.

Se e quando gli sviluppatori Git decidono di trasferirsi da SHA-1 avranno del lavoro da fare. Al momento non sembra essere un piano chiaro, ma sembra che non ci siano grandi ostacoli tecnici.