
Poľskí výskumníci navrhli nový spôsob sieťovej steganografie založený na špecifikách fungovania široko rozšíreného protokolu na transportnej úrovni TCP. Autori tejto práce sa domnievajú, že ich schéma môže slúžiť napríklad na prenos skrytých správ v totalitných krajinách, ktoré zavádzajú prísnu internetovú cenzúru. Poďme sa pokúsiť pochopiť, v čom vlastne spočíva toto nová, a aká je jej skutočná užitočnosť.
Na prvom mieste je potrebné určiť, čo je to steganografia. Takže steganografia je veda o skrytej transmission of messages. To znamená, že pomocou jej metód sa strany snažia skryť sám fakt prenosu. V tom spočíva rozdiel medzi touto vedou a kryptografiou, ktorá sa snaží sprístupniť obsah správy na čítanie. Je potrebné poznamenať, že profesionálna komunita kryptografov je voči steganografii pomerne pohŕdajúca, kvôli blízkosti jej ideológie k princípu „Security through obscurity“ (neviem, ako to znie po slovensky, niečo ako „Bezpečnosť cez nevedomosť“). Tento princíp, napríklad, využíva spoločnosť Skype Inc. — zdrojový kód populárneho telefonického softvéru je uzavretý a nikto presne nevie, ako sa zabezpečuje šifrovanie dát. Nedávno, mimochodom, si na to sťažovali v NSA, o čom známy odborník Bruce Schneier písal vo svojom blogu.
Keď sa vraciame k steganografii, odpovedzme na otázku, prečo je vôbec potrebná, ak máme kryptografiu. Skutočne, môžeme správy zašifrovať pomocou moderného algoritmu a pri použití dostatočne dlhého kľúča ich nikto nebude môcť prečítať, pokiaľ to sami nechceme. Napriek tomu môže byť niekedy užitočnejšie skryť samotný fakt tajného prenosu. Napríklad, ak príslušné orgány zachytili vašu zašifrovanú správu, nemôžu ju dešifrovať, ale i tak by veľmi chceli, a nakoniec existujú aj metódy zasahovania a získavania informácií, ktoré nie sú počítačové. Znie to dystopicky, ale súhlasíte, že je to v zásade možné. Preto by bolo lepšie zabezpečiť, aby tí, ktorým to nie je povolené, vôbec nevedeli, že k prenosu došlo. Poľskí výskumníci presne navrhli takúto metódu. A to všetko navrhujú realizovať pomocou protokolu, ktorý každý používateľ internetu využíva tisíckrát denne.
Tento text nás prevedie na Transmission Control Protocol (TCP). Vysvetľovať všetky detaily by bola zbytočná práca — je to dlhé a nudné, tí, ktorí to potrebujú, to už vedia. Stručne povedané, TCP je protokol transportnej vrstvy (t.j. funguje „nad“ IP a „pod“ aplikačnými protokolmi, ako napríklad HTTP, FTP alebo SMTP), ktorý zabezpečuje spoľahlivú dodávku údajov od odosielateľa k príjemcovi. Spoľahlivá dodávka znamená, že ak sa nejaký paket stratí alebo dorazí zmenený, TCP sa postará o jeho opätovné odoslanie. Je dôležité poznamenať, že zmeny v pakete tu znamenajú nie úmyselné skreslenie údajov, ale chyby v prenosoch, ktoré vznikajú na fyzickej úrovni. Napríklad, kým paket putuje po medených drôtoch, môže pár bitov zmeniť svoje hodnoty na opačné, alebo sa môžu úplne stratiť v šume (pre Ethernet sa zvyčajne hodnota Bit Error Rate považuje za približne 10⁻⁸). Strata paketov na ceste je tiež relatívne častým javom na internete. Môže sa vyskytnúť napríklad v dôsledku preťaženia smerovačov, čo vedie k naplneniu buffers a následnému odmietnutiu všetkých nových prichádzajúcich paketov. Zvyčajne podiel stratenej paketov predstavuje okolo 0,1 %, a pri hodnotách niekoľkých percent TCP prestáva správne fungovať — používateľ bude zažívať výrazné spomalenie.
Tak vidíme, že preposielanie (retransmisia) paketov je pre TCP častý a v podstate užitočný jav. Prečo teda nevyužiť tento protokol na účely steganografie, keď, ako už bolo spomenuté vyššie, je TCP používané všade (podľa rôznych odhadov dnes dosahuje podiel TCP na internete 80-95 %). Podstata navrhnutého spôsobu spočíva v tom, že v posielanej správe sa neposiela to, čo bolo v pôvodnom pakete, ale údaje, ktoré sa snažíme skryť. A odhaliť takúto zmenu nie je vôbec jednoduché. Treba vedieť, kam sa pozrieť — počet súčasných TCP spojení, ktoré prechádzajú cez providera, je obrovský. Ak poznáme približnú úroveň retransmisie v sieti, môžeme nastaviť mechanizmus steganografickej retransmisie tak, aby sa vaše spojenie nijako neodlišovalo od ostatných.
Samozrejme, táto metóda nie je bez nedostatkov. Napríklad, z praktického hľadiska bude jej implementácia dosť náročná — vyžaduje to zmenu sieťového zásobníka v operačných systémoch, hoci to nie je nijako extrémne zložité. Okrem toho, pri dostatočnom množstve zdrojov je možné odhaliť „skryté“ pakety, na to je potrebné prehliadať a analyzovať každý paket v sieti. Avšak, zvyčajne je to prakticky nemožné, a preto sa obyčajne hľadajú iba niečím výnimočné pakety a spojenia, pričom navrhnutá metóda robí vašu sieťovú komunikáciu nevšednou. A nikto vám nebráni zašifrovať skryté dáta pre každú náhodu. Pri tom môže byť samotné spojenie nezabezpečené, aby vyvolávalo menej podozrení.
Autori diela (mimochodom, koho to zaujíma, to) na úrovni simulácií ukázali, že navrhnutá metóda funguje tak, ako mala. Možno v budúcnosti niekto uvedie ich myšlienku do praxe. A vtedy, dúfajme, na internete bude o niečo menej cenzúry.
Zdroj: habr.com
