Takaovi

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 1. lokakuuta 2022 tarkistetusta versiosta . vahvistus vaatii 1 muokkauksen .

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] .

Takaoven pääominaisuudet

Täydellinen takaovi
  • vaikea havaita;
  • voidaan käyttää toistuvasti;
  • se on helppo kieltää - se näyttää virheeltä, ja havaitessaan kehittäjä voi viitata siihen, että hän teki tämän virheen vahingossa eikä hänellä ollut pahantahtoisuutta;
  • hyödynnämme vain, jos tiedämme salaisuuden - vain se, joka tietää kuinka takaovi aktivoituu, voi käyttää sitä;
  • suojattu aiempien käyttötapojen aiheuttamilta kompromisseilta - vaikka takaovi löydettäisiin, on mahdotonta määrittää, kuka sitä on aiemmin käyttänyt ja mitä tietoja hyökkääjä on ottanut haltuunsa;
  • vaikea toistaa - vaikka joku olisi löytänyt takaoven, sitä ei voi käyttää toisessa koodissa tai toisessa laitteessa.
Yleiset periaatteet takaovien luomiseen algoritmeissa
  • algoritmin heikko vastustuskyky kryptausanalyysille ;
  • erityisesti valitut vakiot - algoritmi voi muuttua epävakaaksi kryptausanalyysille, kun se valitsee tietyt työssään käytettyjen vakioiden arvot;
  • monimutkaisuus turvallisessa toteutuksessa - tämä tarkoittaa, että algoritmin suojattu toteutus on liian hidasta ja kaikki käyttävät epävarmaa vaihtoehtoa, mikä on hyödyllistä hyökkääjälle.

Hypoteettisia esimerkkejä takaovista nykyaikaisissa algoritmeissa

DUAL_EC_DRBG näennäissatunnaisen sekvenssigeneraattorin haavoittuvuus

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.

Virhe Applen TLS -varmennusprotokollan toteutuksessa

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.

Esimerkkejä menetelmistä takaovien luomiseen

Erityisesti valitut vakiot

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:

  • 32-bittiset arvot alustetaan
  • Syöteviesti on jaettu 512 bitin lohkoihin
  • Jokainen viestilohko käsitellään ja täydennetään erityisellä tavalla standardissa määritellyn algoritmin mukaisesti.
  • Vastaanotettu viestilohko tiivistetään neljässä 20 kierroksen vaiheessa ja jokainen vaihe käyttää omaa vakio- tai
  • Jokaisen lohkon funktion tulos on uusia arvoja , jotka lisätään tulokseen:
  • Lopullinen hajautustulos on 160-bittinen arvo, joka saadaan yhdistämällä viisi 32-bittistä arvoa viestin viimeisen lohkon käsittelyn jälkeen.
Rakennusten törmäykset:

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.

Laitteiston takaovet

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:

  • Virustentorjuntaohjelmat , koodiskannerit ja muut tietoturvaohjelmistot eivät voi havaita sitä .
  • Ei voida korjata päivittämällä tai vaihtamalla ohjelmistoa.

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.

Muistiinpanot

  1. 1 2 J.P. Aumasson Cryptographic bacdooring Arkistoitu 21. joulukuuta 2019 Wayback Machinessa
  2. 1 2 3 Evgeny Sidorov, kryptografiset virheet ja takaovet Arkistoitu 8. joulukuuta 2015 Wayback Machinessa , Yandex security meet up, 24.7.2015
  3. Dan Shumow, Niels Ferguson, Takaoven mahdollisuudesta NIST SP800-90 Dual Ec Prng :ssä Arkistoitu alkuperäisestä 26. helmikuuta 2014. , CRYPTO 2007, elokuu 2007
  4. Bruce Schneier . Laittoiko NSA salaisen takaoven uuteen salausstandardiin? , Wired News  (15. marraskuuta 2007). Arkistoitu alkuperäisestä 19. syyskuuta 2012.
  5. Kiwi Bird, ei-satunnaiset onnettomuudet arkistoitu 13. maaliskuuta 2016 Wayback Machinessa // Computerra, 7. joulukuuta 2007
  6. John Bryson, Patrick Gallagher, Suositus satunnaislukujen luomiseksi käyttäen deterministisiä satunnaisbittigeneraattoreita Arkistoitu 20. helmikuuta 2016, Wayback Machine , s. 60, 2012
  7. Dan Shumow, Niels Ferguson, Takaoven mahdollisuudesta NIST SP800-90 Dual Ec Prng :ssä Arkistoitu alkuperäisestä 26. helmikuuta 2014. , sivut 6–7, CRYPTO 2007, elokuu 2007
  8. Ange Albertini, Jean-Philippe Aumasson, Maria Eichlseder, Florian Mendel, Martin Schlaeffer, Haitallinen SHA-1 Arkistoitu 10. tammikuuta 2016 Wayback Machinessa , 14.8.2014
  9. 1 2 Ange Albertini, Jean-Philippe Aumasson, Maria Eichlseder, Florian Mendel, Martin Schlaffer, Haitallinen hajautus: Eve's Variant of SHA-1 Arkistoitu 22. lokakuuta 2015 Wayback Machinessa , 2014
  10. Wang, X., Yao, AC, Yao, SHA-1:n krypta-analyysi. NIST - First Cryptographic Hash Work-shop Arkistoitu 7. marraskuuta 2016 Wayback Machinessa , 31. lokakuuta 2005
  11. Wang, X., Yin, YL, Yu, H., Löytää törmäyksiä koko SHA1:stä Arkistoitu 30. huhtikuuta 2015 Wayback Machinessa , CRYPTO 2005
  12. Jonathan Brossard, Hardware Backdoors Are Practical Arkistoitu 8. joulukuuta 2015 Wayback Machinessa 12. maaliskuuta 2012
  13. Ilmaisen BIOS-projektin yleiskatsaus - Coreboot arkistoitu 8. joulukuuta 2015 Wayback Machinessa , 9. lokakuuta 2014

Linkit

Katso myös