Det er nu for alvor blevet tid til at sende SHA-1 på pension som hash-algoritme til sikkerhedsformål. Det er i hvert fald konklusionen fra Googles sikkerhedsafdeling, som har fremvist det første eksempel på en kollision i SHA-1.
En kollision i en hash-algoritme betyder, at to forskellige input giver det samme output, altså eksempelvis to forskellige dokumenter, der giver den samme hashværdi.
Det er der i princippet flere hashfunktioner, der gør, men det afgørende er, dels at sandsynligheden for at det sker tilfældigt er urealistisk, og dels at det ikke er muligt fremprovokere en kollision - altså hvis man kender ét dokument og dets hash-værdi, så skal man ikke kunne regne sig frem til et andet dokument, der får samme hashværdi.
Problemet med kollisioner er, hvis en hashværdi bruges kryptografisk til eksempelvis at bekræfte, at et dokument sendt fra Alice til Bob ikke er blevet opsnappet og ændret. Hvis Eva lytter med, så kan Eva udnytte en kollision til at lave et ændret dokument, der har samme hashværdi.
I 2013 blev en teoretisk mulighed for kollisioner i SHA-1 fremsat, og det er på baggrund af det arbejde, at Google har forsøgt at demonstrere, at det kan lade sig gøre i virkeligheden.
SHA-1 er nemlig også blevet brugt til de certifikater, som bruges til at sikre forbindelser på internettet ved hjælp af TLS-protokollen. Så kollisioner i SHA-1 kan altså underminere sikkerheden i de sikre forbindelser. Derfor er Googles egen Chrome-browser begyndt at advare mod sider, som benytter SHA-1 til at signere forbindelsen.
Det angreb, Google har demonstreret, har dog ikke været let. Først skulle Google skabe en del af et PDF-dokument, som tillod forskelligt indhold i dokumentet, men ville give samme hashværdi.
Beregningsopgaven er én af de største, Google nogensinde har foretaget. De to faser krævede henholdsvis 6.500 CPU-år, når man omregner til regnekraften i én processorkerne, og 110 GPU-år på grafikprocessorer. I alt 9.223.372.036.854.775.808 SHA-1 beregninger.
Det er en massiv mængde udregninger, men det er stadig 100.000 gange hurtigere, end det teoretisk ville tage, hvis man blot prøvede sig frem med et brute force-angreb.
Selvom der er et stykke vej fra Googles resultat til en realistisk trussel mod de fleste websteder, så anbefaler Google, at man skifter eksempelvis sine webstedscertifikater fra SHA-1 til en nyere algoritme så som SHA-3 eller SHA-256, hvor der endnu ikke er fundet mulighed for at finde frem til kollisioner.