Bakdörr

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 1 oktober 2022; verifiering kräver 1 redigering .

Bakdörr , hemlig ingång (från den engelska  bakdörren  - "bakdörr", bokstavligen "bakdörr") - en defekt i algoritmen som medvetet är inbyggd i den av utvecklaren och tillåter obehörig åtkomst till data eller fjärrkontroll av operativsystemet och datorn som helhet [1] .

Huvudsyftet med en bakdörr är att i hemlighet och snabbt få tillgång till data, i de flesta fall krypterad och skyddad. Till exempel kan en bakdörr byggas in i krypteringsalgoritmen för efterföljande avlyssning av den säkra kanalen av en angripare [1] [2] .

Huvudegenskaper för bakdörren

Den perfekta bakdörren
  • svårt att upptäcka;
  • kan användas upprepade gånger;
  • det är lätt att förneka - det ser ut som ett misstag, och i händelse av upptäckt kan utvecklaren hänvisa till att han gjorde detta misstag av misstag och inte hade något uppsåt;
  • vi utnyttjar bara om vi känner till hemligheten - bara den som vet hur bakdörren aktiveras kan använda den;
  • skyddad från kompromisser genom tidigare användningar - även om en bakdörr upptäcktes är det omöjligt att fastställa av vem den tidigare utnyttjats och vilken information angriparen tog besittning av;
  • svårt att upprepa - även om bakdörren hittades av någon kommer det inte att vara möjligt att använda den i annan kod eller i en annan enhet.
Vanliga principer för att skapa bakdörrar i algoritmer
  • svagt motstånd hos algoritmen mot kryptoanalys ;
  • speciellt utvalda konstanter - algoritmen kan bli instabil för kryptoanalys när man väljer vissa värden för konstanterna som används i dess arbete;
  • komplexitet i en säker implementering - detta betyder att den säkra implementeringen av algoritmen är för långsam, och alla kommer att använda det osäkra alternativet, vilket är fördelaktigt för angriparen.

Hypotetiska exempel på bakdörrar i moderna algoritmer

DUAL_EC_DRBG sårbarhet för pseudoslump sekvensgenerator

Denna generator utvecklades av NSA och standardiserades som en kryptografiskt stark pseudo-slumptalsgenerator av US National Institute of Standards and Technology NIST 2006. Men redan 2007 föreslog oberoende forskare att en bakdörr kunde byggas in i denna algoritm. [3] [4] [5]

En illustration av algoritmens funktion enligt NSA-specifikationen [6] :

Denna algoritm använder elliptiska kurvor.  - generatorn av en grupp av punkter på en elliptisk kurva,  - en punkt på en elliptisk kurva - en konstant definierad av standarden, hur den valdes är okänt. Parametrarna för själva kurvan är också inställda av standarden.

Funktionsprincip:

Kurva ekvation

kan skrivas om i formen och skrivas ner följande uttryck för driften av algoritmen:

... _  — Generatorns interna tillstånd i det aktuella steget  - generatorns interna tillstånd i nästa steg  — generatorutgång vid det aktuella steget Påstådd bakdörr:

Eftersom  är ett primtal , så finns det ett tal så att . Att hitta  är ett beräkningssvårt problem med diskret logaritm på en elliptisk kurva, för vilket det för närvarande inte finns några effektiva algoritmer. Men om vi antar att angriparen vet , då erhålls följande attack: Om  är nästa utgång från generatorn, och om det finns sådan att , så ligger punkten på kurvan och följande likhet gäller för den: . Genom att känna till numret kan du beräkna: . Således kan en angripare som känner till numret inte bara beräkna nästa utdata från generatorn, utan också snabbt räkna upp alla möjliga interna tillstånd hos generatorn och återställa dess initiala interna tillstånd. Enligt oberoende studier [2] [7] räcker med kunskap endast 30 byte av generatorns utdatasekvens för att återställa dess initiala interna tillstånd genom enkel uppräkning av värden. Enligt forskarna kan en sådan sårbarhet betraktas som en bakdörr.

Bugg i Apples implementering av TLS- certifikatverifieringsprotokollet

Yandex- forskare har upptäckt en sårbarhet i implementeringen av TLS-protokollet i en av Apples mjukvaruprodukter [2] . Enligt deras åsikt kan det här felet mycket väl visa sig vara en bakdörr som medvetet byggts in i algoritmen av en av utvecklarna.

Kodavsnitt med ett fel: statisk DSStatus SSLVerifySignedServerKeyExchnge (....) { DSStatus fel ; .... if (( err = SSLHashSHA1 . uppdatering ( & hashCtx , & signedParams )) != 0 ) måste misslyckas ; måste misslyckas ; if (( SSHashSHA1 . final ( & hashCtx , & hashOut )) != 0 ) måste misslyckas ; .... misslyckas : .... returnera fel ; }

Som du kan se finns det två rader med goto fail efter den första if -satsen , och den andra raden exekveras alltid, oavsett resultatet av if . Därför är certifikatverifieringsproceduren ofullständig. En angripare med kunskap om denna sårbarhet kan förfalska certifikatet och autentiseras. Detta kommer att tillåta honom att organisera en man-in-the-middle- attack , och därigenom störa den säkra anslutningen mellan klienten och servern. Forskarna som upptäckte detta fel i implementeringen kan inte säga säkert om det var avsiktligt eller oavsiktligt. Det är mycket möjligt att detta är en bakdörr inbyggd i algoritmen av en av utvecklarna.

Exempel på metoder för att skapa bakdörrar

Speciellt valda konstanter

Många moderna kryptografiska algoritmer använder en viss uppsättning interna konstanter i sitt arbete. Dessa konstanter är som regel specificerade av standarden och väljs på grund av kryptografiskt motstånd mot för närvarande kända typer av kryptoanalys . Men valet av konstanter vid standardisering av en algoritm kan teoretiskt sett användas av utvecklare med illvillig avsikt: till exempel för att skapa vissa sårbarheter och bakdörrar i algoritmen.

Som ett sådant exempel på användningen av konstanter kan vi citera nya forskningsartiklar om ämnet så kallad "malicious hashing" [8] [9] , där författarna lyckades bygga kollisioner för den kryptografiska hashfunktionen SHA1 genom att modifiera dess runda konstanter. Observera att attacken som föreslagits av författarna till studien inte är en attack på själva SHA1- hashfunktionen , den tillåter bara att hitta kollisioner om de runda konstanterna kan ändras och endast för vissa filtyper.

Kort beskrivning av SHA1 :

SHA1  är en modern rund hash-funktion. Hashingalgoritmen är följande:

  • 32-bitars värden initieras
  • Inmatningsmeddelandet är uppdelat i block om 512 bitar
  • Varje meddelandeblock bearbetas och kompletteras på ett speciellt sätt, enligt den algoritm som definieras i standarden.
  • Det mottagna meddelandeblocket hashas i 4 steg med 20 omgångar vardera, och varje steg använder sin egen konstant eller
  • Utdata från funktionen för varje block kommer att vara nya värden som läggs till resultatet:
  • Det slutliga hashresultatet kommer att vara ett 160-bitars värde som erhålls genom att sammanfoga fem 32-bitars värden efter bearbetning av det sista blocket i meddelandet.
Byggnadskollisioner:

Syftet med den övervägda attacken är att hitta sådana konstanter och sådana meddelanden och , att . Denna attack modifierar endast de första 512 bitarna (block 1) av meddelanden för vilka det krävs för att bygga en kollision. Algoritmen är baserad på den välkända skillnadsattacken på SHA1 som föreslogs 2005 [10] [11] och har komplexitet i operationsordningen, vilket gör det svårt att implementera i praktiken. Därför har inga riktiga kollisioner för SHA1 hittats hittills.

Men i fallet med att skapa en skadlig version av SHA1 kan en angripare variera inte bara meddelandeblock och utan även runda konstanter . Enligt forskning [9] reducerar detta attackens komplexitet avsevärt till operationsordningen och gör konstruktionen av sådana kollisioner till en verklig uppgift som kan utföras på flera datorer. Således lyckades författarna till studien bygga enblockskollisioner för många kända filtyper.

Enkelblockkollision:

och  - de första blocken av meddelanden (512 bitar) som skiljer sig från varandra, men som ger samma hashsumma  - resten av innehållet, vilket är detsamma för båda filerna Ett exempel på att använda skadlig hashing för att skapa bakdörrar

Med hjälp av den beskrivna attacken skapades två sh-skript, som, när de väljs , ger samma SHA1-hashsumma, men fungerar annorlunda.

Som du kan se är skillnaden mellan dessa två skript bara i de första blocken på 512 bitar, som kommenteras ut skräp. Men innehållet i dessa block används sedan i if -villkoret , så skripten beter sig annorlunda när de körs. Sådana filer kan användas av skaparen med uppsåt.

Hårdvara bakdörrar

Bakdörrar kan bäddas in inte bara i mjukvara utan också i hårdvara. Sådana bakdörrar kan användas av tillverkare av hårdvara för att bädda in skadliga funktioner i den i produktionsstadiet.

Hårdvarubakdörrar har ett antal fördelar jämfört med mjukvaru:

  • Kan inte upptäckas av antivirus , kodavläsare och annan säkerhetsprogramvara.
  • Kan inte fixas genom att uppdatera eller ersätta programvaran.

Ett exempel på en hårdvarubakdörr skulle vara en skadlig BIOS -firmware . Enligt studier [12] kan sådan firmware byggas på basis av gratis firmware Coreboot [13] och SeaBIOS . Coreboot är inte ett fullfjädrat BIOS: det är bara ansvarigt för att upptäcka hårdvaran som är tillgänglig på maskinen och överföra kontrollen till själva "BIOS-stoppningen", som kan användas som SeaBIOS modifierad av en angripare för att passa hans behov .

Principen för drift av skadlig firmware kan kort beskrivas enligt följande: omedelbart efter att den infekterade datorn har slagits på, även innan operativsystemet laddas, försöker den upprätta en anslutning till angriparens server via Internet. Om ett sådant försök lyckas laddas något bootkit ned på distans , vilket i sin tur ger angriparen möjlighet att utföra skadliga åtgärder med den infekterade datorn: datastöld eller fjärrkontroll . Om försöket att ansluta till Internet misslyckas, laddas operativsystemet normalt. En otvivelaktig fördel för en angripare är att den modifierade firmware i sig inte innehåller någon skadlig kod, och bootkits är svåra att upptäcka.

Anteckningar

  1. 1 2 J.P. Aumasson Cryptographic bacdooring Arkiverad 21 december 2019 på Wayback Machine
  2. 1 2 3 Evgeny Sidorov, Kryptografiska buggar och bakdörrar Arkiverad 8 december 2015 på Wayback Machine , Yandex säkerhetsmöte, 2015-07-24
  3. Dan Shumow, Niels Ferguson, On the Possibility of a Back Door in the NIST SP800-90 Dual Ec Prng Arkiverad från originalet den 26 februari 2014. , CRYPTO 2007, augusti 2007
  4. Bruce Schneier . Satte NSA en hemlig bakdörr i ny krypteringsstandard? , Wired News  (15 november 2007). Arkiverad från originalet den 19 september 2012.
  5. Kiwi Bird, icke-slumpmässiga olyckor arkiverade 13 mars 2016 på Wayback Machine // Computerra, 7 december 2007
  6. John Bryson, Patrick Gallagher, Rekommendation för generering av slumptal med deterministiska slumpmässiga bitgeneratorer Arkiverad 20 februari 2016 på Wayback Machine , sid. 60, 2012
  7. Dan Shumow, Niels Ferguson, On the Possibility of a Back Door in the NIST SP800-90 Dual Ec Prng Arkiverad från originalet den 26 februari 2014. , sidorna 6-7, CRYPTO 2007, augusti 2007
  8. Ange Albertini, Jean-Philippe Aumasson, Maria Eichlseder, Florian Mendel, Martin Schlaeffer, Malicious SHA-1 Arkiverad 10 januari 2016 på Wayback Machine , 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 Arkiverad 22 oktober 2015 på Wayback Machine , 2014
  10. Wang, X., Yao, AC, Yao, Cryptanalysis on SHA-1. NIST - First Cryptographic Hash Work-shop Arkiverad 7 november 2016 på Wayback Machine 31 oktober 2005
  11. Wang, X., Yin, YL, Yu, H., Hitta kollisioner i sin helhet SHA1 Arkiverad 30 april 2015 på Wayback Machine , CRYPTO 2005
  12. Jonathan Brossard, Hardware Backdoors Are Practical Arkiverad 8 december 2015 på Wayback Machine , 12 mars 2012
  13. Gratis BIOS-projektöversikt - Coreboot Arkiverad 8 december 2015 på Wayback Machine 9 oktober 2014

Länkar

Se även