Homepage » hogyan kell » Mi a SHAttered? SHA-1 ütközési támadások, magyarázat

    Mi a SHAttered? SHA-1 ütközési támadások, magyarázat

    2016 első napján a Mozilla megszüntette a SHA-1 nevű gyengülő biztonsági technológia támogatását a Firefox böngészőjében. Majdnem rögtön megfordították a döntést, mivel csökkentette a régebbi weboldalakhoz való hozzáférést. 2017 februárjában azonban a félelmük végül megtörtént: a kutatók megszakították az SHA-1-et az első valós ütközési támadás megteremtésével. Ez az, ami mindent jelent.

    Mi az SHA-1?

    Az SHA-1-ben az SHA-t jelenti Biztonságos Hash algoritmus, és egyszerűen azt mondhatjuk, hogy ez egyfajta matematikai probléma vagy módszer összeszorítja a benne lévő adatokat. Az Egyesült Államok NSA által kifejlesztett, számos fontos technológia kulcsfontosságú eleme az interneten történő fontos átvitel titkosításának. Az SSL és a TLS közös titkosítási módszerei, amelyeket esetleg hallottak, a SHA-1-et használó hash függvényt használhatják a böngésző eszköztárában látható aláírt tanúsítványok létrehozásához.

    Nem megyünk mélyen a SHA-függvények matematikai és informatikai tudományába, de itt az alapötlet. A „hash” egy egyedi kód, amely bármilyen adat bevitelén alapul. Még a kis, véletlenszerű karakterláncok is, amelyek az SHA-1-hez hasonló hash függvénybe kerülnek, hosszú, meghatározott számú karaktert adnak vissza, ami lehetetlenné teszi a karakterlánc visszaállítását az eredeti adatokhoz. Így működik rendszerint a jelszó tárolás. Amikor létrehoz egy jelszót, a jelszó bevitelét a szerver megőrzi és tárolja. Visszatérésekor, amikor beírja a jelszavát, ismét megtörténik. Ha ez megegyezik az eredeti hash-vel, akkor a bemenet ugyanaz lehet, és hozzáférést kap az adatokhoz.

    A Hash funkciók elsősorban azért használhatók, mert könnyen megmondják, hogy megváltozott-e a bemenet, például egy fájl vagy jelszó. Amikor a bemeneti adatok titkosak, mint egy jelszó, a hash csaknem lehetetlen visszaállítani és visszaállítani az eredeti adatokat (más néven „kulcs”). Ez egy kicsit más, mint a „titkosítás”, amelynek célja a titkosítás és titkos kulcsok felhasználásával későbbi kódolás. A hasadékok egyszerűen az adatok integritásának biztosítására szolgálnak, hogy minden azonos legyen. Git, a nyílt forráskódú verziókezelő és -elosztó szoftver, ezért az SHA-1 hashokat használja.

    Ez egy csomó technikai információ, de egyszerûen: a hash nem ugyanaz, mint a titkosítás azt használják, hogy azonosítsa, hogy egy fájl megváltozott-e.

    Hogyan befolyásolja ezt a technológiát?

    Tegyük fel, hogy magának kell látogatnia egy webhelyet. Az Ön bankja, e-mailje, még a Facebook-fiókja is használja a titkosítást, hogy az adatokat elküldhesse privátnak. A professzionális weboldal titkosítást biztosít egy megbízható hatóságtól, egy harmadik féltől származó tanúsítvány megszerzésével, amely megbízhatóan biztosítja, hogy a titkosítás a webhely és a felhasználó közötti szinten, magánszemélyektől függetlenül legyen, és egyik másik fél ne nézzen rá. Ez a kapcsolat a harmadik féllel Tanúsítvány-hatóságok, vagy CA, kulcsfontosságú, mivel bármely felhasználó létrehozhat egy „önaláírt” tanúsítványt - azt is megteheti egy olyan gépen, amelyen Linux van Open SSL-lel. A Symantec és a Digicert két jól ismert CA vállalat, például.

    Futtassunk egy elméleti forgatókönyvet: a How-To Geek a titkosítással a felhasználók munkameneteiben privát állapotban tartja a bejelentkezést, így a Symantechez hasonló CA-t egy olyan Tanúsítvány aláírási kérés, vagy CSR. Létrehoznak egy nyilvános kulcs és privát kulcs az interneten küldött adatok titkosításához és dekódolásához. A CSR-kérelem elküldi a nyilvános kulcsot a Symantec-hez, a honlapról szóló információkkal együtt. A Symantec ellenőrzi a kulcsot a rekordja ellen, hogy ellenőrizze, hogy az összes fél nem módosította-e az adatokat, mivel az adatok kis változása miatt a hash radikálisan különbözik.

    Ezeket a nyilvános kulcsokat és digitális tanúsítványokat hash függvények írják alá, mivel ezeknek a funkcióknak a kimenete könnyen látható. A Symantec által hitelesített hash (nyilvánosságra hozott) nyilvános kulcs és tanúsítvány (példánkban), a hatóság, biztosítja a How-To Geek felhasználójának, hogy a kulcs változatlan marad, és nem küld egy rosszindulatú személyt.

    Mivel a hash könnyen megfigyelhető és lehetetlenné válik (egyesek azt mondják, hogy "nehéz"), hogy visszaforduljon, a helyes, hitelesített hash aláírás azt jelenti, hogy a tanúsítvány és a kapcsolat megbízható, és az adatok megállapodhatnak a titkosított adatok végéről a végéig. . De mi van, ha a hash valójában nem volt egyedülálló?

    Mi az ütközési támadás, és lehetséges-e a valós világban?

    Lehet, hogy hallottál a matematika „születésnapi problémájáról”, bár lehet, hogy nem tudtad, mi volt az úgynevezett. Az alapötlet az, hogy ha elég nagy csoportot gyűjtöttek össze, az esélye meglehetősen magas, hogy két vagy több embernek ugyanaz a születésnapja lesz. Magasabb, mint amire számíthatsz, sőt, elég furcsa egybeesésnek tűnik. A 23 fős csoportban 50% -os esély van arra, hogy a két születésnapja legyen.

    Ez az összes hash-ben rejlő gyengeség, beleértve az SHA-1-t is. Elméletileg az SHA-függvénynek egyedülálló hash-t kell létrehoznia a benne lévő adatokra, de mivel a hashok száma nő, valószínűbb, hogy a különböző adatpárok ugyanazt a hash-ot hozhatják létre. Tehát egy megbízhatatlan tanúsítványt egy megbízható tanúsítvánnyal azonos azonosítóval lehet létrehozni. Ha eljuttatják, hogy telepítsék a megbízhatatlan tanúsítványt, akkor megbízhatatlanná válhat, és rosszindulatú adatokat terjeszthet.

    A két fájlban található megfelelő hashok keresése a ütközési támadás. Ismert, hogy legalább egy nagy ütközési támadás történt az MD5 hash esetében. 2017. február 27-én azonban a Google bejelentette az SHAttered-et, amely az SHA-1-hez készült első ütközés volt. A Google képes volt létrehozni egy olyan PDF fájlt, amely ugyanolyan SHA-1 hash-t kapott, mint egy másik PDF-fájl, annak ellenére, hogy eltérő tartalmú.

    A SHAttered PDF fájlban történt. A PDF-fájlok viszonylag laza fájlformátum; sok apró, bitszintű változtatás érhető el anélkül, hogy megakadályozná az olvasók megnyitását vagy látható különbségeket. A PDF-fájlokat gyakran használják a rosszindulatú programok szállítására is. Míg a SHAttered más típusú fájlokra is képes dolgozni, mint például az ISO-k, a tanúsítványok szigorúan meg vannak határozva, így ilyen támadás nem valószínű.

    Tehát milyen könnyű ez a támadás? A SHAttered a Marc Stevens által 2012-ben felfedezett módszeren alapult, amely több mint 2 ^ 60,3 (9,223 kvintillion) SHA-1 műveletet igényelt - megdöbbentő szám. Ez a módszer azonban még mindig 100 000-szer kevesebb műveletet jelent, mint amennyi ahhoz szükséges, hogy ugyanazt az eredményt elérjék a nyers erővel. A Google azt találta, hogy 110 csúcsminőségű grafikus kártyával párhuzamosan egy évre van szükség, hogy ütközés történjen. Az Amazon AWS-től történő számítási idő körülbelül 110 000 dollárba kerül. Ne feledje, hogy az árak csökkenése miatt a számítógép alkatrészei, és kevesebb energiát kaphatnak, a SHAttered támadások könnyebbé válnak.

    A 110 000 dollár soknak tűnhet, de egyes szervezetek számára a megfizethetőség területén belül van - ami azt jelenti, hogy a valós élet cybervillianusai digitális dokumentum aláírásokat hozhatnak létre, zavarhatják a biztonsági mentési és verziót vezérlő rendszereket, mint például a Git és az SVN, vagy hogy rosszindulatú Linuxot hoznak jogosnak.

    Szerencsére enyhítő tényezők vannak az ilyen támadások megelőzésére. Az SHA-1 már ritkán használatos a digitális aláíráshoz. A Hitelesítés-szolgáltató már nem nyújt tanúsítványokat, amelyeket az SHA-1-vel írtak alá, és mind a Chrome, mind a Firefox elutasította őket. A Linux disztribúciók általában évente gyakrabban bocsátanak ki, így a támadó számára nem célszerű rosszindulatú verziót létrehozni, és egy párnázottat létrehozni, hogy ugyanaz a SHA-1 hash.

    Másrészről, néhány, a SHAtteredre épülő támadás már a valós világban történik. Az SVN verziókezelő rendszer a SHA-1-et használja a fájlok megkülönböztetéséhez. Az azonos SHA-1 hash-okkal rendelkező két PDF-fájl feltöltése SVN-tárolóba rontja.

    Hogyan tudom megvédeni magát az SHA-1 támadásoktól?

    A tipikus felhasználónak sokat nem kell tennie. Ha ellenőrzőösszegeket használ a fájlok összehasonlításához, akkor SHA-2-et (SHA-256) vagy SHA-3-t kell használni az SHA-1 vagy az MD5 helyett. Hasonlóképpen, ha fejlesztő vagy, ne felejtse el, hogy használjon modernebb hasítási algoritmusokat, mint például SHA-2, SHA-3 vagy bcrypt. Ha aggódik, hogy a SHAttered-et két különböző fájl ugyanazzal a hash-el adta, a Google kiadott egy eszközt az SHAttered webhelyen, amely ellenőrizheti az Ön számára.

    Képkreditek: Lego Firefox, sok hasadék, kérlek ne sértsd meg a webes szerzőt, a Google.