Hva er SHA-1?
SHA i SHA-1 står for Secure Hash Algoritme, og ganske enkelt sagt, kan du tenke på det som en slags matematisk problem eller metode som krypterer dataene som er lagt inn i den. Utviklet av USAs NSA, er det en sentral del av mange teknologier som brukes til å kryptere viktige overføringer på internett. Vanlige krypteringsmetoder SSL og TLS, som du kanskje har hørt om, kan bruke en hash-funksjon som SHA-1 for å lage de signerte sertifikatene du ser i verktøylinjen i nettleseren.
Det er mye teknisk informasjon, men for å si det enkelt: en hash er ikke det samme som kryptering siden Det brukes til å identifisere om en fil har endret seg.
Hvordan påvirker denne teknologien meg?
La oss si at du må besøke et nettsted privat. Din bank, din e-post, til og med Facebook-kontoen din, bruker alle kryptering for å beholde dataene du sender dem privat. Et profesjonelt nettsted vil gi kryptering ved å skaffe et sertifikat fra en klarert autoritet - en tredjepart, klarert å sikre at krypteringen er på nivået, privat mellom nettsiden og brukeren, og ikke blir spionert av noen annen part. Dette forholdet med tredjepart, kalt Sertifikatmyndigheter, eller CA, er avgjørende, siden noen brukere kan lage et "selvsignert" sertifikat. Du kan selv gjøre det selv på en maskin som kjører Linux med Open SSL. Symantec og Digicert er to kjente CA-selskaper, for eksempel.
La oss gjennomgå et teoretisk scenario: How-To Geek ønsker å holde innlogget brukeres økter privat med kryptering, så det krever en CA som Symantec med en Sertifikat signeringsforespørsel, eller CSR. De lager en offentlig nøkkel og privat nøkkel for kryptering og dekryptering av data som sendes over internett. CSR-forespørselen sender offentlig nøkkel til Symantec sammen med informasjon om nettstedet. Symantec kontrollerer nøkkelen mot sin registrering for å bekrefte at dataene er uendret av alle parter, fordi en liten endring i dataene gjør isen radikalt annerledes.
Fordi hasen er lett å overvåke og umulig (noen vil si "vanskelig") å reversere, betyr den riktige, verifiserte hash signaturen at sertifikatet og tilkoblingen kan stole på, og data kan bli enige om å bli sendt kryptert fra ende til slutt. Men hva om hasen var egentlig ikke unik?
Hva er et kollisjonsangrep, og er det mulig i den virkelige verden?
Du har kanskje hørt om "Bursdagsproblemet" i matematikk, selv om du kanskje ikke har kjent hva det ble kalt. Den grunnleggende ideen er at hvis du samler en stor nok gruppe mennesker, er sjansene ganske høye at to eller flere mennesker vil ha samme bursdag. Høyere enn du ville forvente, faktisk nok - det virker som en merkelig tilfeldighet. I en gruppe så liten som 23 personer, er det en 50% sjanse for at to vil dele en bursdag.
Å finne matchende hashes i to filer kalles a kollisjon angrep. Det er kjent at minst en storskala kollisjon angrep allerede har skjedd for MD5 hashes. Men den 27. februar 2017 annonserte Google SHAttered, den første noensinne laget kollisjon for SHA-1. Google kunne lage en PDF-fil som hadde samme SHA-1 hash som en annen PDF-fil, til tross for at det hadde annet innhold.
SHAttered ble utført på en PDF-fil. PDF-filer er et relativt løs filformat; Mange små, bitnivåendringer kan gjøres uten å hindre at leserne åpner den eller forårsaker synlige forskjeller. PDF-filer brukes også ofte til å levere skadelig programvare. Mens SHAttered kan fungere på andre typer filer, som ISOs, er sertifikater stift spesifisert, noe som gjør et slikt angrep usannsynlig.
Så hvor lett er dette angrepet å utføre? SHAttered var basert på en metode oppdaget av Marc Stevens i 2012 som krevde over 2 ^ 60,3 (9,223 quintillion) SHA-1 operasjoner - et svimlende tall. Denne metoden er imidlertid fortsatt 100.000 ganger færre operasjoner enn det som kreves for å oppnå det samme resultatet med brute force. Google fant at med 110 high-end grafikkort som fungerer parallelt, vil det ta omtrent ett år å produsere en kollisjon. Leie denne beregningstiden fra Amazon AWS ville koste rundt $ 110.000. Husk at når prisene faller for datadelementer og du kan få mer strøm til mindre, blir angrep som SHAttered lettere å trekke av.
$ 110 000 kan virke som en del, men det er innenfor rimelige priser for enkelte organisasjoner, noe som betyr at virkelige cybervillians kan forfalske digitale dokument signaturer, forstyrre backup- og versjonskontrollsystemer som Git og SVN, eller få en skadelig Linux-ISO til å være legitim.
Heldigvis finnes det avbødende faktorer som hindrer slike angrep. SHA-1 brukes sjelden til digitale signaturer lenger. Sertifikatmyndighetene gir ikke lenger sertifikater signert med SHA-1, og både Chrome og Firefox har mistet støtten til dem. Linux-distribusjoner slipper vanligvis oftere enn en gang i året, noe som gjør det umulig for en angriper å lage en skadelig versjon og deretter generere en polstret for å ha samme SHA-1-hash.
På den annen side skjer noen angrep basert på SHAttered allerede i den virkelige verden. SVN-versjonens kontrollsystem bruker SHA-1 til å skille mellom filer. Når du laster opp de to PDF-dokumentene med identiske SHA-1-hashes til et SVN-depot, vil det føre til at det blir ødelagt.
Hvordan kan jeg beskytte meg mot SHA-1-angrep?
Det er ikke mye for den typiske brukeren å gjøre. Hvis du bruker kontrollsummer til å sammenligne filer, bør du bruke SHA-2 (SHA-256) eller SHA-3 i stedet for SHA-1 eller MD5. På samme måte, hvis du er en utvikler, må du bruke mer moderne hashing-algoritmer som SHA-2, SHA-3 eller bcrypt. Hvis du er bekymret for at SHAttered har blitt brukt til å gi to forskjellige filer samme hash, har Google gitt ut et verktøy på SHAttered-siden som kan sjekke for deg.
Image Credits: Lego Firefox, Massevis av Hash, vær så snill, ikke vær skadelig for Internett-forfatteren, ukjent, Google.