Linus Torvalds om fiks af SHA-1 i Git: Kæmpe patch som ikke løser problemet

Flere forsøger at rette op på det potentielle problem, der kan være med SHA-1-kollisioner i versionsstyringsprogrammet Git, men Linus Torvalds' bud på en patch blev for omfattende.

Udviklerne af versionsstyringsprogrammet Git er enige om, at det er en god idé at gøre programmet mindre afhængig af SHA-1 hashalgoritmen, men hvordan det skal gøres har vist sig ikke at være helt enkelt.

SHA-1 er kommet i søgelyset, fordi forskere fra blandt andet Google for nylig demonstrerede, at det i særlige tilfælde var muligt at skabe en ondsindet kollision mellem hashværdier. Det vil sige, at det var muligt at skabe et nyt dokument, som gav samme SHA-1-hashværdi, som et bestemt eksisterende dokument.

Læs også: Google efter 6.500 CPU-år: Nu er kollisioner med SHA-1 virkelighed

Git benytter SHA-1-hashværdier til at holde styr på de forskellige versioner af de filer, der ligger i et Git-repository. Hvis det viser sig muligt at udføre et tilsvarende angreb mod et Git-repository, så ville man potentielt kunne introducere kompromitteret kode i et open source-projekt.

Det er endnu kun en teoretisk mulighed, da Google-demonstrationen af SHA-1-sårbarheden gjaldt for særlige tilfælde og udnyttede, at en PDF-fil kan få tilføjet indhold, som ikke vises, men blot er med til at påvirke hashværdien.

Læs også: Linus Torvalds: Himlen falder ikke ned på Git trods angreb mod hashfunktionen SHA-1

Alligevel arbejder udviklerne bag Git altså på at fikse problemet, men det har vist sig ikke at være helt enkelt. SHA-1 er nemlig dybt integreret i Git, og der er flere steder, hvor der ligefrem er fast defineret bestemte størrelser på hashes.

Linus Torvalds, som er ophavsmanden bag den oprindelige version af Git, har forsøgt sig med at skrive en patch, som skulle fjerne afhængigheden af SHA-1 og gøre Git i stand til at bruge andre hashalgoritmer. Men det viste sig ifølge hans patch-noter at være en smertefuld proces.

Linus Torvalds endte med en patch, som ville lave 4174 tilføjelser og 4080 sletninger fordelt over 216 filer. Det betegner Linus Torvalds selv som 'pretty nasty', om end der ikke var alvorlige konflikter med at flette patchen ind med den nuværende Git-kode.

Til gengæld ville det ikke rigtigt løse alle problemerne, og mange af tilføjelserne var blot kommentarer i koden om steder, der skulle fikses.

En mere ideel tilgang ville være at fikse Git i mindre bidder. Det måtte Linus Torvalds opgive, men flere andre udviklere har ifølge Git-holdets rapport fra februar forsøgt at skrue kode sammen, som i det mindste kan gøre Git i stand til at opdage et forsøg på at fremprovokere en hash-kollision.

Samtidig er der en plan under udarbejdelse for at migrere Git til SHA3-256-algoritmen. En af udfordringerne ved at gøre dette er, at repositories, som bruger den nye algoritme, ikke vil kunne fungere med tidligere udgaver af Git. Der vil altså opstå en skarp overgang fra én udgave af Git til en anden, hvor repositories ikke længere vil være kompatible. Den nye version vil dog kunne være kompatibel med repositories og servere, som benytter SHA-1.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk

Følg forløbet

Kommentarer (1)

Thue Kristensen

Det er endnu kun en teoretisk mulighed, da Google-demonstrationen af SHA-1-sårbarheden gjaldt for særlige tilfælde og udnyttede, at en PDF-fil kan få tilføjet indhold, som ikke vises, men blot er med til at påvirke hashværdien.

Det er altså ikke teoretisk. PDF-filer kan også tilføjes til git. Så lav et nyt par PDF-filer tilpasset git, med det rigtige prefix inklusiv størrelsen. Så får du listet det ene PDF-fil ind i et git-repositorie, og kan lave et repositorie med samme SHA-1 hash, men med den onde PDF-fil.

Log ind eller opret en konto for at skrive kommentarer

Pressemeddelelser

Big Data Lake Summit: Fast and Trusted Insights

If you want to outpace, outsmart and outperform your competition in a digital world, you need trusted data that can be turned into actionable business insights at speed.
24. apr 15:06

Welcome to Free course to learn about the combined power of Alteryx and Qlik!

Affecto invites to a free course, where we want to share our knowledge of this self-service analysis platform together with the power of Qlik.
20. apr 2017

Robotics Process Automation (RPA) changes the way organizations think about and perform work at a reduced cost, higher efficiency and greater productivity

Join us for this exiting seminar, which Affecto hosts with our business partner SmartRPA May 3rd, 2017 at 13.00 in Copenhagen.
30. mar 2017