MD5-svaghed kan underminere hvidlistning

En svaghed i MD5-hashfunktionen kan gøre det muligt for hackere at snyde kontrollen af ægtheden af programmer gennem hvidlistning.

MD5-hashfunktionen bruges hyppigt til at kontrollere, at en applikation er den, som den udgiver sig for at være, og at applikationen ikke er blevet ændret. En svaghed i funktionen gør det imidlertid muligt for hackere at snyde hvidlister, som bygger på MD5, advarer sikkerhedsfirmaet Symantec.

En gruppe sikkerhedseksperter har fundet en svaghed ved MD5, som gør det muligt at tilføje nogle få tusinde bytes til to filer, så de giver den samme MD5-hashværdi. De nødvendige ekstra bytes kan findes på mindre end to dage med en enkelt pc.

Da begge filer skal ændres, er svagheden begrænset til situationer, hvor hackeren har mulighed for at ændre begge filer, uden nogen kan opdage det.

Harmløst program som kamuflage

Men det gør det ifølge Symantec stadig muligt for en hacker at udnytte svagheden ved at skabe to programmer. Det ene er harmløst og det andet er et ondsindet program. Derefter ændrer hackeren de to filer ved hjælp af svagheden i MD5, så de giver den samme hashværdi.

Derefter kan hackeren offentliggøre den harmløse version og få den godkendt af en hvidlistningstjeneste, som ellers ville spærre for ukendte programfiler. Derefter lægger hackeren den ondsindede version ud, som på grund af den identiske MD5-hashværdi vil slippe gennem hvidlistningen.

Angrebsmulighederne er endnu begrænsede, men svagheden i MD5 får alligevel chefkonsulent Peter Ferrie fra Symantec til at anbefale SHA-2 i stedet for MD5 til fremtidige applikationer, da SHA-2 ikke har samme svaghed som MD5.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (8)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#7 Torben Mogensen Blogger

I sagens natur vil hash-algoritmer altid have kollisioner: Hvis hashkoden er kortere end kildefilerne, er der færre mulige haskoder end der er kildefiler.

Det afgørende er, hvor svært det er at konstruere eksempler på kollisioner. Hvis hash-algoritmen er god, bør det ikke kunne gøres væsentligt hurtigere end at generere tilfældige par af kildefiler indtil man finder en kollision.

Det er er ualmindeligt svært at bevise at det er så svært, specielt fordi problemet ligger i NP, hvor man ikke ved, om der findes polynomielle algoritmer. Derfor er det bedste man kan sige om sværhedsgraden for at konstruere kollisioner, at der ikke kendes algoritmer bedre end en bestemt, men det udelukker ikke, at der findes bedre.

Den bedste tilgangsvinkel er derfor at lave sine algoritmer, så løsningen er mindst ligeså svær som løsning af et kendt svært problem, som mange har brugt langt tid på at løse. Faktorisering af store heltal eller diskrete logaritmer i talrum baseret på elliptiske funktioner er kendte eksempler på sådanne problemer, men selv her er det velkendt, at der findes "nemme" instanser af problemerne, så sikkerheden er ikke garanteret.

  • 0
  • 0
#8 Mikkel Meyer Andersen

Hvis algoritmer så heller ikke havde fejl, ville de i fuldstændighed hvile på det problem, de er bygget på - men det er ikke virkeligheden, og i mange tilfælde er det disse fejl/smuthuller/bagdøre, der skaber problemerne - det er langt fra altid fordi det underliggende problem er blevet løst, når der kommer sådanne fejl.

  • 0
  • 0
Log ind eller Opret konto for at kommentere