Mi az SHA-1?
Az SHA az SHA-1-ben áll Secure Hash algoritmus, és egyszerűen csak azt mondhatjuk, hogy ez egyfajta matematikai probléma vagy módszer a beillesztett adatokat megrázza. Az Egyesült Államok NSA által kifejlesztett változata számos olyan technológia alapvető eleme, amelyet a fontos internetes átvitelek titkosítására használnak. Közös titkosítási módszerek Az SSL és a TLS, amelyekről talán hallottál, használhatsz egy hash-funkciót, például az SHA-1-et, hogy létrehozhassa a böngésző eszköztárában látható aláírt tanúsítványokat.
Ez sok technikai információ, de egyszerűen azt mondja: a hash nem ugyanaz a titkosítás, mint azóta azonosítja a fájl megváltozását.
Hogyan befolyásolja ez a technológia?
Tegyük fel, hogy privát módon meg kell látogatnia egy webhelyet. A bankod, az e-mailed, még a Facebook-fiókod is - minden titkosítást használ, hogy megőrizze az adatok elküldését. A professzionális weboldal titkosítást fog nyújtani egy megbízható szervezettől - egy harmadik féltől származó tanúsítvány megszerzéséhez, amely bizalmat biztosít annak biztosításához, hogy a titkosítás a webhelyen és a felhasználó között magánszférában legyen, és senki más nem kémkedik. Ez a kapcsolat a harmadik féllel, az úgynevezett Tanúsító hatóságok, vagy CA, hiszen minden felhasználó létrehozhat egy "önaláírt" tanúsítványt - akár önállóan is végrehajthatja az Open SSL-t futtató gépen. A Symantec és a Digicert például két, széles körben ismert CA vállalat.
Futtassunk egy elméleti forgatókönyvet: a How-To Geek a felhasználók titkosított titkosításával szeretne naplózni a felhasználói munkameneteket, ezért egy CA-t, például a Symantec-et kér Tanúsítvány aláírási kérelem, vagy CSR. Hozzon létre egy nyilvános kulcs és privát kulcs az interneten keresztül küldött adatok titkosításához és visszafejtéséhez. A CSR kérelem elküldi a nyilvános kulcsot a Symantec-nek, valamint a weboldalra vonatkozó információkat. A Symantec ellenőrzi a kulcsot a rekordja ellenére, hogy ellenőrizze, hogy az adatok változatlanok-e az összes fél számára, mivel az apró változások az adatokban gyökeresen eltérnek a hashaktól.
Mivel a hash könnyen megfigyelhető és lehetetlen (egyesek azt mondják, hogy "nehéz"), a helyes, ellenőrzött hash aláírás azt jelenti, hogy a tanúsítvány és a kapcsolat megbízhatók, és az adatok elfogadhatóak a végfelhasználóról titkosítva. De mi van, ha a hash valójában nem volt egyedülálló?
Mi az ütközéses támadás és lehetséges 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, hogy mit hívnak. Az alapötlet az, hogy ha elég nagy számú embert gyűjti össze, akkor elég nagy a valószínűsége annak, hogy két vagy több embernek ugyanaz a születésnapja lesz. Magasabb, mint amire számítanánk, sőt - elég, hogy furcsa véletlennek tűnik. A 23 főnél kisebb csoportban 50% -os esély van arra, hogy kettő megosztja a születésnapot.
A megfelelő fájlok lekérdezését két fájlban a ütközéses támadás. Ismert, hogy legalább egy nagyszabású ütközéses támadás történt már az MD5 hashéziseknél. De a 2017. február 27-én a Google bejelentette SHAttered-et, az elsőként kialakított ütközést az SHA-1 számára. A Google képes volt létrehozni egy olyan PDF-fájlt, amely ugyanazt az SHA-1 hash-ot illette, mint egy másik PDF-fájlt, annak ellenére, hogy más tartalom van.
A SHAtteredet PDF fájlban hajtották végre. A PDF fájlok viszonylag laza formátumúak; sok apró, bitszintű változás megtehető, anélkül, hogy megakadályozná az olvasókat a megnyitás vagy bármilyen látható különbség kialakulásában. A PDF-eket gyakran használják rosszindulatú programok szállítására is. Miközben az SHAttered képes más típusú fájlokra dolgozni, mint például az ISO-k, a tanúsítványok mereven meg vannak határozva, ezért egy ilyen támadás nem valószínű.
Szóval mennyire egyszerű ez a támadás? A SHAttered egy olyan módszeren alapult, amelyet Marc Stevens felfedezett 2012-ben, ami több mint 2 ^ 60.3 (9.223 kvintillió) SHA-1 műveletet igényelt - ez egy megdöbbentő szám. Azonban ez a módszer még mindig 100 000-szer kevesebb műveletet tesz szükségessé, mint amit ugyanarra az eredményre lenne szükség a brute force-el. A Google úgy találta, hogy 110 csúcsminőségű grafikus kártya párhuzamosan működik, körülbelül egy évig tart, hogy összeütközésbe kerüljön. A számlázási idő Amazon AWS-ből történő bérbe vétele 110 ezer dollárba kerülne. Ne feledje, hogy mivel az árak csökkentik a számítógép alkatrészeit, és kevesebb energiát kaphat kevesebb, az SHAttered elleni támadások könnyebbé válnak.
110 ezer dollár tűnhet soknak, de bizonyos szervezetek számára a megfizethetőség területén belül van - ez azt jelenti, hogy a valós életben a cybervillians kovácsolhatna a digitális aláírásokból, zavarhatják a biztonsági és a verziókezelő rendszereket, mint például a Git és az SVN, vagy a rosszindulatú Linux-rendszernek törvényesnek tűnhet.
Szerencsére vannak enyhítő tényezők, amelyek megakadályozzák az ilyen támadásokat. Az SHA-1-et ritkán használják digitális aláírásra. A tanúsító hatóságok már nem biztosítanak az SHA-1-vel aláírt tanúsítványokat, és mind a Chrome, mind a Firefox támogatást adott nekik. A Linux disztribúciók általában évente gyakrabban kerülnek kiadásra, ezért nem támadható meg a támadó rosszindulatú változatot létrehozni, majd létrehozni egy párnázottat, hogy azonos SHA-1 hash legyen.
Másrészt néhány SHAttered alapú támadás már a való világban történik. Az SVN verzióvezérlő rendszer az SHA-1-et használja a fájlok megkülönböztetésére. A két PDF-fájlnak az azonos SHA-1 hashézishoz való feltöltése egy SVN-tárolóhoz sérülést okoz.
Hogyan védhetem meg magát az SHA-1 támadásoktól?
Nincs sok a tipikus felhasználó számára. Ha fájlokat hasonlít össze, akkor SHA-2 (SHA-256) vagy SHA-3-at kell használnia az SHA-1 vagy MD5 helyett. Hasonlóképpen, ha fejlesztő vagy, használjon modernabb hasítási algoritmusokat, például SHA-2, SHA-3 vagy bcrypt. Ha aggódik amiatt, hogy a SHAttered-t két különböző fájl megadására használták, a Google kiadott egy eszközt az SHAttered webhelyen, amely ellenőrizheti Önt.
Kép Credits: Lego Firefox, Sok Hash, kérjük, ne sérüljön a web ismeretlen szerzője, a Google.