Bagdør

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 1. oktober 2022; verifikation kræver 1 redigering .

Bagdør , hemmelig indgang (fra den engelske  bagdør  - "bagdør", bogstaveligt talt "bagdør") - en defekt i algoritmen, der bevidst er indbygget i den af ​​udvikleren og tillader uautoriseret adgang til data eller fjernstyring af operativsystemet og computeren som helhed [1] .

Hovedformålet med en bagdør er at hemmeligt og hurtigt få adgang til data, i de fleste tilfælde krypteret og beskyttet. For eksempel kan en bagdør indbygges i krypteringsalgoritmen til efterfølgende aflytning af den sikre kanal af en angriber [1] [2] .

Hovedegenskaber for bagdøren

Den perfekte bagdør
  • svært at opdage;
  • kan bruges gentagne gange;
  • det er let at benægte - det ligner en fejl, og i tilfælde af opdagelse kan udvikleren henvise til, at han lavede denne fejl ved et uheld og ikke havde nogen ondsindet hensigt;
  • vi udnytter kun, hvis vi kender hemmeligheden - kun den, der ved, hvordan bagdøren aktiveres, kan bruge den;
  • beskyttet mod kompromittering af tidligere anvendelser - selvom en bagdør blev opdaget, er det umuligt at fastslå, af hvem den tidligere blev udnyttet, og hvilken information angriberen tog besiddelse af;
  • svært at gentage - selvom bagdøren blev fundet af nogen, vil det ikke være muligt at bruge den i anden kode eller i en anden enhed.
Fælles principper for at skabe bagdøre i algoritmer
  • svag modstand af algoritmen over for kryptoanalyse ;
  • specielt udvalgte konstanter - algoritmen kan blive ustabil over for kryptoanalyse, når den vælger visse værdier af de konstanter, der bruges i dens arbejde;
  • kompleksitet i en sikker implementering - det betyder, at den sikre implementering af algoritmen er for langsom, og alle vil bruge den usikre mulighed, hvilket er gavnligt for angriberen.

Hypotetiske eksempler på bagdøre i moderne algoritmer

DUAL_EC_DRBG pseudotilfældig sekvensgeneratorsårbarhed

Denne generator blev udviklet af NSA og standardiseret som en kryptografisk stærk pseudo-tilfældig talgenerator af US National Institute of Standards and Technology NIST i 2006. Men allerede i 2007 foreslog uafhængige forskere, at en bagdør kunne indbygges i denne algoritme. [3] [4] [5]

En illustration af driften af ​​algoritmen i henhold til NSA-specifikationen [6] :

Denne algoritme bruger elliptiske kurver.  - generatoren af ​​en gruppe af punkter på en elliptisk kurve,  - et punkt på en elliptisk kurve - en konstant defineret af standarden, hvordan den blev valgt er ukendt. Parametrene for selve kurven er også indstillet af standarden.

Funktionsprincip:

Kurveligning

kan omskrives i form og nedskrive følgende udtryk for driften af ​​algoritmen:

... _  — generatorens interne tilstand på det aktuelle trin  - den interne tilstand af generatoren i næste trin  — generatorudgang på det aktuelle trin Påstået bagdør:

Da  er et primtal , så eksisterer der et tal sådan, at . At finde  er et beregningsmæssigt vanskeligt problem med diskret logaritme på en elliptisk kurve, som der i øjeblikket ikke er nogen effektive algoritmer til. Men hvis vi antager, at angriberen kender , så opnås følgende angreb: Hvis  er det næste output fra generatoren, og hvis der findes sådan , at , så ligger punktet på kurven og følgende lighed gælder for det: . Når du kender tallet , kan du beregne: . En angriber, der kender tallet , kan således ikke kun beregne det næste output fra generatoren, men også hurtigt opregne alle mulige interne tilstande af generatoren og gendanne dens oprindelige interne tilstand. Ifølge uafhængige undersøgelser [2] [7] er kun 30 bytes af generatorens outputsekvens med viden nok til at genoprette dens oprindelige interne tilstand ved simpel opregning af værdier. En sådan sårbarhed kan ifølge forskerne betragtes som en bagdør.

Fejl i Apples implementering af TLS -certifikatbekræftelsesprotokollen

Yandex - forskere har opdaget en sårbarhed i implementeringen af ​​TLS-protokollen i et af Apples softwareprodukter [2] . Efter deres mening kan denne fejl meget vel vise sig at være en bagdør, der bevidst er indbygget i algoritmen af ​​en af ​​udviklerne.

Kodesektion med en fejl: statisk DSStatus SSLVerifySignedServerKeyExchnge (....) { DSStatus fejl ; .... if (( err = SSLHashSHA1 . opdatering ( & hashCtx , & signedParams )) != 0 ) skal fejle ; skal fejle ; if (( SSHashSHA1 . final ( & hashCtx , & hashOut )) != 0 ) skal fejle ; .... mislykkes : .... returner fejl ; }

Som du kan se, er der to linjer med goto fail efter den første if -sætning , og den anden linje udføres altid, uanset resultatet af if . Derfor er certifikatbekræftelsesproceduren ufuldstændig. En hacker med viden om denne sårbarhed kan forfalske certifikatet og blive godkendt. Dette vil give ham mulighed for at organisere et man-in-the-middle- angreb og derved forstyrre den sikre forbindelse mellem klienten og serveren. Forskerne, der opdagede denne fejl i implementeringen, kan ikke med sikkerhed sige, om det var tilsigtet eller utilsigtet. Det er meget muligt, at dette er en bagdør indbygget i algoritmen af ​​en af ​​udviklerne.

Eksempler på metoder til at skabe bagdøre

Specielt valgte konstanter

Mange moderne kryptografiske algoritmer bruger et bestemt sæt interne konstanter i deres arbejde. Som regel er disse konstanter specificeret af standarden og er valgt af hensyn til kryptografisk modstand mod aktuelt kendte typer af kryptoanalyse . Men valget af konstanter ved standardisering af en algoritme kan teoretisk set bruges af udviklere med ondsindet hensigt: for eksempel til at skabe visse sårbarheder og bagdøre i algoritmen.

Som et sådant eksempel på brugen af ​​konstanter kan vi citere nyere forskningsartikler om emnet den såkaldte "ondsindet hashing" [8] [9] , hvor forfatterne formåede at bygge kollisioner for den kryptografiske hash-funktion SHA1 ved at modificere dens runde konstanter. Bemærk, at angrebet foreslået af forfatterne af undersøgelsen ikke er et angreb på selve SHA1- hash-funktionen , det tillader kun at finde kollisioner, hvis de runde konstanter kan ændres og kun for visse filtyper.

Kort beskrivelse af SHA1 :

SHA1  er en moderne rund hash-funktion. Hashing-algoritmen er følgende:

  • 32-bit værdier initialiseres
  • Indgangsmeddelelsen er opdelt i blokke på 512 bit
  • Hver beskedblok behandles og suppleres på en speciel måde i henhold til den algoritme, der er defineret i standarden.
  • Den modtagne beskedblok hashes i 4 trin af hver 20 runder, og hver fase bruger sin egen konstant eller
  • Outputtet af funktionen for hver blok vil være nye værdier , der tilføjes til resultatet:
  • Det endelige hash-resultat vil være en 160-bit værdi opnået ved at sammenkæde fem 32-bit værdier efter at have behandlet den sidste blok af beskeden.
Bygningssammenstød:

Formålet med det overvejede angreb er at finde sådanne konstanter og sådanne beskeder og , at . Dette angreb ændrer kun de første 512 bit (blok 1) af meddelelser, som det er nødvendigt for at bygge en kollision for. Algoritmen er baseret på det velkendte forskelsangreb på SHA1 foreslået i 2005 [10] [11] og har kompleksitet i rækkefølgen af ​​operationer, hvilket gør det vanskeligt at implementere i praksis. Derfor er der indtil videre ikke fundet reelle sammenstød for SHA1 .

Men i tilfælde af at skabe en ondsindet version af SHA1 , kan en angriber variere ikke kun beskedblokke og , men også runde konstanter . Ifølge forskning [9] reducerer dette angrebets kompleksitet i høj grad til rækkefølgen af ​​operationer og gør konstruktionen af ​​sådanne kollisioner til en reel opgave, der kan udføres på flere computere. Således lykkedes det forfatterne af undersøgelsen at bygge enkeltblok-kollisioner for mange kendte filtyper.

Enkeltblok kollision:

og  - de første blokke af meddelelser (512 bit), der adskiller sig fra hinanden, men giver samme hashsum  - resten af ​​indholdet, som er det samme for begge filer Et eksempel på brug af ondsindet hashing til at skabe bagdøre

Ved hjælp af det beskrevne angreb blev der oprettet to sh-scripts, som, når de er valgt , giver den samme SHA1 hash sum, men fungerer anderledes.

Som du kan se, er forskellen mellem disse to scripts kun i de første blokke på 512 bit, som er kommenteret ud af skrald. Men indholdet af disse blokke bruges derefter i if -tilstanden , derfor opfører scripts sig anderledes, når de køres. Sådanne filer kan bruges af skaberen med ondsindet hensigt.

Hardware bagdøre

Bagdøre kan indlejres ikke kun i software, men også i hardware. Sådanne bagdøre kan bruges af fabrikanter af hardware til at indlejre ondsindede funktioner i det på produktionsstadiet.

Hardware-bagdøre har en række fordele i forhold til software:

  • Kan ikke detekteres af antivirus , kodescannere og anden sikkerhedssoftware.
  • Kan ikke rettes ved at opdatere eller udskifte softwaren.

Et eksempel på en hardware-bagdør ville være en ondsindet BIOS- firmware . Ifølge undersøgelser [12] kan sådan firmware bygges på basis af gratis firmware Coreboot [13] og SeaBIOS . Coreboot er ikke en fuldgyldig BIOS: den er kun ansvarlig for at opdage den tilgængelige hardware på maskinen og overføre kontrol til selve "BIOS stuffing", som kan bruges som SeaBIOS modificeret af en angriber, så den passer til hans behov .

Princippet om drift af ondsindet firmware kan kort beskrives som følger: umiddelbart efter at den inficerede computer er tændt, selv før operativsystemet er indlæst, forsøger den at etablere en forbindelse med angriberens server via internettet. Hvis et sådant forsøg lykkes, downloades et bootkit eksternt , hvilket igen giver angriberen mulighed for at udføre ondsindede handlinger med den inficerede computer: datatyveri eller fjernbetjening . Hvis forsøget på at oprette forbindelse til internettet mislykkes, indlæses operativsystemet normalt. En utvivlsom fordel for en angriber er, at den modificerede firmware i sig selv ikke indeholder nogen ondsindet kode, og bootkits er svære at opdage.

Noter

  1. 1 2 J.P. Aumasson Cryptographic bacdooring Arkiveret 21. december 2019 på Wayback Machine
  2. 1 2 3 Evgeny Sidorov, Kryptografiske fejl og bagdøre Arkiveret 8. december 2015 på Wayback Machine , Yandex sikkerhedsmøde, 24/07/2015
  3. Dan Shumow, Niels Ferguson, On the Possibility of a Back Door in the NIST SP800-90 Dual Ec Prng Arkiveret fra originalen den 26. februar 2014. , CRYPTO 2007, august 2007
  4. Bruce Schneier . Sætte NSA en hemmelig bagdør i ny krypteringsstandard? , Wired News  (15. november 2007). Arkiveret fra originalen den 19. september 2012.
  5. Kiwi Bird, ikke-tilfældige ulykker arkiveret 13. marts 2016 på Wayback Machine // Computerra, 7. december 2007
  6. John Bryson, Patrick Gallagher, Recommendation for Random Number Generation Using Deterministic Random Bit Generators Arkiveret 20. februar 2016 på Wayback Machine , s. 60, 2012
  7. Dan Shumow, Niels Ferguson, On the Possibility of a Back Door in the NIST SP800-90 Dual Ec Prng Arkiveret fra originalen den 26. februar 2014. , side 6-7, CRYPTO 2007, august 2007
  8. Ange Albertini, Jean-Philippe Aumasson, Maria Eichlseder, Florian Mendel, Martin Schlaeffer, Malicious SHA-1 Arkiveret 10. januar 2016 på 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 Arkiveret 22. oktober 2015 på Wayback Machine , 2014
  10. Wang, X., Yao, AC, Yao, Krypteringsanalyse på SHA-1. NIST - First Cryptographic Hash Work-shop Arkiveret 7. november 2016 på Wayback Machine 31. oktober 2005
  11. Wang, X., Yin, YL, Yu, H., Finde kollisioner i den fulde SHA1 Arkiveret 30. april 2015 på Wayback Machine , CRYPTO 2005
  12. Jonathan Brossard, Hardware Backdoors Are Practical Arkiveret 8. december 2015 på Wayback Machine , 12. marts 2012
  13. Gratis BIOS-projektoversigt - Coreboot Arkiveret 8. december 2015 på Wayback Machine 9. oktober 2014

Links

Se også