Hátsó ajtó

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2022. október 1-jén felülvizsgált verziótól ; az ellenőrzéshez 1 szerkesztés szükséges .

Hátsó ajtó , titkos bejárat (az angol  hátsó ajtóból  - "hátsó ajtó", szó szerint "hátsó ajtó") - az algoritmus hibája, amelyet a fejlesztő szándékosan épített be, és lehetővé teszi az adatokhoz való jogosulatlan hozzáférést vagy az operációs rendszer távvezérlését és a számítógép egésze [1] .

A hátsó ajtók fő célja, hogy rejtetten és gyorsan hozzáférjenek a legtöbb esetben titkosított és védett adatokhoz. Például egy hátsó ajtó beépíthető a titkosítási algoritmusba a biztonságos csatorna támadó általi későbbi lehallgatásához [1] [2] .

A hátsó ajtó fő tulajdonságai

A tökéletes hátsó ajtó
  • nehezen észlelhető;
  • többször is használható;
  • könnyű tagadni - hibának tűnik, és észlelés esetén a fejlesztő hivatkozhat arra, hogy véletlenül követte el ezt a hibát, és nem volt rossz szándéka;
  • csak akkor használjuk ki, ha ismerjük a titkot - csak az használhatja, aki tudja, hogyan aktiválódik a hátsó ajtó;
  • védve van a korábbi felhasználások általi kompromittálással szemben – még ha egy hátsó ajtót felfedeztek is, lehetetlen megállapítani, hogy azt korábban ki használta ki, és milyen információkat szerzett a támadó;
  • nehéz megismételni - még ha a hátsó ajtót valaki megtalálta is, nem lehet használni más kódban vagy másik eszközben.
Általános elvek a hátsó ajtók létrehozásához algoritmusokban
  • az algoritmus gyenge ellenállása a kriptoanalízissel szemben ;
  • speciálisan kiválasztott állandók - az algoritmus instabillá válhat a kriptoanalízis számára, amikor a munkájában használt állandók bizonyos értékeit választja ki;
  • bonyolultság a biztonságos megvalósításban - ez azt jelenti, hogy az algoritmus biztonságos megvalósítása túl lassú, és mindenki a nem biztonságos opciót fogja használni, ami előnyös a támadó számára.

Hipotetikus példák a hátsó ajtókra a modern algoritmusokban

DUAL_EC_DRBG pszeudo-véletlen sorrendgenerátor biztonsági rése

Ezt a generátort az NSA fejlesztette ki, és az US National Institute of Standards and Technology NIST 2006-ban kriptográfiailag erős pszeudo-véletlenszám-generátorként szabványosította. Független kutatók azonban már 2007-ben felvetették, hogy ebbe az algoritmusba be lehetne építeni egy hátsó ajtót. [3] [4] [5]

Az algoritmus működésének illusztrációja az NSA specifikációja szerint [6] :

Ez az algoritmus elliptikus görbéket használ.  - elliptikus görbén egy pontcsoport generátora,  - elliptikus görbe pontja - a szabvány által meghatározott állandó, a választás módja nem ismert. Magának a görbének a paramétereit is a szabvány határozza meg.

Működés elve:

Görbe egyenlet

az algoritmus működéséhez a következő kifejezéseket lehet átírni és leírni:

. _  — a generátor belső állapota az aktuális lépésben  - a generátor belső állapota a következő lépésben  — generátor kimenet az aktuális lépésben Állítólagos hátsó ajtó:

Mivel  egy prímszám , akkor létezik olyan szám , amelyre . A keresés az elliptikus görbén lévő diszkrét logaritmus  számításilag nehéz problémája , amelyre jelenleg nincs hatékony algoritmus. De ha feltételezzük, hogy a támadó ismeri , akkor a következő támadást kapjuk: Ha  a generátor következő kimenete, és ha létezik olyan, hogy , akkor a pont a görbén fekszik, és a következő egyenlőség érvényes rá: . A szám ismeretében kiszámíthatja: . Így egy támadó, aki ismeri a számot , nem csak a generátor következő kimenetét tudja kiszámítani, hanem gyorsan felsorolja a generátor összes lehetséges belső állapotát és visszaállítja a kezdeti belső állapotát. Független tanulmányok szerint [2] [7] ismeretében a generátor kimeneti sorozatának mindössze 30 bájtja elegendő a kezdeti belső állapot visszaállításához egyszerű értékek felsorolásával. A kutatók szerint egy ilyen sebezhetőség egy hátsó ajtónak tekinthető.

Hiba a TLS tanúsítvány-ellenőrző protokoll Apple általi megvalósításában

A Yandex kutatói sérülékenységet fedeztek fel a TLS protokoll megvalósításában az Apple egyik szoftvertermékében [2] . Véleményük szerint ez a hiba egy hátsó ajtónak bizonyulhat, amelyet az egyik fejlesztő szándékosan épített be az algoritmusba.

Hibás kódrészlet: statikus DSStatus SSLVerifySignedServerKeyExchnge (....) { DSSállapot hiba ; .... if (( err = SSLHashSHA1 . frissítés ( & hashCtx , & signedParams )) != 0 ) kudarcot vallott ; kudarcot vallott ; if (( SSHashSHA1 . final ( & hashCtx , & hashOut )) != 0 ) kudarcot vallott ; .... sikertelen : .... return err ; }

Amint láthatja, az első if utasítás után két sor van a goto fail -nek , és a második sor mindig végrehajtásra kerül, függetlenül az if eredményétől . Ezért a tanúsítvány-ellenőrzési eljárás nem teljes. A biztonsági résről tudó támadó meghamisíthatja a tanúsítványt, és hitelesíthető. Ez lehetővé teszi számára, hogy megszervezzen egy „ man-in-the-middle” támadást , és ezáltal megzavarja az ügyfél és a szerver közötti biztonságos kapcsolatot. Azok a kutatók, akik felfedezték ezt a hibát a megvalósítás során, nem tudják biztosan megmondani, hogy szándékos vagy véletlen volt-e. Nagyon valószínű, hogy ez egy hátsó ajtó, amelyet az egyik fejlesztő épített be az algoritmusba.

Példák a hátsó ajtók létrehozásának módszereire

Speciálisan kiválasztott állandók

Sok modern kriptográfiai algoritmus bizonyos belső állandókat használ munkája során. Általában ezeket az állandókat a szabvány határozza meg, és a jelenleg ismert kriptoanalízis -típusokkal szembeni kriptográfiai ellenállás miatt választják ki őket . De az algoritmus szabványosítása során a konstansok megválasztását elméletileg felhasználhatják a fejlesztők rosszindulatú szándékkal: például bizonyos sebezhetőségek és hátsó ajtók létrehozására az algoritmusban.

A konstansok használatára példaként említhetjük az úgynevezett "rosszindulatú hash" témájában megjelent legújabb kutatási cikkeket [8] [9] , ahol a szerzőknek sikerült ütközéseket építeniük az SHA1 kriptográfiai hash függvényhez úgy, hogy módosítottak. kerek állandóit. Vegye figyelembe, hogy a tanulmány szerzői által javasolt támadás nem magát az SHA1 hash függvényt támadja , csak akkor teszi lehetővé az ütközések megtalálását, ha a kerek konstansok módosíthatók, és csak bizonyos fájltípusok esetén.

Az SHA1 rövid leírása :

Az SHA1  egy modern kerek hash függvény. A kivonatolási algoritmus a következő:

  • A 32 bites értékek inicializálva vannak
  • A bemeneti üzenet 512 bites blokkokra van felosztva
  • Minden egyes üzenetblokk speciális módon, a szabványban meghatározott algoritmus szerint kerül feldolgozásra és kiegészítésre.
  • A fogadott üzenetblokk 4 szakaszban, egyenként 20 körben hashelésre kerül, és minden szakasz a saját állandó, ill .
  • A függvény kimenete minden blokkhoz új értékek lesznek , amelyeket hozzáadunk az eredményhez:
  • A végső hash eredmény egy 160 bites érték lesz, amelyet öt 32 bites érték összefűzésével kapunk az üzenet utolsó blokkjának feldolgozása után.
Épületütközések:

A vizsgált támadás célja olyan konstansok és üzenetek megtalálása , amelyek . Ez a támadás csak az első 512 bitet (1. blokk) módosítja azon üzeneteknek, amelyeknél ütközést kell létrehozni. Az algoritmus az SHA1 ellen 2005-ben javasolt, jól ismert különbségi támadáson alapul [10] [11] , és a műveletek sorrendje összetett , ami megnehezíti a gyakorlati megvalósítást. Ezért az SHA1 esetében eddig nem találtak valódi ütközéseket.

De az SHA1 rosszindulatú verziójának létrehozása esetén a támadó nem csak az üzenetblokkokat és a kerek konstansokat is megváltoztathatja . Kutatások szerint [9] ez nagymértékben csökkenti a támadás összetettségét a műveletek sorrendjére, és az ilyen ütközések felépítését valós, több számítógépen is végrehajtható feladattá teszi. Így a tanulmány készítőinek számos ismert fájltípushoz sikerült egyblokkos ütközést építeniük.

Egyetlen blokk ütközés:

és  - az első üzenetblokkok (512 bit), amelyek különböznek egymástól, de ugyanazt a hash összeget adják  - a többi tartalom, amely mindkét fájlnál ugyanaz Példa rosszindulatú hash használatára hátsó ajtók létrehozására

A leírt támadás segítségével két sh-scriptet hoztak létre, amelyek kiválasztása esetén ugyanazt az SHA1 hash összeget adják, de eltérően működnek.

Amint láthatja, a különbség a két szkript között csak az első 512 bites blokkokban van, amelyek szemétnek minősülnek. De ezeknek a blokkoknak a tartalma ezután az if feltételben kerül felhasználásra , ezért a szkriptek futás közben eltérően viselkednek. Az ilyen fájlokat az alkotó rosszindulatú szándékkal használhatja fel.

Hardveres hátsó ajtók

A hátsó ajtók nem csak szoftverbe, hanem hardverbe is beágyazhatók. Az ilyen hátsó ajtókat a hardvergyártók felhasználhatják rosszindulatú funkciók beágyazására a gyártási szakaszban.

A hardveres hátsó ajtóknak számos előnye van a szoftveresekkel szemben:

  • Nem észlelhető vírusirtókkal , kódolvasókkal és egyéb biztonsági szoftverekkel.
  • A szoftver frissítésével vagy cseréjével nem javítható.

Hardveres hátsó ajtóra példa lehet egy rosszindulatú BIOS firmware . Tanulmányok szerint [12] az ilyen firmware a Coreboot [13] és a SeaBIOS ingyenes firmware alapján építhető fel . A Coreboot nem egy teljes értékű BIOS: csak a gépen elérhető hardver észleléséért felelős, és magára a „BIOS-töltelékre” adja át az irányítást, amelyet a támadó igényeinek megfelelően módosított SeaBIOS -ként használhat .

A rosszindulatú firmware működési elve röviden a következőképpen írható le: a fertőzött számítógép közvetlenül a bekapcsolása után, még az operációs rendszer betöltése előtt megkísérel kapcsolatot létesíteni az interneten keresztül a támadó szerverével. Ha egy ilyen próbálkozás sikeres, akkor a rendszer távolról letölti a rendszerindító készletet , ami viszont lehetőséget biztosít a támadónak arra, hogy rosszindulatú műveleteket hajtson végre a fertőzött számítógépen: adatlopást vagy távirányítást . Ha az internethez való csatlakozási kísérlet meghiúsul, az operációs rendszer rendesen betöltődik. A támadó kétségtelen előnye, hogy maga a módosított firmware nem tartalmaz rosszindulatú kódot, és a bootkiteket nehéz felismerni.

Jegyzetek

  1. 1 2 J.P. Aumasson Cryptographic bacdooring archiválva 2019. december 21-én a Wayback Machine -nél
  2. 1 2 3 Jevgenyij Sidorov, Kriptográfiai hibák és hátsó ajtók Archiválva : 2015. december 8., a Wayback Machine , Yandex security meet up, 2015.07.24 .
  3. Dan Shumow, Niels Ferguson, A hátsó ajtó lehetőségéről a NIST SP800-90 Dual Ec Prng-ben Archiválva az eredetiből 2014. február 26-án. , CRYPTO 2007, 2007. augusztus
  4. Bruce Schneier . Az NSA titkos hátsó ajtót helyezett el az új titkosítási szabványban? , Vezetékes Hírek  (2007. november 15.). Az eredetiből archiválva : 2012. szeptember 19.
  5. Kiwi Bird, Non-Random Accidents Archivált 2016. március 13. a Wayback Machine -nél // Computerra, 2007. december 07.
  6. John Bryson, Patrick Gallagher, Recommendation for Random Number Generation Using Deterministic Random Bit Generators Archiválva : 2016. február 20., a Wayback Machine , p. 2012. 60
  7. Dan Shumow, Niels Ferguson, A hátsó ajtó lehetőségéről a NIST SP800-90 Dual Ec Prng-ben Archiválva az eredetiből 2014. február 26-án. , 6-7. oldal, CRYPTO 2007, 2007. augusztus
  8. Ange Albertini, Jean-Philippe Aumasson, Maria Eichlseder, Florian Mendel, Martin Schlaeffer, rosszindulatú SHA-1 Archiválva : 2016. január 10. a Wayback Machine -nél , 2014.08.14 .
  9. 1 2 Ange Albertini, Jean-Philippe Aumasson, Maria Eichlseder, Florian Mendel, Martin Schlaffer, Malicious Hashing: Eve's Variant of SHA-1 Archiválva 2015. október 22-én a Wayback Machine -nél , 2014
  10. Wang, X., Yao, AC, Yao, Cryptanalysis on SHA-1. NIST - First Cryptographic Hash Work-shop archiválva : 2016. november 7., a Wayback Machine , 2005. október 31.
  11. Wang, X., Yin, YL, Yu, H., Ütközések keresése a teljes SHA1 -ben Archiválva : 2015. április 30. a Wayback Machine -nél , CRYPTO 2005
  12. Jonathan Brossard, Hardware Backdoors Are Practical Archivált : 2015. december 8., a Wayback Machine , 2012. március 12.
  13. Ingyenes BIOS-projekt áttekintése – Coreboot archiválva : 2015. december 8. a Wayback Machine -nél , 2014. október 9.

Linkek

Lásd még