Mis on SHAttered? SHA-1 kokkupõrgete rünnakud, selgitatud

Sisukord:

Mis on SHAttered? SHA-1 kokkupõrgete rünnakud, selgitatud
Mis on SHAttered? SHA-1 kokkupõrgete rünnakud, selgitatud

Video: Mis on SHAttered? SHA-1 kokkupõrgete rünnakud, selgitatud

Video: Mis on SHAttered? SHA-1 kokkupõrgete rünnakud, selgitatud
Video: 30 Ultimate Windows 10 Tips and Tricks for 2020 - YouTube 2024, Aprill
Anonim
2016. aasta esimesel päeval lõpetas Mozilla Firefoxi veebibrauseris toetuse nõrgendamiseks turvatehnoloogia nimega SHA-1. Peaaegu kohe nad muutsid oma otsuse tagasi, kuna see vähendaks juurdepääsu mõnele vanemale veebisaidile. Kuid 2017. aasta veebruaris lõppesid nende hirmud tõepoolest: teadlased murdsid SHA-1, luues esimese reaalmaailma kokkupõrke rünnaku. Siin on kõik see, mis tähendab.
2016. aasta esimesel päeval lõpetas Mozilla Firefoxi veebibrauseris toetuse nõrgendamiseks turvatehnoloogia nimega SHA-1. Peaaegu kohe nad muutsid oma otsuse tagasi, kuna see vähendaks juurdepääsu mõnele vanemale veebisaidile. Kuid 2017. aasta veebruaris lõppesid nende hirmud tõepoolest: teadlased murdsid SHA-1, luues esimese reaalmaailma kokkupõrke rünnaku. Siin on kõik see, mis tähendab.

Mis on SHA-1?

Image
Image

SHA-l SHA-1 tähistab Secure Hash Algoritm, ja lihtsalt öelge, et see on mõni matemaatika probleem või meetod kärpib neid andmeid. Ameerika Ühendriikide riikliku julgeolekuasutuse poolt välja töötatud tehnoloogia on oluline osa paljudest tehnoloogiatest, mida kasutatakse oluliste edastuste krüptimiseks Internetis. Ühised krüpteerimismeetodid SSL ja TLS, mida te võisite kuulnud, võivad kasutada brauseri tööriistaribal olevate allkirjastatud sertifikaatide loomiseks räsifunktsiooni nagu SHA-1.

Me ei lähe sügavale matemaatika- ja infotehnoloogiasse ühest SHA funktsioonist, kuid siin on põhieesmärk. "Hash" on unikaalne kood, mis põhineb mis tahes andmete sisendil. Isegi väike juhuslik kirjavahemärk, mis sisestatakse hash-funktsioonina, nagu SHA-1, tagastab pikk, määratud tähemärkide arv, muutes (potentsiaalselt) võimatuks, et sümbolite string uuesti algsete andmete juurde tagasi jõuda. Nii toimib salasäilitus tavaliselt. Kui loote parooli, siis sisestab parool sisestatud serveri ja säilitab selle. Teie tagasitoomisel, kui sisestate oma parooli, on see uuesti räsitud. Kui see vastab originaalheligale, võib eeldada, et sisend on sama ja teile antakse juurdepääs teie andmetele.
Me ei lähe sügavale matemaatika- ja infotehnoloogiasse ühest SHA funktsioonist, kuid siin on põhieesmärk. "Hash" on unikaalne kood, mis põhineb mis tahes andmete sisendil. Isegi väike juhuslik kirjavahemärk, mis sisestatakse hash-funktsioonina, nagu SHA-1, tagastab pikk, määratud tähemärkide arv, muutes (potentsiaalselt) võimatuks, et sümbolite string uuesti algsete andmete juurde tagasi jõuda. Nii toimib salasäilitus tavaliselt. Kui loote parooli, siis sisestab parool sisestatud serveri ja säilitab selle. Teie tagasitoomisel, kui sisestate oma parooli, on see uuesti räsitud. Kui see vastab originaalheligale, võib eeldada, et sisend on sama ja teile antakse juurdepääs teie andmetele.
Hashi funktsioonid on kasulikud peamiselt seetõttu, et need on lihtsad öelda, kas sisend, näiteks fail või parool, on muutunud. Kui sisendandmed on salajased, näiteks parool, on räsi peaaegu võimatu pöörata ümber ja taastada algandmed (tuntud ka kui "võti"). See on natuke teistsugune kui "krüptimine", mille eesmärk on andmete skrambleerimine selle hiljem deskrambleerimise eesmärgil, kasutades tšifreid ja salajasi võtmeid. Hashes on lihtsalt mõeldud andmete terviklikkuse tagamiseks, et veenduda, et kõik on ühesugused. Avatud lähtekoodi versiooni juhtimise ja levitamise tarkvara Git kasutab sel põhjusel SHA-1 räsi.
Hashi funktsioonid on kasulikud peamiselt seetõttu, et need on lihtsad öelda, kas sisend, näiteks fail või parool, on muutunud. Kui sisendandmed on salajased, näiteks parool, on räsi peaaegu võimatu pöörata ümber ja taastada algandmed (tuntud ka kui "võti"). See on natuke teistsugune kui "krüptimine", mille eesmärk on andmete skrambleerimine selle hiljem deskrambleerimise eesmärgil, kasutades tšifreid ja salajasi võtmeid. Hashes on lihtsalt mõeldud andmete terviklikkuse tagamiseks, et veenduda, et kõik on ühesugused. Avatud lähtekoodi versiooni juhtimise ja levitamise tarkvara Git kasutab sel põhjusel SHA-1 räsi.

See on palju tehnilist teavet, kuid lihtsalt öeldes: räsi ei ole krüpteeringuga sama, sest seda kasutatakse, et tuvastada, kas fail on muutunud.

Kuidas see tehnoloogia minu jaoks mõjutab?

Image
Image

Oletame, et peate privaatselt külastama veebisaiti. Teie pank, teie e-posti aadress, isegi teie Facebooki konto - kõik kasutavad krüpteerimist, et hoida teie poolt privaatselt saadetud andmeid. Professionaalne veebisait pakub krüptimist, saades sertifikaadi usaldusväärsele asutusele - kolmandale osapoolele, kellele usaldatakse, et krüptimine on veebisaidi ja kasutaja vahel privaatselt ja mitte ühegi teise isiku poolt. See suhe kolmanda isikuga, mida kutsutakse Sertifikaadiasutused, või CA, on oluline, kuna iga kasutaja saab luua "ise allkirjastatud" sertifikaadi - saate seda teha isegi teie arvutis, kus käivitatakse Linux koos Open SSL-iga. Symantec ja Digicert on näiteks kaks tuntud CA ettevõtet.

Image
Image

Lähme läbi teoreetiline stsenaarium: kuidas on-i Geek soovib krüpteeringuga isiklike kasutajate seansside sisse logida, nii et ta taotleb CA-le nagu Symantec koos Sertifikaadi allkirjastamise taotlus, või CSR. Nad loovad a avalik võti ja privaatvõti interneti kaudu saadetud andmete krüpteerimiseks ja dekrüpteerimiseks. CSR-i taotlus saadab Symanteci avaliku võtme koos teabega veebisaidi kohta. Symantec kontrollib võtit selle registrisse, et kontrollida, et kõik osapooled ei muuda andmeid, kuna kõik väikesed muutused andmetes muudavad räsi radikaalselt erinevaks.

Need avalikud võtmed ja digitaalsertifikaadid allkirjastatakse hash-funktsioonidega, sest nende funktsioonide väljundit on lihtne näha. Avalik võtme ja sertifikaat, mille on Symanteci kontrollitud räsi (meie näites) volitatud asutus, kinnitab, kuidas funktsiooniga Geeki kasutaja, et võti on muutmata ja seda ei saadeta kellegi pahatahtlikust.
Need avalikud võtmed ja digitaalsertifikaadid allkirjastatakse hash-funktsioonidega, sest nende funktsioonide väljundit on lihtne näha. Avalik võtme ja sertifikaat, mille on Symanteci kontrollitud räsi (meie näites) volitatud asutus, kinnitab, kuidas funktsiooniga Geeki kasutaja, et võti on muutmata ja seda ei saadeta kellegi pahatahtlikust.
Image
Image

Kuna räsi on hõlpsasti jälgitav ja võimatu (mõned ütlevad, et see on "raske") pöörata ümber, on õige, kinnitatud hash-allkiri, et sertifikaati ja ühendust saab usaldada ja andmete saamiseks tuleb kokku leppida, et need saadetakse krüptituna otsast lõpuni. Aga mis siis, kui räsi on ei olnud tegelikult ainulaadne?

Mis on kokkupõrke rünnak ja kas see on võimalik reaalses maailmas?

Võimalik, et olete kuulnud matemaatika "Sünnipäevaprobleemist", kuigi te ei pruugi teada, mida seda kutsuti. Põhieesmärk on see, et kui kogute piisavalt suurt hulka inimesi, on tõenäosus üsna kõrge, et kahel või enamal inimesel on sama sünnipäev. Suurem, kui ootate, piisab sellest, et see tundub imelikku kokkusattumist. Kui grupis on vähem kui 23 inimest, on 50% tõenäosus, et kahel saab sünnipäev.

See on kõigis hasheses, sealhulgas SHA-1, omane nõrkus. Teoreetiliselt SHA-funktsioon peaks looma unikaalse räsi selle jaoks, mis on selle sisestatud, kuid kuna räsi arv kasvab, muutub tõenäolisemaks, et erinevad andmepaarud võivad luua sama räsi.Nii võiks luua usaldusväärse sertifikaadi, millel on identne räsi usaldusväärsele sertifikaadile. Kui nad said sulle selle ebausaldusväärse sertifikaadi installida, võib see maskeerida usaldusväärsetena ja levitada pahatahtlikke andmeid.
See on kõigis hasheses, sealhulgas SHA-1, omane nõrkus. Teoreetiliselt SHA-funktsioon peaks looma unikaalse räsi selle jaoks, mis on selle sisestatud, kuid kuna räsi arv kasvab, muutub tõenäolisemaks, et erinevad andmepaarud võivad luua sama räsi.Nii võiks luua usaldusväärse sertifikaadi, millel on identne räsi usaldusväärsele sertifikaadile. Kui nad said sulle selle ebausaldusväärse sertifikaadi installida, võib see maskeerida usaldusväärsetena ja levitada pahatahtlikke andmeid.
Image
Image

Sobivate räsikute leidmine kahes failis on nimega kokkupõrke rünnak. On teada, et MD5-hashes on juba juhtunud vähemalt üks ulatuslik kokkupõrke rünnak. Kuid 27. veebruaril 2017 teatas Google SHAttered'ist SHA-1 esmakordselt kokkupõrkel. Google suutis luua PDF-faili, millel oli sama SHA-1 räsi nagu mõni muu PDF-fail, kuigi sellel on erinev sisu.

SHAttered viidi läbi PDF-failis. PDF-failid on suhteliselt lahtine failivorming; Võimalik on teha palju väikseid bititasemeid, ilma et lugejad seda avataksid või põhjustaksid nähtavaid erinevusi. PDF-vorminguid kasutatakse sageli ka pahavara edastamiseks. Kuigi SHAttered võiks töötada muud tüüpi failide, näiteks ISO-de puhul, on sertifikaadid jäigalt täpsustatud, mistõttu selline rünnak on ebatõenäoline.

Niisiis, kui lihtne on see rünnak sooritada? SHAttered põhineb Marc Stevensi poolt 2012. aastal avastatud meetodil, mis nõudis üle 2 ^ 60,3 (9,223 quintillion) SHA-1 operatsioone - üllatav number. Kuid see meetod on veel 100 000 korda vähem operatsioone kui oleks vaja sama tulemuse saavutamiseks koos jõuga. Google leidis, et 110 top-end videokaartidega, mis töötavad paralleelselt, kulub kokkupõrke tekitamiseks umbes üks aasta. Amazoni AWS-i arvutusaja ajastamine maksaks umbes 110 000 dollarit. Pidage meeles, et kuna arvutiosade hinnad langevad ja võite saada vähem energiat, muutuvad rünnakud nagu SHAttered lihtsamaks.

110 000 dollarit võib tunduda palju, kuid see on mõne organisatsiooni taskukohasuse piires - see tähendab, et reaalajalised kübervillijad võivad digitaalsete dokumentide allkirju tõsta, segada backup- ja versioonikontrollisüsteeme nagu Git ja SVN või muuta pahatahtlik Linux ISO tunduda õigustatud.

Õnneks on selliste rünnakute vältimiseks leevendavaid tegureid. SHA-1 kasutatakse digitaalallkirjade puhul harva. Sertifikaadid ei anna enam SHA-1-ga allkirjastatud sertifikaate ja nii Chrome kui ka Firefox on neid toetust langetanud. Linuxi distributsioonid väljastatakse tavaliselt sagedamini kui üks kord aastas, mistõttu rämnikule ei piisa pahatahtliku versiooni loomiseks ja seejärel tekib üks polsterdatud element, millel on sama SHA-1 räsi.

Teiselt poolt, mõned rünnakud põhinevad SHAttered juba reaalses maailmas. SVN versioonikontrollisüsteemifailide eristamiseks kasuta SHA-1. Kahe PDF-faili üleslaadimine identsete SHA-1 hashidega SVN-i hoidlale põhjustab selle kahjustumise.

Kuidas kaitsta end SHA-1-rünnakute eest?

Tavalisele kasutajale ei tohiks midagi teha. Kui kasutate failide võrdlemiseks kontrollsummasid, peaksite pigem SHA-2 (SHA-256) või SHA-3 kui SHA-1 või MD5. Samuti, kui olete arendaja, kasutage kindlasti rohkem kaasaegseid räsimisalgoritme, nagu SHA-2, SHA-3 või bcrypt. Kui olete mures, et SHAtteredi on kasutatud kahe erineva faili andmiseks sama räsi, on Google välja andnud SHAttered'i saidile tööriista, mis saab teie jaoks kontrollida.

Pilt autorid: Lego Firefox, palju häbistamist, palun ärge vigastada Web autor teadmata, Google.

Soovitan: