Takaovi , salainen sisäänkäynti ( englanninkielisestä takaovesta - "takaovi", kirjaimellisesti "takaovi") - vika algoritmissa, jonka kehittäjä on tietoisesti rakentanut siihen ja mahdollistaa luvattoman pääsyn tietoihin tai käyttöjärjestelmän kauko-ohjauksen ja tietokone kokonaisuudessaan [1] .
Takaoven päätarkoitus on päästä salaa ja nopeasti käsiksi tietoihin, useimmiten salattuihin ja suojattuihin tietoihin. Esimerkiksi salausalgoritmiin voidaan rakentaa takaovi hyökkääjän myöhempää suojatun kanavan salakuuntelua varten [1] [2] .
Tämän generaattorin on kehittänyt NSA , ja Yhdysvaltain kansallinen standardi- ja teknologiainstituutti NIST standardoi sen kryptografisesti vahvaksi näennäissatunnaislukugeneraattoriksi vuonna 2006. Kuitenkin jo vuonna 2007 riippumattomat tutkijat ehdottivat, että tähän algoritmiin voitaisiin rakentaa takaovi. [3] [4] [5]
Kuvaus algoritmin toiminnasta NSA:n spesifikaation mukaisesti [6] :
Tämä algoritmi käyttää elliptisiä käyriä. - pisteryhmän generaattori elliptisellä käyrällä, - piste elliptisellä käyrällä - standardin määrittelemä vakio, miten se on valittu, on tuntematon. Myös itse käyrän parametrit asetetaan standardilla.
Toimintaperiaate:Käyräyhtälö
voidaan kirjoittaa uudelleen muotoon ja kirjoittaa muistiin seuraavat lausekkeet algoritmin toimintaa varten:
. _ — generaattorin sisäinen tila nykyisessä vaiheessa - generaattorin sisäinen tila seuraavassa vaiheessa — generaattorin lähtö nykyisessä vaiheessa Väitetty takaovi:Koska on alkuluku , niin on olemassa sellainen luku , että . Löytäminen on laskennallisesti vaikea diskreetin logaritmin tehtävä elliptisellä käyrällä, jolle ei tällä hetkellä ole tehokkaita algoritmeja. Mutta jos oletetaan, että hyökkääjä tietää , niin saadaan seuraava hyökkäys: If on generaattorin seuraava tulos, ja jos on olemassa sellainen, että , niin piste sijaitsee käyrällä ja seuraava yhtälö pätee siihen: . Kun tiedät numeron , voit laskea: . Siten hyökkääjä, joka tietää numeron, ei voi vain laskea generaattorin seuraavaa lähtöä, vaan myös nopeasti luetella generaattorin kaikki mahdolliset sisäiset tilat ja palauttaa alkuperäisen sisäisen tilan. Riippumattomien tutkimusten [2] [7] mukaan vain 30 tavua generaattorin lähtösekvenssistä riittää palauttamaan alkuperäisen sisäisen tilan yksinkertaisella arvojen luetteloimalla. Tutkijoiden mukaan tällaista haavoittuvuutta voidaan pitää takaovena.
Yandexin tutkijat ovat havainneet haavoittuvuuden TLS-protokollan toteutuksessa yhdessä Applen ohjelmistotuotteista [2] . Heidän mielestään tämä virhe voi hyvinkin osoittautua takaoveksi, jonka yksi kehittäjistä on tietoisesti rakentanut algoritmiin.
Koodiosio, jossa on virhe: staattinen DSS -tila SSLVerifySignedServerKeyExchnge ( ....) { DSStatus virhe ; .... if (( err = SSLHashSHA1 . päivitys ( & hashCtx , & signedParams )) != 0 ) täytyy epäonnistua ; täytyy epäonnistua ; if (( SSHashSHA1 . final ( & hashCtx , & hashOut )) != 0 ) täytyy epäonnistua ; .... epäonnistua : .... palautusvirhe ; _ }Kuten näet, ensimmäisen if -lauseen jälkeen on kaksi riviä goto fail ja toinen rivi suoritetaan aina if -lauseen tuloksesta riippumatta . Siksi varmenteen varmistusmenettely on kesken. Tämän haavoittuvuuden tietävä hyökkääjä voi huijata varmennetta ja saada todennuksen. Näin hän voi järjestää välimieshyökkäyksen , mikä häiritsee suojattua yhteyttä asiakkaan ja palvelimen välillä. Tutkijat, jotka löysivät tämän virheen toteutuksessa, eivät voi varmuudella sanoa, oliko se tahallista vai vahingossa. On täysin mahdollista, että tämä on yhden kehittäjän algoritmiin sisäänrakennettu takaovi.
Monet nykyaikaiset salausalgoritmit käyttävät työssään tiettyä joukkoa sisäisiä vakioita. Yleensä nämä vakiot on määritelty standardissa ja ne valitaan salauskestävyyden vuoksi tällä hetkellä tunnetuille kryptoanalyysityypeille . Mutta vakioiden valintaa algoritmia standardoitaessa voivat teoriassa käyttää kehittäjät, joilla on pahantahtoinen tarkoitus: esimerkiksi luodakseen algoritmiin tiettyjä haavoittuvuuksia ja takaovia.
Esimerkkinä vakioiden käytöstä voidaan mainita viimeaikaiset tutkimukset niin sanotusta "haitallisesta hajautus" [8] [9] , jossa kirjoittajat onnistuivat rakentamaan törmäyksiä SHA1 kryptografiselle hajautusfunktiolle muokkaamalla sen pyöreät vakiot. Huomaa, että tutkimuksen tekijöiden ehdottama hyökkäys ei ole hyökkäys itse SHA1 -hajautusfunktiota vastaan , vaan se mahdollistaa törmäysten löytämisen vain, jos pyöreitä vakioita voidaan muuttaa ja vain tietyille tiedostotyypeille.
SHA1 : n lyhyt kuvaus :SHA1 on moderni pyöreä hash-funktio. Hajautusalgoritmi on seuraava:
Tarkastelun hyökkäyksen tarkoituksena on löytää sellaiset vakiot ja sellaiset viestit ja , että . Tämä hyökkäys muuttaa vain ensimmäiset 512 bittiä (lohko 1) sellaisista viesteistä, joiden törmäys edellyttää. Algoritmi perustuu vuonna 2005 ehdotettuun SHA1 :n tunnettuun erohyökkäykseen [10] [11] ja operaatioiden järjestyksen monimutkaisuuteen , mikä vaikeuttaa sen toteuttamista käytännössä. Siksi SHA1 :lle ei ole toistaiseksi löydetty todellisia törmäyksiä.
Mutta jos SHA1 :stä luodaan haitallinen versio , hyökkääjä voi vaihdella paitsi viestilohkoja ja myös pyöreitä vakioita . Tutkimuksen [9] mukaan tämä vähentää huomattavasti hyökkäyksen monimutkaisuutta toimintajärjestykseen ja tekee tällaisten törmäysten rakentamisesta todellisen tehtävän, joka voidaan suorittaa useilla tietokoneilla. Siten tutkimuksen tekijät onnistuivat rakentamaan yhden lohkon törmäyksiä monille tunnetuille tiedostotyypeille.
Yhden lohkon törmäys:ja - ensimmäiset viestilohkot (512 bittiä), jotka eroavat toisistaan, mutta antavat saman hash-summan - muu sisältö, joka on sama molemmissa tiedostoissa Esimerkki haitallisen tiivistyksen käyttämisestä takaovien luomiseen
Kuvatun hyökkäyksen avulla luotiin kaksi sh-skriptiä, jotka valittuna antavat saman SHA1-hajasumman, mutta toimivat eri tavalla.
Kuten näet, ero näiden kahden skriptin välillä on vain ensimmäisissä 512 bitin lohkoissa, jotka on kommentoitu roskaksi. Mutta näiden lohkojen sisältöä käytetään sitten if -tilassa , joten komentosarjat käyttäytyvät eri tavalla ajettaessa. Tekijä voi käyttää tällaisia tiedostoja pahantahtoisessa tarkoituksessa.
Takaovet voidaan upottaa paitsi ohjelmistoihin myös laitteistoon. Laitteistojen valmistajat voivat käyttää tällaisia takaovia upottaakseen niihin haitallisia toimintoja tuotantovaiheessa.
Laitteiston takaovilla on useita etuja ohjelmistoihin verrattuna:
Esimerkki laitteiston takaovesta on haitallinen BIOS -laiteohjelmisto . Tutkimusten [12] mukaan tällainen laiteohjelmisto voidaan rakentaa ilmaisen Corebootin [13] ja SeaBIOSin pohjalta . Coreboot ei ole täysimittainen BIOS: se on vastuussa vain koneessa olevan laitteiston havaitsemisesta ja ohjauksen siirtämisestä itse "BIOS-täytteelle", jota voidaan käyttää hyökkääjän muokkaamana SeaBIOSina omien tarpeidensa mukaan .
Haitallisen laiteohjelmiston toimintaperiaatetta voidaan kuvata lyhyesti seuraavasti: heti tartunnan saaneen tietokoneen käynnistämisen jälkeen, jopa ennen käyttöjärjestelmän lataamista, se yrittää muodostaa yhteyden hyökkääjän palvelimeen Internetin kautta. Jos tällainen yritys onnistuu, jokin käynnistyspaketti ladataan etäyhteyden kautta , mikä puolestaan antaa hyökkääjälle mahdollisuuden suorittaa haitallisia toimia tartunnan saaneelle tietokoneelle: tietovarkauksia tai kauko-ohjausta . Jos Internet-yhteysyritys epäonnistuu, käyttöjärjestelmä latautuu normaalisti. Hyökkääjän kiistaton etu on, että muokattu laiteohjelmisto itsessään ei sisällä haitallista koodia ja käynnistyssarjoja on vaikea havaita.
Haittaohjelma | |
---|---|
Tarttuva haittaohjelma | |
Piilotusmenetelmät | |
Haittaohjelma voittoa varten |
|
Käyttöjärjestelmien mukaan |
|
Suojaus | |
Vastatoimenpiteet |
|