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

Partnernyheder

Welcome to a seminar on tools that help you become GDPR compliant!

Getting GDPR compliant by May 2018 implies a lot of activities covering the legal aspects, internal business processes, data management, and security technology.
28. feb 2017

Maja Rosendahl Larsen ansat hos Affecto

24. jan 2017

Introduction to Jedox – Affecto Seminar, Copenhagen

12. jan 2017