Zadní dveře

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 1. října 2022; ověření vyžaduje 1 úpravu .

Backdoor , tajný vchod (z anglického  back door  - "zadní vrátka", doslova "zadní vrátka") - chyba v algoritmu, který je do něj záměrně zabudován vývojářem a umožňuje neoprávněný přístup k datům nebo vzdálené ovládání operačního systému a počítač jako celek [1] .

Hlavním účelem zadních vrátek je skrytě a rychle získat přístup k datům, ve většině případů šifrovaným a chráněným. Například do šifrovacího algoritmu lze zabudovat zadní vrátka pro následné odposlechy zabezpečeného kanálu útočníkem [1] [2] .

Hlavní vlastnosti zadních vrátek

Dokonalá zadní vrátka
  • obtížné zjistit;
  • lze použít opakovaně;
  • je snadné to popřít - vypadá to jako chyba a v případě odhalení se může vývojář odvolat, že tuto chybu udělal náhodou a neměl žádný zlý úmysl;
  • vykořisťujeme pouze tehdy, známe-li tajemství – může jej použít pouze ten, kdo ví, jak se zadní vrátka aktivují;
  • chráněno před kompromitací předchozím použitím - i když byla zadní vrátka objevena, není možné zjistit, kým byla dříve zneužita a jaké informace se útočník zmocnil;
  • těžko opakovatelné – i když backdoor někdo našel, nebude možné jej použít v jiném kódu nebo v jiném zařízení.
Společné principy pro vytváření zadních vrátek v algoritmech
  • slabá odolnost algoritmu vůči kryptoanalýze ;
  • speciálně vybrané konstanty - algoritmus se může stát nestabilním vůči kryptoanalýze při výběru určitých hodnot konstant používaných při jeho práci;
  • složitost v zabezpečené implementaci – to znamená, že bezpečná implementace algoritmu je příliš pomalá a každý využije nezabezpečenou možnost, která je pro útočníka výhodná.

Hypotetické příklady zadních vrátek v moderních algoritmech

Chyba zabezpečení generátoru pseudonáhodné sekvence DUAL_EC_DRBG

Tento generátor byl vyvinut NSA a standardizován jako kryptograficky silný generátor pseudonáhodných čísel americkým Národním institutem pro standardy a technologie NIST v roce 2006. Již v roce 2007 však nezávislí výzkumníci navrhli, že by do tohoto algoritmu mohla být zabudována zadní vrátka. [3] [4] [5]

Ukázka fungování algoritmu podle specifikace NSA [6] :

Tento algoritmus používá eliptické křivky.  - generátor skupiny bodů na eliptické křivce,  - bod na eliptické křivce - normou definovaná konstanta, jak byla zvolena, není známo. Parametry samotné křivky jsou rovněž stanoveny normou.

Princip fungování:

Křivka rovnice

lze přepsat do tvaru a zapsat následující výrazy pro fungování algoritmu:

.. _  — vnitřní stav generátoru v aktuálním kroku  - vnitřní stav generátoru v dalším kroku  — výstup generátoru v aktuálním kroku Údajná zadní vrátka:

Protože  je prvočíslo , pak existuje číslo takové, že . Hledání  je výpočetně obtížný problém diskrétního logaritmu na eliptické křivce, pro který v současné době neexistují žádné účinné algoritmy. Pokud ale předpokládáme, že útočník zná , pak dostaneme následující útok: If  je další výstup generátoru a pokud existuje takový , že , pak bod leží na křivce a platí pro něj následující rovnost: . Když znáte číslo , můžete vypočítat: . Útočník, který číslo zná, tak může nejen vypočítat další výstup generátoru, ale také rychle vyčíslit všechny možné vnitřní stavy generátoru a obnovit jeho počáteční vnitřní stav. Podle nezávislých studií [2] [7] stačí se znalostí pouhých 30 bajtů výstupní sekvence generátoru k obnovení jeho počátečního vnitřního stavu prostým výčtem hodnot. Podle výzkumníků lze takovou zranitelnost považovat za zadní vrátka.

Chyba v implementaci protokolu ověření certifikátu TLS společností Apple

Výzkumníci Yandexu objevili zranitelnost v implementaci protokolu TLS v jednom ze softwarových produktů společnosti Apple [2] . Podle jejich názoru se tato chyba může ukázat jako zadní vrátka záměrně zabudovaná do algoritmu jedním z vývojářů.

Část kódu s chybou: statický DSStatus SSLVerifySignedServerKeyExchnge (....) { DSStatus err ; .... if (( err = SSLHashSHA1 . update ( & hashCtx , & signatureParams )) != 0 ) goto fail ; goto fail ; if (( SSHashSHA1 . final ( & hashCtx , & hashOut )) != 0 ) goto fail ; .... selhání : .... návrat err ; }

Jak vidíte, po prvním příkazu if jsou dva řádky goto fail a druhý řádek se provede vždy, bez ohledu na výsledek příkazu if . Proto je postup ověření certifikátu neúplný. Útočník se znalostí této chyby zabezpečení by mohl certifikát podvrhnout a být ověřen. To mu umožní zorganizovat útok typu man-in-the-middle , čímž naruší zabezpečené spojení mezi klientem a serverem. Vědci, kteří tuto chybu v implementaci objevili, nemohou s jistotou říci, zda šlo o úmysl nebo náhodu. Je docela možné, že se jedná o zadní vrátka zabudovaná do algoritmu jedním z vývojářů.

Příklady metod pro vytváření zadních vrátek

Speciálně vybrané konstanty

Mnoho moderních kryptografických algoritmů používá při své práci určitou sadu vnitřních konstant. Tyto konstanty jsou zpravidla specifikovány normou a jsou voleny z důvodu kryptografické odolnosti vůči současně známým typům kryptoanalýz . Ale výběr konstant při standardizaci algoritmu může být teoreticky použit vývojáři se zlým úmyslem: například k vytvoření určitých zranitelností a zadních vrátek v algoritmu.

Jako takový příklad použití konstant můžeme uvést nedávné výzkumné práce na téma tzv. „malicious hashing“ [8] [9] , kde se autorům podařilo sestavit kolize pro kryptografickou hashovací funkci SHA1 úpravou jeho kulaté konstanty. Všimněte si, že útok navržený autory studie není útokem na samotnou hashovací funkci SHA1 , umožňuje najít kolize pouze v případě, že lze změnit zaokrouhlovací konstanty a pouze pro určité typy souborů.

Stručný popis SHA1 :

SHA1  je moderní kruhová hashovací funkce. Hašovací algoritmus je následující:

  • 32bitové hodnoty jsou inicializovány
  • Vstupní zpráva je rozdělena do bloků po 512 bitech
  • Každý blok zpráv je zpracováván a doplňován zvláštním způsobem, podle algoritmu definovaného ve standardu.
  • Blok přijatých zpráv je hašován ve 4 fázích po 20 kolech a každá fáze používá svou vlastní konstantu resp
  • Výstupem funkce pro každý blok budou nové hodnoty , které se přidají k výsledku:
  • Konečným výsledkem hash bude 160bitová hodnota získaná zřetězením pěti 32bitových hodnot po zpracování posledního bloku zprávy.
Kolize budov:

Účelem uvažovaného útoku je najít takové konstanty a takové zprávy a , že . Tento útok modifikuje pouze prvních 512 bitů (blok 1) zpráv, pro které je nutné vytvořit kolizi. Algoritmus je založen na známém rozdílovém útoku na SHA1 navrženém v roce 2005 [10] [11] a má složitost pořadí operací, což ztěžuje jeho implementaci v praxi. Proto nebyly dosud nalezeny žádné skutečné kolize pro SHA1 .

Ale v případě vytvoření škodlivé verze SHA1 může útočník měnit nejen bloky zpráv a , ale také zaokrouhlovat konstanty . Podle výzkumu [9] to značně snižuje složitost útoku na pořadí operací a dělá z konstrukce takových kolizí skutečný úkol, který lze provádět na více počítačích. Autorům studie se tak podařilo vybudovat jednoblokové kolize pro mnoho známých typů souborů.

Kolize jednoho bloku:

a  - první bloky zpráv (512 bitů), které se od sebe liší, ale dávají stejný hash součet  - zbytek obsahu, který je stejný pro oba soubory Příklad použití škodlivého hashování k vytvoření zadních vrátek

Pomocí popsaného útoku byly vytvořeny dva sh-scripty, které při výběru dávají stejný hash součet SHA1, ale fungují jinak.

Jak vidíte, rozdíl mezi těmito dvěma skripty je pouze v prvních blocích 512 bitů, které jsou zakomentovány jako smetí. Ale obsah těchto bloků je pak použit v podmínce if , proto se skripty při spuštění chovají jinak. Takové soubory může tvůrce použít se zlým úmyslem.

Hardwarová zadní vrátka

Zadní vrátka lze zabudovat nejen do softwaru, ale také do hardwaru. Taková zadní vrátka mohou výrobci hardwaru použít k tomu, aby do nich ve fázi výroby vložili škodlivé funkce.

Hardwarová zadní vrátka mají oproti softwarovým řadu výhod:

  • Nelze detekovat antiviry , skenery kódů a dalším bezpečnostním softwarem.
  • Nelze opravit aktualizací nebo výměnou softwaru.

Příkladem hardwarových zadních vrátek může být škodlivý firmware BIOSu . Podle studií [12] lze takový firmware postavit na bázi bezplatného firmwaru Coreboot [13] a SeaBIOS . Coreboot není plnohodnotný BIOS: zodpovídá pouze za detekci hardwaru dostupného na stroji a předání řízení samotnému „vyplňování BIOSu“, který může být použit jako SeaBIOS upravený útočníkem podle jeho potřeb .

Princip fungování škodlivého firmwaru lze stručně popsat takto: okamžitě po zapnutí infikovaného počítače, ještě před načtením operačního systému, se pokusí navázat spojení se serverem útočníka přes internet. Pokud je takový pokus úspěšný, stáhne se vzdáleně nějaký bootkit , což útočníkovi zase poskytne příležitost provést s infikovaným počítačem škodlivé akce: krádež dat nebo dálkové ovládání . Pokud se pokus o připojení k internetu nezdaří, operační systém se načte normálně. Nepochybnou výhodou pro útočníka je, že upravený firmware sám o sobě neobsahuje žádný škodlivý kód a bootkity se obtížně odhalují.

Poznámky

  1. 1 2 J.P. Aumasson Cryptographic bacdooring Archivováno 21. prosince 2019 na Wayback Machine
  2. 1 2 3 Evgeny Sidorov, Cryptographic bugs and backdoors Archivováno 8. prosince 2015 na Wayback Machine , bezpečnostní setkání Yandex, 24. 7. 2015
  3. Dan Shumow, Niels Ferguson, O možnosti zadních vrátek v NIST SP800-90 Dual Ec Prng Archivováno z originálu 26. února 2014. , CRYPTO 2007, srpen 2007
  4. Bruce Schneier . Dala NSA do nového standardu šifrování tajná zadní vrátka? , Wired News  (15. listopadu 2007). Archivováno z originálu 19. září 2012.
  5. Kiwi Bird, nenáhodné nehody archivovány 13. března 2016 na Wayback Machine // Computerra, 07. prosince 2007
  6. John Bryson, Patrick Gallagher, Doporučení pro generování náhodných čísel pomocí deterministických generátorů náhodných bitů , archivováno 20. února 2016 na Wayback Machine , str. 60, 2012
  7. Dan Shumow, Niels Ferguson, O možnosti zadních vrátek v NIST SP800-90 Dual Ec Prng Archivováno z originálu 26. února 2014. , strany 6-7, CRYPTO 2007, srpen 2007
  8. Ange Albertini, Jean-Philippe Aumasson, Maria Eichlseder, Florian Mendel, Martin Schlaeffer, Malicious SHA-1 Archivováno 10. ledna 2016 na Wayback Machine , 14. 8. 2014
  9. 1 2 Ange Albertini, Jean-Philippe Aumasson, Maria Eichlseder, Florian Mendel, Martin Schlaffer, Malicious Hashing: Eve's Variant of SHA-1 Archived 22. října 2015 na Wayback Machine , 2014
  10. Wang, X., Yao, AC, Yao, kryptoanalýza na SHA-1. NIST - First Cryptographic Hash Work-shop Archived 7. listopadu 2016 na Wayback Machine , 31. října 2005
  11. Wang, X., Yin, YL, Yu, H., Hledání kolizí v plné verzi SHA1 Archivováno 30. dubna 2015 na Wayback Machine , CRYPTO 2005
  12. Jonathan Brossard, Hardware Backdoors Are Practical Archived 8. prosince 2015 na Wayback Machine , 12. března 2012
  13. Přehled projektu Free BIOS – Coreboot archivován 8. prosince 2015 na Wayback Machine , 9. října 2014

Odkazy

Viz také