Kas ir redzams? SHA-1 sadursmes uzbrukumi, paskaidrots

Satura rādītājs:

Kas ir redzams? SHA-1 sadursmes uzbrukumi, paskaidrots
Kas ir redzams? SHA-1 sadursmes uzbrukumi, paskaidrots

Video: Kas ir redzams? SHA-1 sadursmes uzbrukumi, paskaidrots

Video: Kas ir redzams? SHA-1 sadursmes uzbrukumi, paskaidrots
Video: CS50 2015 - Week 1, continued - YouTube 2024, Novembris
Anonim
2016. gada pirmajā dienā Mozilla Firefox tīmekļa pārlūkprogrammā pārtrauca atbalstu drošības tehnoloģijas paātrināšanai, ko sauc par SHA-1. Gandrīz uzreiz viņi mainīja savu lēmumu, jo tas samazinātu piekļuvi dažām vecākām vietnēm. Bet 2017. gada februārī viņu bailes beidzot beidzās: pētnieki lauza SHA-1, radot pirmo reāllaika sadursmes uzbrukumu. Lūk, ko tas viss nozīmē.
2016. gada pirmajā dienā Mozilla Firefox tīmekļa pārlūkprogrammā pārtrauca atbalstu drošības tehnoloģijas paātrināšanai, ko sauc par SHA-1. Gandrīz uzreiz viņi mainīja savu lēmumu, jo tas samazinātu piekļuvi dažām vecākām vietnēm. Bet 2017. gada februārī viņu bailes beidzot beidzās: pētnieki lauza SHA-1, radot pirmo reāllaika sadursmes uzbrukumu. Lūk, ko tas viss nozīmē.

Kas ir SHA-1?

Image
Image

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ā.

Mēs neieviesīsim kādu no SHA funkcijām matemātikā un datorzinātnēs, bet šeit ir pamatideja. "Hash" ir unikāls kods, kas balstīts uz jebkuru datu ievadi. Pat maza, nejauša burtu virkne, kas ievadīta hash funkcijā, piemēram, SHA-1, atgriezīs garu, noteiktu rakstzīmju skaitu, padarot to (iespējams) neiespējamu atgriezt rakstzīmju virkni atpakaļ sākotnējiem datiem. Parasti tā parasti darbojas. Kad jūs izveidojat paroli, serveris to pārsūta un saglabā jūsu paroles ievadi. Kad jūs atgriezīsities, ievadot savu paroli, tas ir atkal pārsūtīts. Ja tas atbilst oriģinālam hasham, var pieņemt, ka ievadi ir tas pats, un jums tiks piešķirta piekļuve jūsu datiem.
Mēs neieviesīsim kādu no SHA funkcijām matemātikā un datorzinātnēs, bet šeit ir pamatideja. "Hash" ir unikāls kods, kas balstīts uz jebkuru datu ievadi. Pat maza, nejauša burtu virkne, kas ievadīta hash funkcijā, piemēram, SHA-1, atgriezīs garu, noteiktu rakstzīmju skaitu, padarot to (iespējams) neiespējamu atgriezt rakstzīmju virkni atpakaļ sākotnējiem datiem. Parasti tā parasti darbojas. Kad jūs izveidojat paroli, serveris to pārsūta un saglabā jūsu paroles ievadi. Kad jūs atgriezīsities, ievadot savu paroli, tas ir atkal pārsūtīts. Ja tas atbilst oriģinālam hasham, var pieņemt, ka ievadi ir tas pats, un jums tiks piešķirta piekļuve jūsu datiem.
Kafijas funkcijas ir noderīgas galvenokārt tādēļ, ka tās ļauj viegli noteikt, vai ieeja, piemēram, fails vai parole, ir mainījusies. Kad ievades dati ir noslēpti, piemēram, paroli, hash ir gandrīz neiespējami mainīt un atgūt oriģinālos datus (pazīstams arī kā "atslēgu"). Tas nedaudz atšķiras no "šifrēšanas", kura mērķis ir kodēt datus, lai tos vēlāk aprakstītu, izmantojot ciparus un slepenās atslēgas. Hashes ir vienkārši domāti, lai nodrošinātu datu integritāti - lai pārliecinātos, ka viss ir vienāds. Git, versijas kontroles un izplatīšanas programmatūra atvērtā pirmkoda gadījumā, šī iemesla dēļ izmanto SHA-1 hashes.
Kafijas funkcijas ir noderīgas galvenokārt tādēļ, ka tās ļauj viegli noteikt, vai ieeja, piemēram, fails vai parole, ir mainījusies. Kad ievades dati ir noslēpti, piemēram, paroli, hash ir gandrīz neiespējami mainīt un atgūt oriģinālos datus (pazīstams arī kā "atslēgu"). Tas nedaudz atšķiras no "šifrēšanas", kura mērķis ir kodēt datus, lai tos vēlāk aprakstītu, izmantojot ciparus un slepenās atslēgas. Hashes ir vienkārši domāti, lai nodrošinātu datu integritāti - lai pārliecinātos, ka viss ir vienāds. Git, versijas kontroles un izplatīšanas programmatūra atvērtā pirmkoda gadījumā, šī iemesla dēļ izmanto SHA-1 hashes.

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?

Image
Image

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.

Image
Image

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.

Šīs publiskās atslēgas un ciparu sertifikātus paraksta ar hash funkcijām, jo šo funkciju izejas ir viegli redzamas. Publiskā atslēga un sertifikāts ar verificētu hash no Symantec (mūsu piemērā), iestāde, garantē How-To Geek lietotājam, ka atslēga ir nemainīta un nav nosūtīta no ļaunprātīgas personas.
Šīs publiskās atslēgas un ciparu sertifikātus paraksta ar hash funkcijām, jo šo funkciju izejas ir viegli redzamas. Publiskā atslēga un sertifikāts ar verificētu hash no Symantec (mūsu piemērā), iestāde, garantē How-To Geek lietotājam, ka atslēga ir nemainīta un nav nosūtīta no ļaunprātīgas personas.
Image
Image

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.

Tas ir raksturīgais vājums visās hashes, tai skaitā SHA-1. Teorētiski SHA funkcijai ir jāizveido unikāls hash par visiem tajā ievadītajiem datiem, taču, palielinoties maizes skaitam, vairāk datu pāru var kļūt par vienu un to pašu hash.Tādējādi varētu izveidot neuzticamu sertifikātu ar identisku hash uz uzticamu sertifikātu. Ja viņi ieguva jums instalēt šo neuzticamo sertifikātu, tas varētu maskēties kā uzticams un izplatīt ļaunprātīgus datus.
Tas ir raksturīgais vājums visās hashes, tai skaitā SHA-1. Teorētiski SHA funkcijai ir jāizveido unikāls hash par visiem tajā ievadītajiem datiem, taču, palielinoties maizes skaitam, vairāk datu pāru var kļūt par vienu un to pašu hash.Tādējādi varētu izveidot neuzticamu sertifikātu ar identisku hash uz uzticamu sertifikātu. Ja viņi ieguva jums instalēt šo neuzticamo sertifikātu, tas varētu maskēties kā uzticams un izplatīt ļaunprātīgus datus.
Image
Image

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.

Ieteicams: