Mi van itt? SHA-1 ütközéses támadások, magyarázatok

Tartalomjegyzék:

Mi van itt? SHA-1 ütközéses támadások, magyarázatok
Mi van itt? SHA-1 ütközéses támadások, magyarázatok

Videó: Mi van itt? SHA-1 ütközéses támadások, magyarázatok

Videó: Mi van itt? SHA-1 ütközéses támadások, magyarázatok
Videó: How to Enable Desktop Peek or Aero Peek in Windows 10 Tutorial - YouTube 2024, Lehet
Anonim
2016 első napján a Mozilla megszüntette a gyengülő biztonsági technológiának az SHA-1 használatát a Firefox böngészőjében. Szinte azonnal visszavonták döntésüket, mivel ez rontott volna néhány régebbi weboldalra. De 2017 februárjában a félelmeik végre megvalósultak: a kutatók megtörték az SHA-1-et azáltal, hogy létrehozták az első valós ütközéses támadást. Íme, ez mit jelent.
2016 első napján a Mozilla megszüntette a gyengülő biztonsági technológiának az SHA-1 használatát a Firefox böngészőjében. Szinte azonnal visszavonták döntésüket, mivel ez rontott volna néhány régebbi weboldalra. De 2017 februárjában a félelmeik végre megvalósultak: a kutatók megtörték az SHA-1-et azáltal, hogy létrehozták az első valós ütközéses támadást. Íme, ez mit jelent.

Mi az SHA-1?

Image
Image

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.

Nem fogunk mélyen belemenni a matematika és a számítástechnika bármely SHA funkciók, de itt az alapötlet. A "hash" egy egyedi kód, amely bármely adat bevitelén alapul. Még a kicsi, véletlenszerű karakterláncok is beírják a SHA-1 hash függvényébe, így hosszú, meghatározott számú karaktert adnak vissza, így lehetetlenné téve a karakterek karakterláncának visszaállítását az eredeti adatokra. Így működik a jelszavas tárolás. Jelszó létrehozásakor a jelszó bevitele el van törölve és a szerver tárolja. Visszatéréskor, amikor beírja a jelszavát, újra megismétlődik. Ha megegyezik az eredeti hash-szal, akkor a bemenet feltételezhetően azonos, és hozzáférést biztosít az adatokhoz.
Nem fogunk mélyen belemenni a matematika és a számítástechnika bármely SHA funkciók, de itt az alapötlet. A "hash" egy egyedi kód, amely bármely adat bevitelén alapul. Még a kicsi, véletlenszerű karakterláncok is beírják a SHA-1 hash függvényébe, így hosszú, meghatározott számú karaktert adnak vissza, így lehetetlenné téve a karakterek karakterláncának visszaállítását az eredeti adatokra. Így működik a jelszavas tárolás. Jelszó létrehozásakor a jelszó bevitele el van törölve és a szerver tárolja. Visszatéréskor, amikor beírja a jelszavát, újra megismétlődik. Ha megegyezik az eredeti hash-szal, akkor a bemenet feltételezhetően azonos, és hozzáférést biztosít az adatokhoz.
A Hash funkciók elsősorban azért hasznosak, mert könnyebben megmondják, hogy a bemenet, például egy fájl vagy jelszó megváltozott-e. Amikor a bemeneti adatok titkosak, mint például a jelszó, a hash szinte lehetetlen visszafordítani és visszaállítani az eredeti adatokat (más néven a "kulcs"). Ez egy kicsit különbözik a "titkosítás" -tól, amelynek célja adat titkosítása annak érdekében, hogy ezt később visszaírja, titkosítókkal és titkos kulcsokkal. A hackok egyszerűen az adat integritását biztosítják - annak biztosítása érdekében, hogy minden ugyanaz legyen. A Git, a nyílt forráskódú verzióvezérlő és -elosztó szoftver, éppen ezért használja az SHA-1 hashajtókat.
A Hash funkciók elsősorban azért hasznosak, mert könnyebben megmondják, hogy a bemenet, például egy fájl vagy jelszó megváltozott-e. Amikor a bemeneti adatok titkosak, mint például a jelszó, a hash szinte lehetetlen visszafordítani és visszaállítani az eredeti adatokat (más néven a "kulcs"). Ez egy kicsit különbözik a "titkosítás" -tól, amelynek célja adat titkosítása annak érdekében, hogy ezt később visszaírja, titkosítókkal és titkos kulcsokkal. A hackok egyszerűen az adat integritását biztosítják - annak biztosítása érdekében, hogy minden ugyanaz legyen. A Git, a nyílt forráskódú verzióvezérlő és -elosztó szoftver, éppen ezért használja az SHA-1 hashajtókat.

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?

Image
Image

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.

Image
Image

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.

Ezek a nyilvános kulcsok és a digitális tanúsítványok hash függvényekkel vannak aláírva, mert ezeknek a funkcióknak a kimenetét könnyű látni. A Symantec (a mi példánkban) ellenőrzött hash-kulcsú nyilvános kulcs és tanúsítvány, egy hatóság, biztosítja a How-To Geek felhasználóját, hogy a kulcs változatlan maradjon, és nem küldött rosszindulatúnak.
Ezek a nyilvános kulcsok és a digitális tanúsítványok hash függvényekkel vannak aláírva, mert ezeknek a funkcióknak a kimenetét könnyű látni. A Symantec (a mi példánkban) ellenőrzött hash-kulcsú nyilvános kulcs és tanúsítvány, egy hatóság, biztosítja a How-To Geek felhasználóját, hogy a kulcs változatlan maradjon, és nem küldött rosszindulatúnak.
Image
Image

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.

Ez az összes hiba inherens gyengesége, beleértve az SHA-1-et is. Elméletileg az SHA függvénynek egyedi adatokat kell létrehoznia a beillesztett adatok számára, de a hasok száma növekszik, valószínűbbé válik, hogy az eltérő pár adatok ugyanazt a hashot hozhatják létre.Tehát egy megbízhatatlan bizonyítványt létrehozhat egy azonos hashval egy megbízható tanúsítványhoz. Ha megkapnák, hogy telepítsék ezt a megbízhatatlan tanúsítványt, akkor a maszkolás megbízható, és rosszindulatú adatokat terjeszthet.
Ez az összes hiba inherens gyengesége, beleértve az SHA-1-et is. Elméletileg az SHA függvénynek egyedi adatokat kell létrehoznia a beillesztett adatok számára, de a hasok száma növekszik, valószínűbbé válik, hogy az eltérő pár adatok ugyanazt a hashot hozhatják létre.Tehát egy megbízhatatlan bizonyítványt létrehozhat egy azonos hashval egy megbízható tanúsítványhoz. Ha megkapnák, hogy telepítsék ezt a megbízhatatlan tanúsítványt, akkor a maszkolás megbízható, és rosszindulatú adatokat terjeszthet.
Image
Image

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.

Ajánlott: