Den første dagen i 2016 avsluttet Mozilla støtte for en svekkende sikkerhetsteknologi kalt SHA-1 i Firefox-nettleseren. Nesten umiddelbart reverserte de sin beslutning, da det ville kutte tilgangen til noen eldre nettsteder. Men i februar 2017 ble deres frykt til slutt sant: Forskere brøt SHA-1 ved å skape det første virkelige kollisjonsangrepet. Her er hva alt som betyr.
SHA i SHA-1 står for Secure Hash Algorithm , og enkelt sagt, du kan tenke på det som en slags matematisk problem eller metode som krypterer dataene som er lagt inn i det . 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 hashfunksjon som SHA-1 for å lage de signerte sertifikatene du ser i verktøylinjen på nettleseren din.
Vi vil ikke gå dypt inn i matematikk og datavitenskap av noen av SHA-funksjonene, men her er grunnleggende ideen. En "hash" er en unik kode basert på inngangen til noen data. Selv liten, tilfeldig streng av bokstaver som inngår i en hash-funksjon som SHA-1, returnerer et langt, angitt antall tegn, noe som gjør det mulig (potensielt) umulig å returnere tegnstrengen tilbake til de opprinnelige dataene. Slik fungerer passordoppbevaring vanligvis. Når du oppretter et passord, er passordinngangen din hashed og lagret av serveren. Når du kommer tilbake, når du skriver inn passordet ditt, er det hashed igjen. Hvis den samsvarer med originalen, kan inntaket antas å være det samme, og du får tilgang til dataene dine.
Hashfunksjoner er nyttige, hovedsakelig fordi de gjør det enkelt å fortelle om inngangen, for eksempel, en fil eller et passord, har endret seg. Når inngangsdata er hemmelige, som et passord, er hasen nesten umulig å reversere og gjenopprette de opprinnelige dataene (også kjent som "nøkkelen"). Dette er litt forskjellig fra "kryptering", hvis formål er å kryptere data med det formål å descrambling det senere, ved hjelp av cifre og hemmelige nøkler. Hashes er bare ment å sikre dataintegritet-for å sikre at alt er det samme. Git, versjonskontroll- og distribusjonsprogramvaren for åpen kildekode, bruker SHA-1 hashes av denne grunn.
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 .
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 nettstedet og brukeren, og ikke blir spionert av noen annen part. Dette forholdet til tredjepart, kalt Certificate Authorities , eller CA , er avgjørende, siden noen brukere kan lage et "selvsignert" sertifikat - du kan selv gjøre det selv på en Maskinen 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 hacken radikalt annerledes.
Disse offentlige nøklene og digitale sertifikater er signert av hashfunksjoner, fordi produksjonen av disse funksjonene er enkle å se. En offentlig nøkkel og et sertifikat med en verifisert hash fra Symantec (i vårt eksempel), en myndighet, sikrer en bruker av How-To Geek at nøkkelen er uendret, og ikke sendes fra noen skadelig.
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 hvis hasen ikke var helt 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 deler en bursdag.
Å finne matchende hashes i to filer kalles et
kollisionsangrep
. 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 noen organisasjoner - som betyr at virkelige cybervillians kan forfalske digitale dokument signaturer, forstyrre sikkerhetskopierings- og versjonskontrollsystemer som Git og SVN, eller få en skadelig Linux ISO til å bli 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 per år, 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 er noen angrep basert på SHAttered som allerede skjer i den virkelige verden. SVN-versjonens kontrollsystem bruker SHA-1 til å skille mellom filer. Opplasting av de to PDF-dokumentene med identiske SHA-1-hashes til et SVN-depot vil 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.
Slik stopper du Amazonas e-post, tekst eller smarttelefon-appvarsler
Amazon kan varsle deg om kjøp, forsendelser og forsinkelser via e-post, tekstmelding eller push-varsler fra Amazon-appen. Det er også mulig å aktivere alle tre typer meldinger, og du vil bli bombardert med dupliserte varsler når du bestiller noe. Men selv om disse kan være nyttige, vil du sannsynligvis ikke alle tre av dem samtidig.
Slik bruker du Stringify for Crazy Kraftig Hjemmeautomatisering
Hvis du noensinne har ønsket at du kunne opprette avanserte, automatiserte samspill mellom alle de smarte enhetene i huset ditt, er Stringify din nye beste venn. Med det kan du få flere enheter til å slå på eller utføre handlinger når visse betingelser er oppfylt. Hvorfor Stringify Rocks RELATED: Slik automatiserer du favorittapplikasjoner med IFTTT Stringify fungerer sammen med samme prinsipp som den stadig populære IFTTT.