Kas yra SHA-1?
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.
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?
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.
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.
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.
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".