If-Koubou

Mikä on SHAttered? SHA-1 törmäyskohtaukset, selitetty

Mikä on SHAttered? SHA-1 törmäyskohtaukset, selitetty (Miten)

Vuoden 2016 ensimmäisenä päivänä Mozilla lopetti tukensa SHA-1: n heikkenemiselle tietoturva-tekniikalle Firefox-selaimessa. Lähes välittömästi he käänsivät päätöksensä, koska se heikentäisi pääsyä vanhoihin verkkosivustoihin. Mutta helmikuussa 2017 heidän pelkonsa toteutuivat lopulta: tutkijat rikkoivat SHA-1: n luomalla ensimmäisen todellisen törmäyskohtauksen. Tässä kaikki mitä se tarkoittaa.

Mikä on SHA-1?

SHA on SHA-1: ssä Secure Hash -algoritmi, ja yksinkertaisesti sanottuna, voit ajatella sitä eräänlaisena matemaattisena ongelmana tai menetelmänä sekoittuu siihen syötettyyn dataan. Yhdysvaltojen NSA: n kehittämä se on ydinosa monista teknologioista, joita käytetään tärkeiden lähetysten salaamiseen Internetissä. Yhteiset salausmenetelmät SSL ja TLS, joita olet ehkä kuullut, voivat käyttää hajautusfunktiota, kuten SHA-1, luoda allekirjoitetut sertifikaatit, joita näet selaimen työkalupalkissa.

Emme mene syvälle matematiikkaan ja tietotekniikkaan missään SHA: n toiminnoissa, mutta tässä on perusidea. "Hajautus" on ainutlaatuinen koodi, joka perustuu tietojen syöttämiseen. Jopa pienet, satunnaiset merkkijonot, jotka syötetään hajautusfunktioon, kuten SHA-1, palauttavat pitkän, määrätyn hahmomäärän, mikä tekee (mahdollisesti) mahdottomaksi palauttaa merkkijono takaisin alkuperäiseen dataan. Näin salasanasuojaus toimii yleensä. Kun luot salasanan, salasanan syöttö haetaan ja tallentaa palvelin. Kun palaat, kun kirjoitat salasanasi, se haetaan uudelleen. Jos se vastaa alkuperäistä hajautusta, tulon oletetaan olevan sama, ja sinulla on oikeus käyttää tietoja.

Hash-toiminnot ovat hyödyllisiä pääasiassa siksi, että niiden avulla on helppo kertoa, onko syöttö, esimerkiksi tiedosto tai salasana, muuttunut. Kun syöttötieto on salainen, kuten salasanalla, hash on lähes mahdoton kääntää ja palauttaa alkuperäiset tiedot (tunnetaan myös nimellä "avain"). Tämä on hieman erilainen kuin "salaus", jonka tarkoitus on sekoitus dataa sen purkamiseksi myöhemmin käyttäen salakirjoituksia ja salaisia ​​avaimia. Haavoittuvilla tarkoitetaan vain tietojen eheyden varmistamista, jotta kaikki on sama. Tästä syystä Git, avoimen lähdekoodin versionhallinta- ja jakelusovellus käyttää SHA-1-hajautusta.

Se on paljon teknisiä tietoja, mutta yksinkertaisesti sanottuna: hash ei ole sama kuin salaus, koska sitä käytetään tunnistamaan, onko tiedosto muuttunut.

Kuinka tämä tekniikka vaikuttaa minuun?

Sanotaan, että sinun on vierailla verkkosivustolla yksityisesti. Pankisi, sähköpostiosoitteesi, jopa Facebook-tilisi - kaikki käyttävät salausta pitääkseen tiedot, jotka lähetät ne yksityisiksi. Ammattimaiset verkkosivustot tarjoavat salauksen hankkimalla sertifikaatin luotetusta viranomaiselta - kolmannelta osapuolelta, joka luottaa varmistamaan, että salaus on tasolla, yksityinen verkkosivuston ja käyttäjän välillä, eikä mikään muu osapuoli ole etsimässä sitä. Tämä suhde kolmanteen osapuoleen, jota kutsutaan Varmentaja, tai CA, on ratkaiseva, koska jokainen käyttäjä voi luoda "itse allekirjoitetun" varmenteen - voit jopa tehdä sen itse koneella, joka käyttää Linux Open SSL: llä. Esimerkiksi Symantec ja Digicert ovat kaksi laajalti tunnettua CA-yritystä.

Käy läpi teoreettisen skenaarion: How-To Geek haluaa pitää kirjautuneena käyttäjän istuntoihin yksityisesti salauksella, joten se vetoaa CA: n, kuten Symantecin, kanssa Varmenteen allekirjoituspyyntö, tai CSR. He luovat a julkinen avain ja yksityinen avain Internetin kautta lähetettyjen tietojen salaamiseen ja salauksen purkamiseen. CSR-pyyntö lähettää julkisen avaimen Symanteelle ja tiedot verkkosivustosta. Symantec tarkistaa avaimen tietueestaan ​​varmistaakseen, että kaikki osapuolet eivät ole muuttaneet tietoja, koska pienet muutokset tiedoissa tekevät hashista radikaalisti erilaiset.

Nämä julkiset avaimet ja digitaaliset varmenteet on allekirjoitettu hajautusfunktioilla, koska näiden toimintojen tuotos on helppo nähdä. Julkinen avain ja sertifikaatti, jolla on vahvistettu hajautus Symanteelta (esimerkissämme), viranomaisen, takaa How-To Geek: n käyttäjälle, että avain ei ole muuttunut eikä lähetetty joltain haitalliselta.

Koska hash on helppo seurata ja mahdotonta (jotkut sanovat "vaikeaksi") kääntää, oikea, tarkistettu hash-allekirjoitus tarkoittaa sitä, että varmenne ja yhteys voidaan luottaa ja tietoja voidaan hyväksyä lähetettäväksi salattuina päästä toiseen . Mutta mitä jos hash ei ollut ainutlaatuinen?

Mikä on törmäyskohtaus ja onko mahdollista reaalimaailmassa?

Olet ehkä kuullut matematiikan "Syntymäpäiväkirja", vaikka et ehkä tiennyt, mitä kutsuttiin. Perusajatus on, että jos koota tarpeeksi suuri joukko ihmisiä, mahdollisuudet ovat melko suuret, että kaksi tai useampi henkilöllä on saman syntymäpäivä. Korkeampi kuin mitä olette odottaneet, itse asiassa - tarpeeksi, että se tuntuu kummalliselta sattumalta. Ryhmässä, joka on niin pieni kuin 23 ihmistä, on 50 prosentin mahdollisuus, että kaksi jakavat syntymäpäivän.

Tämä on luontainen heikkous kaikissa haavoissa, mukaan lukien SHA-1. Teoriassa SHA-toiminnon pitäisi luoda ainutkertainen hash mille tahansa syötettävälle tietylle tiedolle, mutta koska hajautusten määrä kasvaa, on todennäköistä, että erilaiset dataparit voivat luoda saman hasen. Joten voitiin luoda epäluotettava todistus, jolla on identtinen hash luotettavalle varmenteelle. Jos he saivat sinut asentamaan tämän epäluotettavan sertifikaatin, se saattaa peiteltyä luotettavana ja jakaa haittaohjelmia.

Haun kahden lomakkeen löytämistä kutsutaan a törmäyskohtaus. Ainakin yksi laajamittainen törmäyskohtaus tiedetään jo tapahtuneen MD5-hashista. Mutta 27. helmikuuta 2017 Google ilmoitti SHAtteredille, joka on ensimmäinen muotoiltu törmäys SHA-1: lle.Google pystyi luomaan PDF-tiedoston, jolla oli sama SHA-1-hajautus kuin toinen PDF-tiedosto huolimatta siitä, että sillä on eri sisältöä.

SHAttered suoritettiin PDF-tiedostona. PDF-dokumentit ovat suhteellisen löysä tiedostomuoto; paljon pieniä bittitasoja voidaan tehdä estämättä lukijoita avaamasta sitä tai aiheuttaen näkyviä eroja. PDF-tiedostoja käytetään usein haittaohjelmien toimittamiseen. Vaikka SHAttered voisi työskennellä muuntyyppisissä tiedostoissa, kuten ISOs, todistukset ovat tiukasti määritelty, joten tällainen hyökkäys on epätodennäköistä.

Kuinka helppoa tämä hyökkäys on? SHAttered perustui Marc Stevensin vuonna 2012 havaitsemiin menetelmiin, jotka vaativat yli 2 ^ 60,3 (9,223 kvintilliinia) SHA-1-toimintaa - hämmästyttävän määrän. Tämä menetelmä on kuitenkin 100 000 kertaa vähemmän operaatioita kuin mitä vaadittaisiin samaan tulokseen brutilla. Google havaitsi, että 110 korkealaatuista näytönohjainta, jotka toimivat rinnakkain, kestää noin yhden vuoden ajan törmäyksen aikaansaamiseksi. Tämän laskenta-ajan vuokraaminen Amazon AWS: stä maksaisi noin 110 000 dollaria. Muista, että kun hinnat laskevat tietokoneen osille ja voit saada enemmän tehoa vähemmän, hyökkäykset, kuten SHAttered tullut helpompi vetää pois.

110 000 dollaria saattaa tuntua paljon, mutta se on joidenkin organisaatioiden kohtuuhintaisuuden alueella, mikä tarkoittaa, että reaalimaailman cybervillians voisi kehittää digitaalisia asiakirjojen allekirjoituksia, häiritä varmuuskopiointi- ja versionhallintajärjestelmiä kuten Git ja SVN tai tehdä haitallisen Linux ISO: n oikeutetuksi.

Onneksi on lieventäviä tekijöitä, jotka estävät tällaiset hyökkäykset. SHA-1: tä käytetään harvoin digitaalisiin allekirjoituksiin. Sertifikaatin myöntäjät eivät enää tue SHA-1: n kanssa allekirjoitettuja todistuksia, ja sekä Chrome että Firefox ovat hylänneet tuen heille. Linux-jakelut yleensä vapautuvat useammin kuin kerran vuodessa, joten hyökkääjän ei ole käytännöllistä luoda haitallista versiota ja luoda sitten yksi pehmustettu, jolla on sama SHA-1 hajautus.

Toisaalta jotkin SHAtterin perustuvat hyökkäykset ovat jo tapahtumassa todellisessa maailmassa. SVN-versionhallintajärjestelmä käyttää SHA-1: n erottaakseen tiedostot. Kahden PDF: n lataaminen samanlaisilla SHA-1-hajautuksilla SVN-arkistoon aiheuttaa sen, että se vahingoittuu.

Miten voin suojella itseäni SHA-1-hyökkäyksiltä?

Tyypilliselle käyttäjälle ei ole paljon. Jos käytät tarkistussummia tiedostojen vertailuun, käytä SHA-2: n (SHA-256) tai SHA-3: n sijasta SHA-1: n tai MD5: n sijasta. Samoin jos olet kehittäjä, muista käyttää moderneja hajautusalgoritmeja, kuten SHA-2, SHA-3 tai bcrypt. Jos olet huolissasi, että SHAttered on käyttänyt kahta erillistä tiedostoa samassa hajautuksessa, Google on julkaissut työkalun SHAttered-sivustolla, joka voi tarkistaa sinut.

Image Credits: Lego Firefox, Paljon Hash, älä loukkaa Web kirjailijaa tuntematon, Google.