Difference: StealthCommunication (r2 vs. r1)

r2 - 29 Nov 2013 - 01:06 - JariKuisti? r1 - 31 Oct 2013 - 16:18 - JariKuisti?

TTY / Tietoturvallisuuden jatkokurssi / Tutkielma 2013 / Luonnosvaihe

TTY / Tietoturvallisuuden jatkokurssi / Tutkielma 2013 / Luonnosvaihe

Jari Kuisti

Jari Kuisti

  

Tietoliikenteen häivetekniikat

Tietoliikenteen salaus ja sen kätkeminen tiedon hajautusalgoritmeilla

  

1. Johdanto

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.

Perinteisesti tietoliikenne on salattu erilaisilla VPN-tekniikoilla, joista yksi tunnetuimmista ja käytetyimmistä on IPSec VPN. Esimerkiksi IPSec VPN-tunnelin ongelma on se, että verkkoliikenteestä voidaan helposti tunnistaa ESP-paketit (IPSec "tunneli-moodissa") ja näin ollen voidaan esimerkiksi päätellä liikennöivät osapuolet, koska paketin lähde- ja kohdeosoitteet eivät ole salattu. Seuraamalla liikennöintiä, esimerkiksi ajankohtaa ja liikennemääriä, voidaan tehdä johtopäätöksiä liikennöivien osapuolten johtosuhteesta tai meneillään olevasta tilanteesta. Lisäksi voidaan suorittaa kryptoanalyysia kaappaamalla paketteja. Näihin ongelmiin on pyritty vastaamaan tietotekniikassa uuden tyyppisellä ajatusmallilla, jossa tietoliikenne (paketit) pyritään salaamaan sekä hajauttamaan siten, että sitä on kokonaisuudessaan mahdoton havaita. Yhdysvaltalainen yritys Unisys on lanseerannut edellä mainitusta konseptista uuden tuotteen nimeltään Unisys Stealth Solution Suite. He markkinoivat tuotettaan lennokkaasti: "mitä et voi havaita, et voi myöskään murtaa". [1]. Tässä tutkielmassa on tarkoitus perehtyä tarkemmin Unisys Stealth Solution Suite -tuotteen käyttämiin tekniikoihin ja teknologioihin. Unisys ei esitä kovin tarkkoja teknisiä tietoja tuotteestaan, mutta tekniikoista ja teknologioista, joihin tuote väitetään perustuvan on olemassa useita tutkielmia, joita on tarkoitus käsitellä tässä tutkielmassa.

  

2. Liikenteen obfuskointi

Tiedon hajautusalgoritmit

  

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

Unisys ilmoittaa Unisys Stealth Solution Suite -tuotteen esitteessään, että se salaa tiedon FIPS 140-2 standardin mukaisella AES-256 algoritmilla. Lisäksi se käyttää tiedon hajautusalgoritmia tiedon hajauttamiseen, siten että vain oikea vastaanottaja kykenee "parsimaan" paketit kasaan. Tällä tavoin salattu liikenne pyritään kätkemään muilta. [1]. Unisysin tekniikka sisältää sekä asiakasohjelmiston että erillisen laitteen, joka lisää tietynlaisen otsikon TCP/IP-pakettiin, salaa paketit ja "paloittelee" ne hajautusalgoritmin avulla [2]. Kyseisestä tuotteesta ei tämän tarkempia teknisiä tietoja julkisista lähteistä löydy. Voidaan siis vain spekuloida, kuinka kyseinen tuote on toteutettu. Julkisesti tiedossa on, että Stealth tuotteen tietoliikenteen häivyttäminen perustuu kuitenkin tiedon hajautusalgoritmiin (Information dispersal algorithm = IDA), jota on tarkoitus käsitellä tarkemmin tässä kappaleessa.

  

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.

Tiedon tai informaation hajautusalgoritmi on metodi, jossa tiedosto f voidaan jakaa n:ään palaseen siten, että tiedosto f voidaan uudelleen konstruoida osasta palasista k [3]. Toisin sanoen tiedosto hajautetaan n:ään "varjoon" (eng. shadows), siten että mistä tahansa k palasesta voidaan palauttaa alkuperäinen tiedosto. [4]. Rabin [5] 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. [3].

  

2.1 MSE

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 [6]. 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 kryptataan 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. [7].

  

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

Päätelmät / yhteenveto

  

2.2 Obfsproxy

Vastaukset ongelmaan tiivistetään tässä luvussa, jonka maksimipituus on sama kuin johdantoluvunkin. Tässä ei toisteta aiempia ilmaisuja eikä viitata aiempiin kohtiin. Toisaalta uusia näkökulmia ei tuoda esille, paitsi ehkä mainintoja siitä, miten työtä voisi jatkaa: syvemmälle tai laajemmalle. Lukija voi lukea vain johdannon ja päätelmät. Päätelmäluku on hyvä, jos lukija tällöin haluaakin lukea, mitä välissä on.

  

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

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.

SivuTiedotLaajennettu edit
Vaativuus Jatko
Valmius Valmisteilla
Tyyppi Esitys
Luokitus Verkko
Mitä Luottamuksellisuus
Miltä Useita
Missä Järjestelmä
Kuka Titu-ammattilainen
Milloin Päivittäin
Miksi Muu
  

[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
r2 - 29 Nov 2013 - 01:06 - JariKuisti? r1 - 31 Oct 2013 - 16:18 - JariKuisti?

View topic | View difference interwoven | History: r2 < r1 | More topic actions
 
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