Kas yra paslėpta? "SHA-1" sukrėtimai, paaiškinta

Turinys:

Kas yra paslėpta? "SHA-1" sukrėtimai, paaiškinta
Kas yra paslėpta? "SHA-1" sukrėtimai, paaiškinta

Video: Kas yra paslėpta? "SHA-1" sukrėtimai, paaiškinta

Video: Kas yra paslėpta?
Video: How to Enable Desktop Peek or Aero Peek in Windows 10 Tutorial - YouTube 2024, Balandis
Anonim
Pirmąją 2016 m. Mozilla nutraukė "Firefox" žiniatinklio naršyklės palaikymą susilpnėjusios saugumo technologijos pavadinimu SHA-1. Beveik iš karto jie pakeitė savo sprendimą, nes tai sumažintų prieigą prie kai kurių senesnių svetainių. Tačiau 2017 m. Vasario mėn. Jų baimės galiausiai įvyko: mokslininkai sudaužė SHA-1, sukurdami pirmąjį susidūrimų ataką realiuoju laiku. Štai ką tai reiškia.
Pirmąją 2016 m. Mozilla nutraukė "Firefox" žiniatinklio naršyklės palaikymą susilpnėjusios saugumo technologijos pavadinimu SHA-1. Beveik iš karto jie pakeitė savo sprendimą, nes tai sumažintų prieigą prie kai kurių senesnių svetainių. Tačiau 2017 m. Vasario mėn. Jų baimės galiausiai įvyko: mokslininkai sudaužė SHA-1, sukurdami pirmąjį susidūrimų ataką realiuoju laiku. Štai ką tai reiškia.

Kas yra SHA-1?

Image
Image

SHA-1 SHA-1 reiškia Saugus Hasho algoritmas, ir, tiesiog, jūs galite galvoti apie tai kaip matematikos problemą ar metodą natūra įstrigo į jį įvestus duomenis. Sukurta Jungtinių Valstijų NSA, tai yra pagrindinė daugelio technologijų, naudojamų svarbių duomenų perdavimui internete šifruoti, sudedamoji dalis. Paprasti šifravimo metodai SSL ir TLS, kuriuos galbūt girdėjote, gali naudoti hash funkciją, pvz., SHA-1, kad sukurtumėte pasirašytus pažymėjimus, kuriuos matote naršyklės įrankių juostoje.

Mes neapsimokime bet kurios SHA funkcijos matematikos ir informatikos moksle, bet čia yra pagrindinė idėja. "Hash" yra unikalus kodas, pagrįstas bet kokių duomenų įvedimu. Net maža, atsitiktine eilučių raidėmis, įvesta į hash funkciją, tokią kaip SHA-1, grąžins ilgą, nustatytą ženklų skaičių, dėl to (potencialiai) neįmanoma atkurti simbolių eilutės atgal į pradinius duomenis. Taip paprastai veikia slaptažodžių saugykla. Kai kuriate slaptažodį, slaptažodis įvedamas serveriu ir saugomas. Kai grįšite, kai įvedate savo slaptažodį, jis vėl trūksta. Jei jis atitinka originalų maišą, galima laikyti, kad įvestis yra ta pati, ir jums bus suteikta prieiga prie jūsų duomenų.
Mes neapsimokime bet kurios SHA funkcijos matematikos ir informatikos moksle, bet čia yra pagrindinė idėja. "Hash" yra unikalus kodas, pagrįstas bet kokių duomenų įvedimu. Net maža, atsitiktine eilučių raidėmis, įvesta į hash funkciją, tokią kaip SHA-1, grąžins ilgą, nustatytą ženklų skaičių, dėl to (potencialiai) neįmanoma atkurti simbolių eilutės atgal į pradinius duomenis. Taip paprastai veikia slaptažodžių saugykla. Kai kuriate slaptažodį, slaptažodis įvedamas serveriu ir saugomas. Kai grįšite, kai įvedate savo slaptažodį, jis vėl trūksta. Jei jis atitinka originalų maišą, galima laikyti, kad įvestis yra ta pati, ir jums bus suteikta prieiga prie jūsų duomenų.
Hasho funkcijos yra naudingos, pirmiausia todėl, kad jas lengva nustatyti, ar pasikeitė įvestis, pavyzdžiui, failas ar slaptažodis. Kai įvesties duomenys yra slapti, pvz., Slaptažodis, hash yra beveik neįmanoma pakeisti ir susigrąžinti pradinius duomenis (taip pat žinomas kaip "raktas"). Tai šiek tiek skiriasi nuo "šifravimo", kurio tikslas yra duomenų šlifavimas, siekiant vėliau jį descramblinguoti, naudojant šifratus ir slaptus raktus. Hashes tiesiog yra skirtos užtikrinti duomenų vientisumą - įsitikinti, kad viskas yra ta pati. Dėl šios priežasties "Git", atvirojo kodo versijos valdymo ir paskirstymo programinė įranga, naudoja SHA-1 maišus.
Hasho funkcijos yra naudingos, pirmiausia todėl, kad jas lengva nustatyti, ar pasikeitė įvestis, pavyzdžiui, failas ar slaptažodis. Kai įvesties duomenys yra slapti, pvz., Slaptažodis, hash yra beveik neįmanoma pakeisti ir susigrąžinti pradinius duomenis (taip pat žinomas kaip "raktas"). Tai šiek tiek skiriasi nuo "šifravimo", kurio tikslas yra duomenų šlifavimas, siekiant vėliau jį descramblinguoti, naudojant šifratus ir slaptus raktus. Hashes tiesiog yra skirtos užtikrinti duomenų vientisumą - įsitikinti, kad viskas yra ta pati. Dėl šios priežasties "Git", atvirojo kodo versijos valdymo ir paskirstymo programinė įranga, naudoja SHA-1 maišus.

Tai yra daug techninės informacijos, bet tiesiog ją supratau: hash nėra tas pats, kaip šifravimas, nes jis naudojamas nustatyti, ar failas pasikeitė.

Kaip ši technologija man įtakoja?

Image
Image

Tarkime, kad turėtumėte aplankyti svetainę privačiai. Jūsų bankas, jūsų el. Paštas, netgi jūsų "Facebook" paskyra, visi naudoja šifravimą, kad jūsų siunčiami duomenys būtų privatūs. Profesionalus tinklalapis užtikrins šifravimą, gavus sertifikatą iš patikimos institucijos - trečiosios šalies, patikimos siekiant užtikrinti, kad šifravimas būtų lygus, privatus tarp svetainės ir naudotojo, o jo nepažeista kita šalis. Tai ryšys su trečiąja šalimi, vadinamas Sertifikato institucijos, arba CA, yra itin svarbus, nes bet kuris vartotojas gali sukurti "savarankiškai pasirašytą" sertifikatą - netgi galite tai padaryti patys kompiuteryje, kuriame veikia "Linux" su "Open SSL". "Symantec" ir "Digicert" yra, pavyzdžiui, dvi plačiai žinomos CA bendrovės.

Image
Image

Peržiūrėkime teorinį scenarijų: "How-To Geek" nori, kad šifravimo metu prisijungtų prie vartotojų sesijų privatūs, todėl prašo "CA" kaip "Symantec" su Sertifikato pasirašymo užklausa, arba CSR. Jie sukuria viešasis raktas ir privatus raktas šifruoti ir iššifruoti per internetą siunčiamus duomenis. Užklausa dėl ĮSA siunčia "Symantec" viešąjį raktą kartu su informacija apie svetainę. Symantec patikrina raktą nuo jo įrašo, kad patikrintų, ar visos šalys nepakeitė duomenų, nes dėl nedidelių duomenų pakeitimų maišas iš esmės skiriasi.

Šie viešieji raktiniai žodžiai ir skaitmeniniai sertifikatai pasirašomi maišos funkcijomis, nes šių funkcijų išvestis yra lengva pamatyti. Viešasis raktas ir sertifikatas su patvirtintu "hash" iš "Symantec" (mūsų pavyzdyje), institucija, užtikrina "How-To Geek" naudotoją, kad raktas yra nepakeistas, o ne iš kurio nors kenkėjiškos.
Šie viešieji raktiniai žodžiai ir skaitmeniniai sertifikatai pasirašomi maišos funkcijomis, nes šių funkcijų išvestis yra lengva pamatyti. Viešasis raktas ir sertifikatas su patvirtintu "hash" iš "Symantec" (mūsų pavyzdyje), institucija, užtikrina "How-To Geek" naudotoją, kad raktas yra nepakeistas, o ne iš kurio nors kenkėjiškos.
Image
Image

Kadangi maišos yra lengva stebėti ir neįmanoma (kai kurie sako "sunku") pakeisti, teisingas, patvirtintas hash parašas reiškia, kad sertifikatas ir ryšys gali būti patikimi, o duomenis galima sutikti, kad jie būtų siunčiami šifruodami nuo pabaigos iki pabaigos. Bet kas, jei maišas nebuvo tikrai unikalus?

Kas yra susidūrimo ataka, ar tai įmanoma realiame pasaulyje?

Galbūt girdėjote apie "Gimtadienio problemą" matematikos srityje, nors galbūt nežinojote, ką ji vadinama. Pagrindinė idėja yra tai, kad, jei surinksite pakankamai didelę žmonių grupę, galimybės yra gana didelės, kad du ar daugiau žmonių turės tą patį gimtadienį. Didesnė, nei jūs tikėjotės, iš tikrųjų - pakankamai to, kad panašu į keistą sutapimą. Grupėje maždaug 23 žmonės turi 50% tikimybę, kad du bus pasidalinti gimtadieniu.

Tai būdingas silpnumas visose hasse, įskaitant SHA-1. Teoriškai SHA funkcija turėtų sukurti unikalų maišą bet kokiems į ją įvestiems duomenims, tačiau, kadangi didėja maišų skaičius, tampa labiau tikėtina, kad skirtingos duomenų poros gali sukurti tą patį maišą.Taigi būtų galima sukurti nepatikimą sertifikatą su identiška maiše ir patikimu sertifikatu. Jei jie privers jus įdiegti šį nepatikimą sertifikatą, jis gali būti maskuotas kaip patikimas ir platinti kenksmingus duomenis.
Tai būdingas silpnumas visose hasse, įskaitant SHA-1. Teoriškai SHA funkcija turėtų sukurti unikalų maišą bet kokiems į ją įvestiems duomenims, tačiau, kadangi didėja maišų skaičius, tampa labiau tikėtina, kad skirtingos duomenų poros gali sukurti tą patį maišą.Taigi būtų galima sukurti nepatikimą sertifikatą su identiška maiše ir patikimu sertifikatu. Jei jie privers jus įdiegti šį nepatikimą sertifikatą, jis gali būti maskuotas kaip patikimas ir platinti kenksmingus duomenis.
Image
Image

Dviejų rinkmenų paieška atitinka du failus yra vadinama susidūrimo ataka. Yra žinoma, kad bent jau vienas didelio masto susidūrimo atakas MD5 maišams jau įvyko. Tačiau 2017 m. Vasario 27 d. "Google" paskelbė "SHAttered", pirmą kartą sukurtą "SHA-1" susidūrimą. "Google" galėjo sukurti PDF failą, kuriame buvo tas pats SHA-1 maišas kaip kitas PDF failas, nepaisant skirtingo turinio.

SHAttered buvo atliktas PDF rinkmenoje. PDF yra palyginti laisvas failo formatas; Daug mažų bitų lygio pakeitimų galima padaryti, neleidžiant skaitytojams ją atidaryti arba sukelti pastebimus skirtumus. PDF failai taip pat dažnai naudojami kenkėjiškų programų pristatymui. Nors SHAttered galėtų dirbti su kitais failų tipais, pvz., ISO, sertifikatai yra griežtai apibrėžti, todėl tokia ataka yra mažai tikėtina.

Taigi, kaip lengva atlikti šį ataką? SHAttered buvo pagrįstas 2012 m. Marco Stevenso nustatytu metodu, kurio metu reikėjo daugiau kaip 2 ^ 60,3 (9.223 kvintilio) SHA-1 operacijų - stulbinantis skaičius. Tačiau šis metodas vis dar turi 100 000 kartų mažiau operacijų, nei būtų reikalaujama pasiekti tą patį rezultatą su brutalia jėga. "Google" nustatė, kad lygiagrečiai dirbant su 110 aukščiausios klasės grafikos plokštėmis, dėl susidūrimo susidėvės maždaug vienerius metus. Apskaičiuojant šį laiką iš "Amazon AWS" išsinuomotų automobilių kaina kainavo apie 110 000 JAV dolerių. Turėkite omenyje, kad kai kompiuterio dalys sumažėja, o jūs galite gauti daugiau energijos mažiau, išpuolių, tokių kaip SHAttered, lengviau ištraukti.

110 000 USD gali atrodyti labai daug, tačiau kai kuriose organizacijose tai yra įperkamos veiklos rūšis. Tai reiškia, kad tikrosios gyvensenos kibervenilai gali suklijuoti skaitmeninius dokumentų parašus, trukdyti atsarginėms ir versijų valdymo sistemoms, pvz., Git ir SVN, arba padaryti kenksmingą "Linux ISO" teisėtą.

Laimei, tokie išpuoliai užkerta kelią švelninantys veiksniai. SHA-1 retai naudojamas skaitmeniniams parašams. Sertifikato institucijos nebeteikia pažymėjimų, pasirašytų su SHA-1, o "Chrome" ir "Firefox" - jų pagalba. "Linux distribucijos dažniausiai išleidžiamos dažniau nei kartą per metus, todėl užpuolikas negali sukurti kenksmingos versijos, o po to sugadinti vieną, kad būtų tas pats SHA-1 maišas.

Kita vertus, kai kurie atakos, grindžiamos SHAttered, jau vyksta realiame pasaulyje. SVN versijų valdymo sistema naudoja SHA-1, kad atskirtų failus. Įkėlus du PDF failus su identiškais SHA-1 maišais į SVN saugyklą, jis bus sugadintas.

Kaip apsaugoti save nuo SHA-1 atakų?

Paprastai vartotojui nereikia daug ką padaryti. Jei naudojate kontrolines sumas norėdami palyginti failus, turėtumėte naudoti SHA-2 (SHA-256) arba SHA-3, o ne SHA-1 ar MD5. Panašiai, jei esate kūrėjas, būtinai naudokite šiuolaikinius maišymo algoritmus, tokius kaip SHA-2, SHA-3 ar bcrypt. Jei esate susirūpinę, kad SHAttered buvo naudojamas tam, kad du skirtingi failai būtų duodami tą patį maišą, "Google" išleido įrankį SHAttered svetainėje, kuri gali patikrinti jus.

Image Credits: "Lego Firefox", "Nemažai" "Hash", prašau nepažeisti nežinomo "Web" autoriaus, "Google".

Rekomenduojamas: