Kas ir SHA-1?
SHA SHA-1 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, kas satver tos datus, kas tajā ievietoti. Izstrādājusi ASV NSA, tā ir galvenā sastāvdaļa daudzām tehnoloģijām, ko izmanto, lai šifrētu svarīgas pārraides internetā. Kopējās šifrēšanas metodes, kuras jūs, iespējams, esat dzirdējuši, var izmantot hash funkciju, piemēram, SHA-1, lai izveidotu parakstītos sertifikātus, kurus redzat savā pārlūkprogrammas rīkjoslā.
Tas ir daudz tehniskās informācijas, bet vienkārši to teikt: hash nav tāda pati kā šifrēšana, jo to izmanto, lai noteiktu, vai fails ir mainījies.
Kā šī tehnoloģija ietekmē mani?
Pieņemsim, ka jums privāti jāapmeklē tīmekļa vietne. Jūsu banka, jūsu e-pasts, pat jūsu Facebook konts - visi izmanto šifrēšanu, lai saglabātu tos datus, kurus tos nosūta privātiem. Profesionāla tīmekļa vietne nodrošinās šifrēšanu, iegūstot sertifikātu no uzticamas iestādes - trešās personas, kura ir uzticēta, lai nodrošinātu, ka šifrēšana notiek starp tīmekļa vietni un lietotāju un nav piesaistīta nevienai citai pusei. Šī attiecība ar trešo personu, ko sauc Sertifikātu iestādes, vai CA, ir izšķiroša nozīme, jo jebkurš lietotājs var izveidot "pašparakstītu" sertifikātu - pat to varat izdarīt savā datorā, kurā darbojas Linux ar Open SSL. Symantec un Digicert ir, piemēram, divi plaši pazīstami CA uzņēmumi.
Apskatīsim teorētisko scenāriju: How-To Geek vēlas, lai šifrēšana tiktu saglabāta privāto lietotāju sesijās, tāpēc tā lūdz CA kā Symantec ar Sertifikāta parakstīšanas pieprasījums, vai CSR. Tie rada a publiskā atslēga un privātā atslēga lai šifrētu un atšifrētu datus, kas nosūtīti internetā. CSR pieprasījums nosūta Symantec publisko atslēgu kopā ar informāciju par vietni. Symantec pārbauda atslēgu pret tā ierakstu, lai pārliecinātos, ka visas puses nav mainījušas datus, jo jebkura neliela datu maiņa ļauj radīt ievērojamu atšķirību.
Tā kā hash ir viegli kontrolējams un neiespējams (daži varētu teikt, ka tas ir grūti), pareizais verificētais hash paraksts nozīmē, ka sertifikātu un savienojumu var uzticēt, un datiem var piekrist, ka tie tiks nosūtīti šifrēti no gala līdz beigām. Bet ko tad, ja hash nebija faktiski unikāls?
Kas ir sadursmes uzbrukums un vai tas ir iespējams reālajā pasaulē?
Jūs, iespējams, dzirdējāt par "Dzimšanas dienas problēmu" matemātikā, lai gan jūs, iespējams, nezināt, ko tā sauca. Pamata ideja ir tāda, ka, ja jūs uzkrājat pietiekami lielu cilvēku grupu, izredzes ir diezgan augstas, ka diviem vai vairākiem cilvēkiem būs tāda pati dzimšanas diena. Augstāks, nekā jūs sagaidāt, patiesībā, pietiekami, ka tas izskatās kā dīvaina sakritība. Grupā, kurā ir tikai 23 cilvēki, ir 50% iespēja, ka diviem būs dzimšanas diena.
Atbilstošās hashes divos failos tiek saukts par sadursmes uzbrukums. Ir zināms, ka vismaz viens liela mēroga sadursmes uzbrukums jau ir noticis MD5 hashes. Bet 2017. gada 27. februārī Google paziņoja par SHAttered, SHA-1 pirmo reizi izveidoto sadursmi. Google varēja izveidot PDF failu, kuram bija tas pats SHA-1 hash kā cits PDF fails, neraugoties uz atšķirīgu saturu.
SHAttered tika veikts PDF failā. PDF faili ir salīdzinoši brīvi faila formāti; daudzas mazas, bitu līmeņa izmaiņas var veikt, liedzot lasītājiem atvērt to vai radīt redzamas atšķirības. PDF failus bieži izmanto arī ļaunprātīgas programmatūras piegādei. Lai gan SHAttered varētu strādāt ar cita veida failiem, piemēram, ISO, sertifikāti tiek stingri norādīti, tādēļ šāds uzbrukums ir maz ticams.
Cik viegli ir šis uzbrukums veikt? SHAttered pamatā bija metode, kuru 2012. gadā atklāja Marks Stīvens, kam vajadzēja pārsniegt 2 ^ 60,3 (9,223 kvintillionu) SHA-1 operācijas - satriecošs skaitlis. Tomēr šī metode joprojām ir 100 000 reižu mazāk operāciju nekā vajadzētu, lai sasniegtu tādu pašu rezultātu ar brutālu spēku. Google konstatēja, ka ar 110 augstākās klases videokartēm, kas strādā paralēli, tas varētu aizņemt apmēram vienu gadu, lai radītu sadursmi. Iznomājot šo aprēķinu laiku no Amazon AWS, izmaksas būtu aptuveni 110 000 ASV dolāru. Paturiet prātā, ka, tā kā cenu kritums ir datora daļām, un jūs varat iegūt vairāk enerģijas mazāk, uzbrukumiem, piemēram, SHAttered kļūst vieglāk pull off.
110 000 ASV dolāru var šķist daudz, bet dažās organizācijās tas ir saistīts ar pieejamības jomu - tas nozīmē, ka reālās dzīves cybervillians varētu veidot ciparu dokumentu parakstus, traucēt dublējuma un versiju kontroles sistēmām, piemēram, Git un SVN, vai padarīt ļaunprātīgu Linux ISO parādītos likumīgi.
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 samazinājuši atbalstu tiem. Linux sadales parasti tiek izlaistas biežāk kā reizi gadā, tādēļ nav pievilcīgi, ja uzbrucējs izveido ļaunprātīgu versiju, un pēc tam ģenerē vienu polsterētu, lai tas pats SHA-1 hash.
No otras puses, daži uzbrukumi, kas balstīti uz SHAttered, jau notiek reālajā pasaulē. SVN versiju vadības sistēma izmanto SHA-1, lai atšķirtu failus. Augšupielādējot divus PDF failus ar identiskām SHA-1 maišām SVN repozitorijā, tas tiks sabojāts.
Kā es varu pasargāt sevi no SHA-1 uzbrukumiem?
Parastajam lietotājam nav daudz ko darīt. Ja lietojat kontrolsummas, lai salīdzinātu failus, jums vajadzētu izmantot SHA-2 (SHA-256) vai SHA-3, nevis SHA-1 vai MD5. Tāpat, ja esat izstrādātājs, noteikti izmantojiet modernākus mainīšanas algoritmus, piemēram, SHA-2, SHA-3 vai bcrypt. Ja jūs uztraucat, ka SHAttered ir izmantots, lai piešķirtu divus atšķirīgus failus vienā un tajā pašā maiņā, Google ir izlaidis rīku SHAttered vietnē, kas var jums pārbaudīt.
Attēlu kredīti: Lego Firefox, daudz nelaimes gadījumu, lūdzu, nekaitējiet Web autoram nezināmu, Google.