Mājas lapa » » Kas ir SHAttered? SHA-1 sadursmes uzbrukumi, paskaidrots

    Kas ir SHAttered? SHA-1 sadursmes uzbrukumi, paskaidrots

    2016. gada pirmajā dienā Mozilla pārtrauca vājināt drošības tehnoloģiju SHA-1 Firefox tīmekļa pārlūkprogrammā. Gandrīz nekavējoties viņi mainīja savu lēmumu, jo tas samazinātu piekļuvi dažām vecākām tīmekļa vietnēm. Taču 2017. gada februārī viņu bailes beidzot piepildījās: pētnieki pārtrauca SHA-1, radot pirmo reālā pasaules sadursmes uzbrukumu. Lūk, ko tas viss nozīmē.

    Kas ir SHA-1?

    SHA-1 SHA nozīmē Secure Hash algoritms, un, vienkārši sakot, jūs varat domāt par to kā sava veida matemātikas problēmu vai metodi saplūst tajā ievietotos datus. ASV NSA izstrādātā daudzu tehnoloģiju galvenā sastāvdaļa, ko izmanto, lai šifrētu svarīgus raidījumus internetā. Parastās šifrēšanas metodes SSL un TLS, kuras jūs, iespējams, esat dzirdējušas, var izmantot hash funkciju, piemēram, SHA-1, lai izveidotu parakstītos sertifikātus, kas redzami pārlūkprogrammas rīkjoslā.

    Mēs neiesaistīsimies matemātikas un datorzinātnēs nevienā no SHA funkcijām, bet šeit ir pamatideja. “Hash” ir unikāls kods, kas balstīts uz jebkādu datu ievadi. Pat maza, nejauša burtu virkne, kas ievadīta hash funkcijā, piemēram, SHA-1, atgriezīs garu, noteiktu skaitu rakstzīmju, padarot to (iespējams) neiespējamu atgriezt rakstzīmju virkni atpakaļ uz sākotnējiem datiem. Tā parasti darbojas paroles glabāšana. Izveidojot paroli, serveris nomaina un saglabā paroli. Pēc atgriešanās, ievadot savu paroli, tā atkal tiek izjaukta. Ja tas atbilst oriģinālam, var uzskatīt, ka ievade ir tāda pati, un jums tiks piešķirta piekļuve jūsu datiem.

    Hash funkcijas ir noderīgas galvenokārt tāpēc, ka tās ļauj viegli pateikt, vai ir mainījusies ievade, piemēram, fails vai parole. Kad ievades dati ir slepeni, tāpat kā parole, hash ir gandrīz neiespējami mainīt un atgūt sākotnējos datus (pazīstams arī kā "atslēga"). Tas ir nedaudz atšķirīgs no “šifrēšanas”, kura mērķis ir datu šifrēšana, lai vēlāk to atšifrētu, izmantojot šifrēšanas un slepenās atslēgas. Hashes ir vienkārši domātas, lai nodrošinātu datu integritāti, lai pārliecinātos, ka viss ir vienāds. Git, versiju kontroles un izplatīšanas programmatūra atvērtā pirmkoda kodam, izmanto tieši SHA-1 hashes.

    Tas ir daudz tehniskas informācijas, bet vienkārši sakot: hash nav tas pats, kas šifrēšanai to izmanto, lai noteiktu, vai fails ir mainījies.

    Kā šī tehnoloģija ietekmē mani?

    Pieņemsim, ka jums ir nepieciešams apmeklēt vietni privāti. Jūsu banka, jūsu e-pasts, pat jūsu Facebook konta viss izmanto šifrēšanu, lai saglabātu tos datus, kurus tos nosūta privāti. Profesionāla tīmekļa vietne nodrošinās šifrēšanu, iegūstot uzticamas iestādes sertifikātu - trešo personu, kurai uzticams nodrošināt, lai šifrēšana notiktu līmenī, privāta starp vietni un lietotāju, un neviena cita puse to neuztraucas. Šīs attiecības ar trešo personu, sauktas Sertifikātu iestādes, vai CA, ir izšķiroša nozīme, jo jebkurš lietotājs var izveidot „pašparakstītu” sertifikātu - jūs pat varat to darīt pats datorā, kurā darbojas Linux ar Open SSL. Symantec un Digicert ir divi plaši pazīstami CA uzņēmumi.

    Izpildīsim teorētisku scenāriju: How-To Geek vēlas saglabāt pieteikšanos lietotāju sesijās privāti ar šifrēšanu, tāpēc tā lūdz CA, piemēram, Symantec, ar Sertifikāta parakstīšanas pieprasījums, vai CSR. Tie rada a publisko atslēgu un privātā atslēga internetā nosūtīto datu šifrēšanai un atšifrēšanai. CSR pieprasījums nosūta publisko atslēgu Symantec kopā ar informāciju par tīmekļa vietni. Symantec pārbauda atslēgu pret savu ierakstu, lai pārliecinātos, ka dati nav mainīti visām pusēm, jo ​​jebkura neliela datu izmaiņa padara hash radikāli atšķirīgu.

    Šīs publiskās atslēgas un digitālie sertifikāti ir parakstīti ar hash funkcijām, jo ​​šo funkciju izeja ir viegli redzama. Publiska atslēga un sertifikāts ar verificētu hash no Symantec (mūsu piemērā), iestāde, garantē lietotājam, kā to izmantot, lai atslēga būtu nemainīga un netiek nosūtīta no kāda ļaunprātīga.

    Tā kā hash ir viegli kontrolējams un neiespējams (daži varētu teikt „grūti”), lai atgrieztos, pareizais, pārbaudītais hash paraksts nozīmē, ka sertifikātu un savienojumu var uzticēt, un datus var vienoties par šifrēšanu no gala līdz beigām . Bet kas notiks, ja hash patiesībā nav unikāls?

    Kas ir sadursmes uzbrukums un vai tas ir iespējams reālajā pasaulē?

    Iespējams, esat dzirdējuši par „dzimšanas dienas problēmu” matemātikā, lai gan jūs, iespējams, neesat zinājuši, ko tas sauca. Pamatideja ir tāda, ka, ja jūs savācat pietiekami lielu cilvēku grupu, iespējams, ir diezgan augsts, ka diviem vai vairākiem cilvēkiem būs vienāda dzimšanas diena. Augstāks nekā jūs gaidījāt, patiesībā - pietiekami, ka tas šķiet dīvaina sakritība. Grupā, kas ir mazāka par 23 cilvēkiem, ir 50% varbūtība, ka divi dalīsies dzimšanas dienā.

    Tas ir raksturīgais vājums visās hashes, ieskaitot SHA-1. Teorētiski SHA funkcijai jārada unikāls hash jebkuram tajā ievietotajam datiem, bet, palielinoties hashes skaitam, kļūst lielāka iespēja, ka dažādi datu pāri var radīt to pašu hash. Tātad varētu izveidot neuzticamu sertifikātu ar identisku hash uz uzticamu sertifikātu. Ja viņi nokļūst, lai instalētu šo neuzticamo sertifikātu, tas var maskēties kā uzticams un izplatīt ļaunprātīgus datus.

    Atbilstošu hashes meklēšana divos failos tiek saukta par a sadursmes uzbrukums. Ir zināms, ka jau ir noticis vismaz viens liela mēroga sadursmes uzbrukums MD5 hashes. Taču 2017. gada 27. februārī Google paziņoja par SHAttered, pirmo reizi izstrādāto SHA-1 sadursmi. Google spēja izveidot PDF failu, kam bija tāds pats SHA-1 hash kā citam PDF failam, lai gan tam ir atšķirīgs saturs.

    SHAttered tika veikts PDF failā. PDF faili ir relatīvi brīvs faila formāts; daudzas sīkas, bitu līmeņa izmaiņas var veikt, neļaujot lasītājiem to atvērt vai radīt redzamas atšķirības. PDF faili bieži tiek izmantoti, lai piegādātu ļaunprātīgu programmatūru. Lai gan SHAttered varētu strādāt ar cita veida failiem, piemēram, ISO, sertifikāti ir stingri norādīti, un šāds uzbrukums ir maz ticams.

    Tātad, cik viegli ir šis uzbrukums? SHAttered tika balstīta uz metodi, ko 2012. gadā atklāja Marc Stevens, kas pieprasīja vairāk nekā 2 ^ 60,3 (9,223 kvintillionu) SHA-1 operācijas - pārsteidzošu numuru. Tomēr šī metode joprojām ir 100 000 reižu mazāk operāciju, nekā būtu nepieciešams, lai panāktu tādu pašu rezultātu ar brutālu spēku. Google konstatēja, ka ar 110 augstas kvalitātes grafikas kartēm, kas darbojas paralēli, sadursmes veikšanai būtu vajadzīgs aptuveni viens gads. Šī aprēķina laika iznomāšana no Amazon AWS izmaksātu apmēram 110 000 ASV dolāru. Paturiet prātā, ka, samazinoties datoru detaļām, un jūs varat iegūt lielāku jaudu mazāk, uzbrukumi, piemēram, SHAttered, kļūst vieglāk atvienojami.

    $ 110,000 var likties daudz, bet dažās organizācijās tas ir pieejamu cenu ziņā, kas nozīmē, ka reālās dzīves cybervillians varētu veidot digitālo dokumentu parakstus, traucēt dublējumkopiju un versiju kontroles sistēmām, piemēram, Git un SVN, vai padarīt ļaunprātīgu Linux ISO likumīgu.

    Par laimi, ir šādi mīkstinoši faktori, kas novērš šādus uzbrukumus. SHA-1 vairs netiek izmantots digitālajiem parakstiem. Sertifikātu iestādes vairs nesniedz sertifikātus, kas parakstīti ar SHA-1, un gan Chrome, gan Firefox ir atteikušies no tiem. Linux izplatīšana parasti izlaiž biežāk nekā reizi gadā, padarot uzbrucēju nepraktisku izveidot ļaunprātīgu versiju un pēc tam ģenerēt vienu polsterētu, lai iegūtu to pašu SHA-1 hash.

    No otras puses, daži uz SHAttered balstīti uzbrukumi jau notiek reālajā pasaulē. SVN versiju kontroles sistēma izmanto SHA-1, lai diferencētu failus. Divu PDF failu, kuriem ir identiskas SHA-1 hashes, augšupielāde uz SVN repozitoriju radīs tā bojājumu.

    Kā es varu pasargāt sevi no SHA-1 uzbrukumiem?

    Tipiskajam lietotājam nav daudz. Ja izmantojat kontrolsummas failu salīdzināšanai, izmantojiet SHA-2 (SHA-256) vai SHA-3, nevis SHA-1 vai MD5. Tāpat, ja jūs esat attīstītājs, pārliecinieties, ka izmantojat modernākus jaucējalgoritmus, piemēram, SHA-2, SHA-3 vai bcrypt. Ja jūs uztraucaties par to, ka SHAttered ir izmantots, lai dotu divus atšķirīgus failus vienā un tajā pašā hash, Google ir izlaidusi rīku SHAttered vietnē, kas var jums pārbaudīt.

    Image Kredīti: Lego Firefox, daudz Hash, lūdzu, nesāpiet tīmekļa autors nezināms, Google.