You are here: TUTWiki>Tietoturva/Tutkielmat>RaporttiJariKuisti?>StealthCommunication

TTY / Tietoturvallisuuden jatkokurssi / Tutkielma 2013 / Luonnosvaihe

Jari Kuisti

Tietoliikenteen häivetekniikat

1. Johdanto

On olemassa sovelluksia, joiden tietoliikenne halutaan kätkeä tai oikeastaan häivyttää muun liikenteen sekaan siten, että sitä on vaikea havaita. Tarve häivyttämiseen voi tulla eri syistä. Syynä voi olla esimerkiksi sananvapautta rajoittavien valtioiden palomuuri/DPI -laitteiden hämääminen, operaattoreiden tietylle protokollalle asettamien liikennerajoituksien kiertäminen tai yksinkertaisesti luottamuksellisen tiedon kätkeminen muilta osapuolilta. Tässä tutkielmassa on tarkoitus käsitellä erilaisia tekniikoita liikenteen häivyttämiseksi, joita kutsutaan myös protokollaobfuskoinniksi. Tutkielma jakaantuu kolmeen osaan. Ensiksi esitellään protokollaobfuskointi yleisesti. Tämän jälkeen perehdytään kolmeen eri "häivetekniikkaan" ja lopuksi esitetään yhteenveto, jossa pohditaan häivetekniikoiden haasteita.

2. Liikenteen obfuskointi

Tietoliikenteen kätkemiseksi on olemassa useita keinoja. Näitä keinoja kutustaan protokollaobfuskoinniksi, joka tarkoittaa protokollan tarkoituksenmukaista monimutkaistamista. Protokollaobfuskointitekniikoissa poistetaan protokollien helposti tunnistettavia piirteitä, kuten deterministiset tavusekvenssit ja- pakettikoot. Tämä tapahtuu muuntamalla dataa siten, että se näyttäisi täysin satunnaiselta. Liikenteen obfuskoinnin tarkoituksena on tehdä liikenteen luokittelumoottoreille mahdottomaksi tunnistaa sovelluskerroksen protokolla. [1]. Obfuskointi toimii kääreenä (eng. wrapper) sovelluskerroksen protokollalle [2]. Julkisesti saatavilla olevia toteutuksia protokollaobfuskoinnista ovat mm. MSE (eng. Message Stream Encryption), jota esimerkiksi Bittorrent käyttää, Tor projektin obfsproxy, SkypeMorph? ja TranSteg?. MSE:tä kutsutaan myös nimellä PHE eli Protocol Header Encryption ja se on käytössä useissa eri P2P? sovelluksissa [1]. MSE kehitettiin, jotta operaattorit eivät pystyisi rajoittamaan P2P?-liikennemääriä omissa verkoissaan.[2]. SkypeMorph? sekä Tor projektin obfsproxy ovat kehitetty erityisesti läpäisemään DPI (eng. Deep Packet Inspection)/palomuuri -laitteet [3].

Liikennettä voidaan kätkeä myös tiedon hajautusalgoritmin avulla. Tähän perustuen Yhdysvaltalainen yritys Unisys on kehittänyt tuotteen nimeltään Unisys Stealth Solution Suite. Unisysin tekniikka sisältää sekä asiakasohjelmiston että erillisen laitteen, joka lisää tietynlaisen otsikon TCP/IP-pakettiin, salaa paketit ja "paloittelee" ne hajautusalgoritmin avulla [4]. Alla on tarkoituksena tarkastella hieman tarkemmin MSE- ja obfsproxy-protokollia sekä tiedon hajautusalgoritmia häivetekniikkana.

2.1 MSE

MSE on suunniteltu tarjoamaan turvallisuusominaisuuksia BitTorrent? protokollalle toimien sille kääreenä. Sen päätavoite on tarjota obfuskointia BitTorrent? protokollan tietovirroille, mutta sillä on myös muita tavoitteita, kuten luottamuksellisuuden ja autentikaation tuottaminen liikennöivien osapuolten välille. [2]. MSE ei itse asiassa naamioi BitTorrent?-liikennettä miksikään toiseksi Internetissä käytettäväksi yleiseksi protokollaksi kuten esimerkiksi HTTP tai DNS, vaan se luo paketteihin sattumanvaraisia otsikkokenttiä ja tarvittaessa myös sattumanvaraisen näköistä hyötykuormaa [5]. Se kykenee muuttamaan myös sattumanvaraisesti liikennevuota, eli esimerkiksi vaihtelemaan pakettikokoa sekä muuttamaan pakettien käsittelyyn kuluvaa aikaa. [6]. MSE protokollan kättelyssä käytetään Diffie-Hellmannin avainten vaihtoa. Tämän avulla osapuolet vaihtavat sessioavaimen, jota käytetään liikenteen salauksessa. Yllätykseksi avaintenvaihdossa ei käytetä standardia autentikointimetodia, vaan auntetikointi hoidetaan heikon esijaetun avaimen avulla. Esijaettu avain saadaan torrent-tiedoston InfoHash? -arvosta. Diffie-Hellmannin avaimen neuvottelun jälkeen loput kättelystä on salattu RC4 vuosalauksen avulla. RC4 avain perustuu Diffie-Hellmannin avaimeen sekä heikkoon esijaettuun avaimeen. Hyötykuorma salataan RC4:n avulla tai se lähetetään selväkielisenä. Hyötykuorman välitys neuvotellaan kättelyn viesteissä 3 ja 4. [2].

2.2 Obfsproxy

Obfsproxy on alunperin Tor asiakkaalle Python-ohjelmointikielellä kehitetty kehys (eng. framework), jonka avulla luodaan "kuljetusliitännäisiä" (eng. Pluggable Transports). Sen avulla pyritään "kiertämään" valtioiden DPI-laitteita, joiden tarkoituksena on estää Tor-asiakkaan ja Tor-sillan välinen liikenne. Tor projektilla on useita erilaisia kuljetusliitännäisiä, joiden tarkoitus on naamioida Tor-liikennettä eritavoin. [7]. Tässä on kuitenkin tarkoitus rajauksen vuoksi perehtyä vain obfs3-liitännäiseen, jota Obfsproxy tukee. Toisin sanoen obfs3 on protokolla, joka määrittelee kuinka liikennettä muutetaan.

Obfsproxy on erillinen sovellus ja sen avulla voidaan naamioida myös muuta kuin Tor-liikennettä. Sitä voidaan käyttää mm. OpenVPN?- ja SSH-liikenteen naamiointiin. [3]. Kuten MSE protokollakin, niin myös Obfsproxy käyttää kryptologisia menetelmiä liikenteen naamiointiin. Obfs3 aloittaa yhteyden muodostamalla DH-avaimet (Diffie Hellman). Käytössä ei ole ns. perinteinen Diffie Hellmannin algoritmi, vaan obfs3 käyttää mukautettua Diffie Hellmannin algoritmia, jota kutsutaan yhtenäiseksi tai tasaiseksi DH:ksi (eng. UniformDH?). Ideana tässä on muodostaa yksityinen avain, jonka lukuarvo on parillinen. Tämä saadaan muuttamalla luodun avaimen viimeinen bitti nollaksi. Ilman tätä muutosta DH:n julkinen avain on erotettavissa saman kokoisista sattumanvaraisista merkkijonoista. [8].

2.3 Tiedon hajautusalgoritmit

Tiedon tai informaation hajautusalgoritmi on metodi, jossa tiedosto f voidaan jakaa n:ään palaseen siten, että tiedosto f voidaan uudelleen konstruoida osasta palasista k [9]. Toisin sanoen tiedosto hajautetaan n:ään "varjoon" (eng. shadows), siten että mistä tahansa k palasesta voidaan palauttaa alkuperäinen tiedosto. [10]. Rabin [11] kuvaa saman asian seuraavasti: tiedosto F, jonka pituus on L jaetaan n palaseen (tai paikkaan) F_l,l≤i≤n, jokainen pituudeltaan |F_l | = L/m , josta m määrästä paloja voidaan uudelleen konstruoida F. Pituuksien summa on |F_l | = n/m*L. Informaation hajautusalgoritmilla on useita sovelluskohteita kuten, hajautetut järjestelmät ja niiden vikasietoinen ja tehokas tiedonsiirto sekä tiedon varastointijärjestelmien turvaominaisuuksien että luotettavuuden parantaminen. [9].

Tiedon hajautusalgoritmi ei itsessään salaa tietoa, mutta tiedolla ei kuitenkaan tee mitään, jos siitä ei ole riittävää määrää palasia tiedossa. Esimerkiksi 10-15-toteutus IDA ympäristöstä tarvitsee 10 tietovirtaa, solmua tai datavarastoa kokonaismäärästä 15, jotta tieto voidaan uudelleen konstruoida [12]. Tämä tarkoittaa sitä, että hyökkääjän pitää hyökätä kymmeneen eri kohteeseen, jotta se saa tarvittavan tiedon. Yhdistämällä tiedon salaus ja hajautusalgoritmi, saadaan luonnollisesti lisää turvallisuutta. Tällöin data salakirjoitetaan symmetrisellä avaimella, jolloin avain voidaan liittää itse tietoon, jonka jälkeen koko paketti ajetaan hajautusalgoritmin lävitse. Näin ollen avaimen hallinta yksinkertaistuu merkittävästi, koska tietty osa avaimesta on tiedon mukana hajautettuna, ei ole siis avainta hukattavana. Tässä tapauksessa, jos tieto kuitenkin jostain syystä vaarantuu, esimerkiksi 10-15-toteutuksessa, siten että hyökkääjä saa käsiinsä 10 "palasta", niin hyökkääjän tulee tuntea tiedon hajautusalgoritmi sekä salausalgoritmi, jotta hän saa alkuperäisen tiedon. [13].

3. Yhteenveto

Monet DPI-laitteet osaavat tehdä tilastollista liikenneanalyysia (eng. Statistical Protocol Identification = SPID). Tällöin pelkkä satunnaisten bittijonojen generointi ja pakettien otsikkotietojen muuttaminen ei riitä häivetekniikaksi. Tilastollisen liikenneanalyysin perusteella voidaan päätellä, kuinka jokin tietty protokolla toimii. Tällöin satunnaisesta liikenteestä voidaan poimia tietylle protokollalle tunnusomaisia piirteitä ja tunnistaa tällä tavoin liikenne muun liikenteen seasta. Esimerkiksi kolmivaiheisen TCP kättelyn jälkeen MSE protokolla lähettää 96 tavun Diffie-Hellman julkisen avaimen ja 0-512 tavua "pehmustetta" (eng. padding) palvelimelle. Tällöin MSE:n lähettämä datamäärä on aina 96-608 tavua. [1]. Liikenteen häivetekniikan tulisi ottaa huomioon tämä seikka ja häivyttää myös protokollalle tunnusomaiset piirteet satunnaisuuden avulla. Näiden piirteiden häivyttämiseen yllä esitetty obfs3 käyttää esimerkiksi muunneltua Diffie-Hellman algoritmia ainakin määrittelytasolla. Hjelmvik ja John [1] huomasivat tutkiessaan uTorrent ohjelmistossa olevaa toteutusta MSE-protokollasta, että määrittelyssä olevasta pehmusteesta käytettiin enintään 256 tavua. Tämän seurauksena ensimmäiset viestit olivat 96 - 352 tavua. Hjelmvik ja John toteuttivat myös SPID-algoritmin, joka mm. tunnisti 96 prosentin tarkkuudella MSE-prokollan. Tunnusomaisten piirteiden hävittämisessä on siis vielä paljon työtä.

Toinen haaste liikenteen häivetekniikoissa on niiden aiheuttama lisäkuorma liikenteeseen, joka vaikuttaa suoraan tiedonsiirron suorituskykyyn. Obfuskointimenetelmät lisäävät yhden kerroksen lisää normaaliin liikennöintiin, joka luonnollisesti pienentää varsinaisen hyötykuorman määrää. Yllä olevassa uTorrent esimerkissä MSE protokollaa oli heikennetty juuri sen lisäämän "protocol overheadin" vuoksi. SkypeMorph?-protokollassa "protocol overhead" oli saatu rajoitettua 28%, kun normaalissa Tor-liikenteessä se oli 12% [14]. Obfuskoinnista aiheutuvaa lisäkuormaa tulisi pystyä vielä pienentämään, mutta se tulisi tehdä heikentämättä satunnaisuutta protokollan toiminnassa.

Tiedon hajautusalgoritmin käytöstä häivetekniikkana ei ole olemassa avointa esimerkkiä, kuten MSE- ja obfs3-protokollista. Unisys ei kerro tarkasti menetelmää, jolla se obfuskoi liikenteen. Kuitenkin luvussa 2.3 esitetyllä tavalla liikennettä voitaisiin teoriassa kätkeä eri tietovirtoihin "10-15" -esimerkin mukaisesti. Lisäksi tästä menetelmästä tekee mielenkiintoisen se, että salakirjoitetun datan avaimen voisi liittää tiedon mukaan. Tämän häivemenetelmän suorituskyvystä ja tilastollisesta protokolla-analyysista ei voi oikeastaan todeta mitään, koska julkista tietoa ei ole saatavilla.

Lähteet

[1]. Hjelmvik, E and John, W. Breaking and Improving Protocol Obfuscation. Department of Computer Science and Engineering, Chalmers University of Technology, Technical Report No. 2010-05, ISSN 1652-926X, 2010.

[2]. Brumley, B. Valkonen, J. 2008. Attacks on Message Stream Encryption. Proceedings of the 13th Nordic Workshop on Secure IT Systems NordSec? ’08. ss. 163–173.

[3]. Into the Void. 2012. Bypassing censorship devices by obfuscating your traffic using obfsproxy. [WWW]. [Viitattu: 4.11.2013]. Saatavissa: http://www.void.gr/kargig/blog/tag/obfsproxy/

[4]. Unisys. 2013. Unisys Stealth Solution Suite. [WWW]. [Viitattu 7.10.2013]. Saatavissa: http://www.unisys.com/unisys/landingPages/info.jsp?id=1120000970012810072

[5]. VuzeWiki?. 2011. Message Stream Encryption. [WWW]. [Viitattu: 4.11.2013]. Saatavissa: http://wiki.vuze.com/w/Message_Stream_Encryption

[6]. SourceForge?. 2009. Identifying the Message Stream Encryption (MSE) protocol. [WWW]. [Viitattu: 4.11.2013]. Saatavissa: http://sourceforge.net/apps/mediawiki/spid/index.php?title=Identifying_the_Message_Stream_Encryption_%28MSE%29_protocol

[7]. Tor-Project. 2013. Obfsproxy. [WWW]. [Viitattu: 4.11.2013]. Saatavissa: https://www.torproject.org/projects/obfsproxy.html.en

[8]. Tor-Project. 2013. obfs3-protocol-spec.txt. [WWW]. [Viitattu 4.11.2013]. Saatavissa: https://gitweb.torproject.org/pluggable-transports/obfsproxy.git/blob/HEAD:/doc/obfs3/obfs3-protocol-spec.txt

[9]. De Santis, A. Masucci, B. 2002. On Information Dispersal Algorithms. IEEE International Symposium on Information Theory - ISIT 2002. Lausanne, Switzerland.

[10]. Lin, S. Chung, W. 2012. An Efficient (n, k) Information Dispersal Algorithm for High Code Rate System over Fermat Fields. IEEE COMMUNICATIONS LETTERS, VOL.16, NO. 12, DECEMBER 2012.

[11]. Rabin, M. O. 1989. Efficient dispersal of information for security, load balancing, and fault tolerance. Journal of the Association for Computing Machinery, Vol. 36, No. 2, April 1989.

[12]. Versace, M. 2010. 3 Tenants of Security and the Role of Information Dispersal. [WWW]. [Viitattu: 8.10.2013]. Saatavissa: http://wikibon.org/wiki/v/3_Tenants_of_Security_and_the_Role_of_Information_Dispersal

[13]. Slack, E. 2013. How To Make Object Storage More Secure. [WWW]. [Viitattu: 8.10.2013].Saatavissa: http://www.storage-switzerland.com/Articles/Entries/2013/5/23_How_To_Make_Object_Storage_More_Secure.html

[14]. Moghaddam H.M., Li, B., Derakhshani, M., Goldberg, I. 2012. SkypeMorph?: Protocol Obfuscation for Tor Bridges. Cheriton School of Computer Science. University of Waterloo. Waterloo, ON, Canada

SivuTiedotLaajennettu edit

Vaativuus Jatko
Valmius Valmis
Tyyppi Esitys
Luokitus Verkko
Mitä Luottamuksellisuus
Miltä Useita
Missä Järjestelmä
Kuka Titu-ammattilainen
Milloin Päivittäin
Miksi Muu
Print version |  PDF  | History: r2 < r1 | 
Topic revision: r2 - 29 Nov 2013 - 01:06:30 - JariKuisti?
 

TUTWiki

Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TUTWiki? Send feedback