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] .
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.
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.
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:
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.
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:
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.
Ondsindet software | |
---|---|
Infektiøs malware | |
Gemme metoder | |
Malware for profit |
|
Af operativsystemer |
|
Beskyttelse | |
Modforanstaltninger |
|