Panu Horsmalahti Internet-sensuurin kiertäminen Kandidaatintyö Tarkastaja: Antti Jääskeläinen 29. huhtikuuta 2012
II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Tietotekniikan koulutusohjelma Panu Horsmalahti: Internet-sensuurin kiertäminen Kandidaatintyö, 20 sivua Huhtikuu 2012 Pääaine: Ohjelmistotekniikka Tarkastajat: Assistentti Antti Jääskeläinen Avainsanat: Internet-sensuuri, DPI, DNS-sensuuri, URL-sensuuri, TCP/IP-sensuuri Internet-sensuuriin käytetään lukuisia eri teknikoita, joita käydään läpi tässä kandidaatintyössä. Tarkasteltaviin tekniikoihin kuuluu muun muassa Domain Name System -sensuuri, IP-osoitteen estäminen, URL:iin perustuva sensurointi sekä Deep Packet Inspection. Jokaisen tekniikan kohdalla käydään myös läpi kyseisen tekniikan heikkouksia ja kiertotekniikoita sekä tutustutaan esimerkkeihin siitä, missä ja kuinka tehokkaasti kyseistä tekniikkaa on käytetty. Työssä todettiin, että sensuuritekniikat on useimmissa tapauksissa helppo kiertää. Monet tekniikat aiheuttavat häiriöitä muuhun verkkoliikenteeseen.
III ALKUSANAT Tämä kandidaatintyö on tehty keväällä 2012 Tampereen Teknillisen Yliopiston ohjelmistotekniikan laitoksella. Haluan kiittää työn ohjaajaa ja tarkastajaa Antti Jääskeläistä hyvästä ohjauksesta ja kommenteista työn tekemisen aikana. Tampereella, Huhtikuun 29. päivänä 2012 Panu Horsmalahti
IV SISÄLLYS 1. Johdanto..................................... 1 2. Teoreettinen tausta............................... 2 2.1 Domain Name System........................... 2 2.2 TCP/IP-protokolla............................. 3 2.3 URL-osoitteet............................... 4 2.4 Mix-verkot................................. 5 3. Internet-sensuurin tekniikat........................... 7 3.1 Domain Name System -sensuuri...................... 7 3.2 TCP/IP-protokollan sensuuri....................... 10 3.3 URL-osoitteen sensuuri.......................... 11 3.4 Deep Packet Inspection.......................... 13 4. Johtopäätökset.................................. 16 Lähteet....................................... 18
V TERMIT JA SYMBOLIT Termi DN S DP I HT T P IP OSI malli T CP U RI U RL V P N Selitys Domain Name System -protokolla muuttaa verkkotunnukset IP-osoitteiksi. Deep Packet Inspection, eli pakettien syväluotaus tarkastelee paketin otsikkotietojen lisäksi sisältöä. Hypertext Transfer Protocol on protokolla johon webin toiminta perustuu, ja jonka avulla siirretään resursseja webissä. Internet Protocol on protokolla, jolla määritellään verkossa oleville koneille IP-osoite Open Systems Interconnection -mallilla kuvataan internetin toimintaa seitsemällä kerroksella Transmission Control Protocol on protokolla, jonka avulla voidaan lähettää paketteja eri palveluihin verkossa. Uniform resource identifier määrittelee resurssin nimen tai sijainnin, eli URL:in. Uniform resource locator on verkko-osoite, joka määrittelee resurssin sijainnin. Virtual private network on verkko, jolla annetaan turvallisesti pääsy sisäverkkoon julkisen verkon kautta.
1 1. JOHDANTO Internet-sensuuri on maailmanlaajuisesti kasvussa. Sensurointiin käytetään lukuisia eri tekniikoita eri protokollatasoilla. Eri teknologioilla on kuitenkin heikkoutensa. Tässä työssä käydään läpi kuinka Internet-sensuuri voidaan kiertää. Työ kertoo millä eri tekniikoilla Internet-verkkoa sensuroidaan, kuinka tekniikat toimivat sekä mitä heikkouksia niistä on löydetty. Työn tarkoituksena on koota yleisesti käytetyt sensuuriteknologiat ja selvittää kuinka ne voidaan kiertää. Tekniikoiden käyttämisestä käydään läpi esimerkkejä havainnoillistamaan, mitkä tekniikat ovat yleisesti käytössä. Tarkasteltavia tekniikoita ovat Domain Name System -suodatus, IP-osoitteen estäminen, URL:iin perustuva sensurointi sekä Deep Packet Inspection. Työssä käydään lisäksi läpi Mix-verkkojen periaate ja kuinka sillä voidaan kiertää sensuuri. Sensuurilla tarkoitetaan pääsyn estämistä tiettyihin sivustoihin tai palveluihin. Monet valtiot kokoavat mustia listoja sensuroiduista sivuista sekä protokollista, joiden käyttö tulee estää. Sensuroinnin yleistymisen myötä on tärkeää tietää miten eri tekniikoita kierretään, ja toisaalta mitä häiriöitä sensuuri aiheuttaa Internetin toiminnalle. Internet-sensuuria on esiintynyt pitkään ulkomailla, ja nykyään sensuuria harjoitetaan myös Suomessa. Suomessa on esimerkiksi operaattoreille vapaaehtoinen sensuuri lapsipornografiaa vastaan [21], perustuen lähinnä DNS-sensuuriin [17]. Operaattorit voidaan velvoittaa estämään pääsy tekijänoikeuksia rikkoville sivustoille, kuten tehtiin ensimmäisen kerran vuonna 2012 The Pirate Bay -sivustolle. Esto perustui DNS-sensuuriin sekä IP-osoitteen estämiseen [11]. Työ on jaoteltu neljään lukuun. Johdannon jälkeen käydään läpi Internet-sensuurin teoreettinen tausta sekä mix-verkkojen tausta. Luvussa kerrotaan perusteet Internetin toiminnasta, jotta voidaan ymmärtää sensuuritekniikoiden toiminta. Seuraavassa luvussa käydään läpi DNS-sensuuri, TCP/IP-protokollan sensuuri, URL-osoitteen sensuuri sekä DPI. Teknologioista käydään läpi niiden toimintaperiaatteet sekä kuinka sensuuri voidaan kiertää. Viimeisessä luvussa käydään läpi johtopäätökset Internetsensuurin tehokkuudesta.
2 2. TEOREETTINEN TAUSTA Internetin toimintaa, erityisesti TCP/IP-pinoa voidaan kuvata monikerroksisella OSI-mallilla. Internetin toiminta jaetaan eri protokolliin, jotka toimivat toistensa päällä eri abstraktiotasoilla. Eri sensuuritekniikat toimivat eri kerroksissa. Taulukko (2.1) kertoo miten tyypillinen TCP/IP-pino kuvataan OSI-mallissa[15, s. 7], ja missä eri tasoilla sensuuritekniikat sijaitsevat. Fyysinen kerros ilmaisee nimensä mukaisesi, miten tietoa siirretään fyysisesti. Siinä ilmaistaan erilaisia sähköisiä ja mekaanisia arvoja. Siirtokerroksessa määritellään, kuinka datasta muodostetaan siirrettäviä yksiköitä. Verkkokerroksessa määritellään kuinka paketteja reititetään verkossa. Kuljetuskerros ilmaisee, kuinka datavirta voidaan pilkkoa käsittelykokoisiin yksiköihin, kuten segmentteihin tai paketteihin. [16, s. 11] Istuntokerros tarkastaa käyttöoikeuksia ja hoitaa muita suojaukseen liittyviä tehtäviä. Esitystapakerros määrittelee miten data koodataan. Sovelluskerros on ylin kerros, jossa määritellään rajapinta sovellusten välille. Käytännössä nykyään istuntokerros, esitystapakerros ja sovelluskerros on määritelty yhdessä. [16, s. 12 13] Taulukko 2.1: TCP/IP-pino ja sensuuritekniikat kuvattuna OSI-mallissa Kerros Protokolla Sensuuritekniikka 7. Sovelluskerros URL-sensuuri 6. Esitystapakerros HTTP, DNS Deep Packet Inspection 5. Istuntokerros DNS-sensuuri 4. Kuljetuskerros TCP 3. Verkkokerros IP TCP/IP-sensuuri 2. Siirtokerros Ethernet 1. Fyysinen kerros 2.1 Domain Name System DNS on hajautettu nimipalvelujärjestelmä, jonka avulla voidaan muuttaa verkkotunnus IP-osoitteeksi. Kun halutaan ottaa yhteys verkkotunnukseen, se tulee ensin muuttaa IP-osoitteeksi, jotta reititin osaa ottaa yhteyden oikeaan tietokoneeseen. Tietokone ottaa ensin yhteyden nimipalvelun toteuttavaan palvelimeen ja kysyy siltä, mitä IP-osoitetta vastaa tietty verkkotunnus. Palvelu lähettää vastauksena IPosoitteen, jos sellainen löytyy. DNS on hajautettu järjestelmä ja kuka tahansa voi
2. Teoreettinen tausta 3 Kuva 2.1: Domain Name System -puurakenteen esimerkki [16, s. 20] perustaa oman nimipalvelimensa. Autoritäärinen nimipalvelin tarkoittaa palvelinta, joka vastaa tietystä verkkotunnuksesta. Jos palvelimelle lähetetään kysely verkkotunnuksesta, eikä palvelin ole autoritäärinen, kysyy nimipalvelin tietoa rekursiivisesti ylemmän tason DNSpalvelimilta. Yleensä tietokoneet asetetaan käyttämään palveluntarjoajan omaa nimipalvelinta. [4, s. 72] DNS-palvelimet muodostavat Kuvan (2.1) mukaisen puurakenteen. Jos kysely tehdään alimmalle tasolle, DNS-palvelimet lähettävät kyselyitä rekursiivisesti ylemmän tason palvelimelle. Viimeistään juuripalvelin (root name server) palauttaa halutun tiedon, jos verkkotunnus on olemassa. [16, s. 20] Palvelin voi lähettää vastauksena IP-osoitteen sijaan muun muassa viestin NXDOMAIN, jos verkkotunnusta ei löydetty. Vastaus REFUSED ilmaisee, ettei palvelin halua jostain syystä vastata kyselyyn. 2.2 TCP/IP-protokolla Internetin toiminta perustuu IP-protokollaan, jonka nykyhetken suosituin versio on neljä (IPv4), ja tulevaisuudessa tullaan siirtymään versioon kuusi (IPv6). Protokollan määrittelee RFC 791 [18]. Yleisesti käytetty TCP/IP-malli voidaan kuvata monikerroksisella OSI-mallilla, jossa IP-protokolla on kolmas kerros, ja neljäntenä kerroksena on TCP-protokolla [15, s. 7].
2. Teoreettinen tausta 4 IP-protokollan tärkein tehtävä on antaa verkossa oleville laitteille osoite, eli IPosoite, ja määritellä verkossa lähetettävään pakettiin lähettäjä ja vastaanottaja. Jokaisella verkossa olevalla laitteella on oma IP-osoitteensa, vaikkakin tämä rajoitus voidaan kiertää Network address translation -prosessilla. NAT:in avulla saman IPosoitteen taakse voidaan konfiguroida useita laitteita. [18] Porttinumero on TCP-paketissa oleva osa, joka määrittelee, mitä palvelua paketti koskee. Eri palveluille on määritelty omat porttinumeronsa, kuten portti 80 Webliikenteelle (HTTP), portti 443 salatulle Web-liikenteelle (HTTPS) ja portti 110 sähköpostin lukemiselle (POP3). [14] Porttinumero 80 on käytännössä kaikissa verkoissa auki, ja sitä on alettu käyttää muuhunkin liikenteeseen HTTP-protokollan lisäksi. Suodatuksessa ei siis voida enää olettaa, että porttinumero määrittelisi, minkälaista dataa portin kautta siirretään. Tästä syystä itse paketin datasisältöä tulisi analysoida protokollan määrittelemiseksi. [16, s. 32] Ongelmaksi muodostuu analyysin raskaus verrattuna porttinumeron helppoon tarkistamiseen. Paketteja voidaan analysoida muun muassa pakettien syväluotauksella, josta kerrotaan lisää Luvussa (3.4). Sisällön analyysi toteutetaan tyypillisesti välityspalvelimella. Palveluntarjoajan välityspalvelin kaappaa läpinäkyvästi kaikki paketit (tai esimerkiksi porttinumeron ja/tai IP-osoitteen perusteella). Protokolla-analyysissä varmistetaan, että paketin sisältö on protokollan mukainen. Sisältöä voidaan edelleen suodattaa etsimällä kiellettyjä avainsanoja. Paketti voidaan myös tunnistaa verkkohyökkäykseksi. [16, s. 32] 2.3 URL-osoitteet Uniform resource locator on HTTP-protokollassa määritelty sijainti resurssille. Resurssi voidaan nimetä uniform resource name:lla, eli URN:lla. Sekä URL että URN ovat URI:ja, eli uniform resource identifier:eitä. URL:ia käytetään kun annetaan esimerkiksi selaimelle nettisivun osoite. Esimerkiksi URL foo://example.com:8042/page.html määrittelee missä resurssi sijaitsee, ja tavan kuinka se noudetaan. Tässä esimerkissä resurssi haetaan foo-protokollalla portista 8042 page.html niminen tiedosto verkkotunnuksesta example.com avulla. [3, s. 15] Normaali web-sivun hakeminen on esitetty Kuvassa (2.2). Käyttäjä kirjoittaa selaimen osoitekenttään haluamansa web-sivuston URL:in. Selain lähettää ensiksi kyselyn palveluntarjoajan DNS-palvelimelle. Kyseinen palvelin lähettää edelleen kyselyn ylemmälle DNS-palvelimelle, jos verkkotunnusta ei löydy välimuistista. DNSpalvelin lähettää vastauksena IP-osoitteen. Selain ottaa yhteyden IP-osoitteeseen HTTP-protokollan avulla. Paketti menee palveluntarjoajan reitittimien kautta varsinaiselle web-palvelimelle. Palvelin lähettää edelleen vastauksena haetun sivun. [16, s. 36]
2. Teoreettinen tausta 5 Kuva 2.2: Normaalin web-selauksen toimintaperiaate [7, s. 58] 2.4 Mix-verkot Mix-verkot mahdollistavat anonyymin kommunikaation Internetissä, mutta niillä voidaan myös kiertää Internet-sensuuria. Viestien sisältö ei ole ulkopuolisten luettavissa, vaikka itse perustana oleva verkko ei olisi turvallinen. Mix-verkot toimivat vaikka kuka tahansa pystyisi lukemaan, muuntelemaan, poistamaan tai lisäämään verkossa lähetettyjä viestejä. Tekniikka ei vaadi keskitettyä auktoriteettia ja käyttää hyväkseen julkisen avaimen salausta. Verkon toimintaperiaatteen esitteli vuonna 1981 David Chaum [5]. Tekniikka salaa viestin sisällön, joten mix-verkkoja voidaan käyttää anonymiteetin saavuttamisen lisäksi Internet-sensuurin kiertämiseen. Mix-verkkojen toiminta perustuu mix-tietokoneisiin. Lähettäjä salaa viestin M vastaanottajan julkisella avaimella K a, lisäten viestiin satunnaisia bittejä R 0. Salausta merkitään K a (R 0, M). Lähettäjä salaa tämän viestin mixin salausavaimella K 1, lisäten vielä vastaanottajan osoitteen A sekä satunnaisia bittejä R 1. Merkintä a b tarkoittaa yhden mixin suorittamaa operaatiota, jossa a on syöte ja b on tuloste. [5] K 1 (R 1, K a (R 0, M), A) K a (R 0, M) (2.1)
2. Teoreettinen tausta 6 Mixi poistaa satunnaiset bitit R 1, ja edelleen lähettää viestin vastaanottajalle. Jäljittämätön vastausosoite voidaan luoda valitsemalla julkinen avain K x, jolloin vastausosoite on K 1 (R 1, A x ), K x. Mixejä voidaan yhdistää sarjaksi, jolloin viesti salataan ensiksi sarjan viimeisen mixin julkisella avaimella, sen jälkeen toiseksi viimeisellä ja niin edelleen. [5]. K n (R n, K n 1 (R n 1,..., K 1 (R 1, K a (R 0, M), A)) )) (2.2) Useampien mixien käyttäminen tekee anonymiteetistä entistä varmempaa. Viestin sisällön voivat lukea vain vastaanottaja sekä lähettäjä, joten mixien ja lähettäjien välissä olevat reititinpalvelimet eivät voi sensuroida viestiä sen sisällön perusteella. Esimerkiksi Babel [13] soveltaa mix-verkon ideaa anonyymien sähköpostien lähettämiseen. The onion routing (TOR) verkko perustuu mix-verkkojen ideoihin, vaikka tehokkuuden takia jokaista viestiä ei salatakaan moninkertaisesti [9, s. 3]. Tor:ia onkin käytetty sensuurin kiertämiseen mm. Kiinassa [22]. Toinen yleisesti käytetty mix-verkko sensuurin kiertämiseen on Freenet.
7 3. INTERNET-SENSUURIN TEKNIIKAT Internet-sensuurin toteuttamiseen on kolme eri lähtökohtaa. Musta lista estää pääsyn listassa oleville sivuille. Valkoinen lista sallii yhteyden vain listassa oleville sivuille. Kolmas ratkaisu on sisältöön perustuva suodatus (content filtering), joka ei perustu sivuihin vaan esimerkiksi avainsanoihin, joita etsitään verkkoliikenteestä [12, s. 6]. Käytännössä valkoista listaa ei käytetä sensuuriin muuten kuin organisaatioiden sisäverkoissa. Internetin sensuuri perustuukin yleensä mustaan listaan, sekä sisällön suodattamiseen avainsanoilla. Sensuurilla tarkoitetaan tässä työssä pääsyn estämistä johonkin resurssiin (kuten web-sivustoon) tai palveluun (esimerkiksi tiettyyn protokollaan). Yhteys voidaan katkaista, tai jos on kyseessä web-sivuston suodatus, ohjata erillisille estosivulle [16, s. 33]. Usein suodatus näyttäytyy käyttäjälle tietoteknisenä ongelmana. Selain voi esimerkiksi näyttää hakevan sivua useita sekuntteja, jonka jälkeen käyttäjälle annetaan virheilmoitus, eikä käyttäjä välttämättä edes tiedä että ongelma johtuu sensuurista. Tässä työssä käsitellään Internet-sensuurin teknologisia ratkaisuja sekä niiden kiertämistä. Lakitekniset määräykset sensurointiin, kuten määräykset sulkea palvelin, jätetään huomioimatta, koska ne eivät ole teknologisia ratkaisuja. Tässä työssä ei myöskään käsitellä käyttäjien vapaaehtoisesti asentamia suodatusohjelmia kotikoneille tai organisaatioiden sisäverkkoon. Suodatusohjelmat kuitenkin toimivat usein samoilla teknisillä ratkaisuilla kuin mitä käytetään Internetin sensurointiin. 3.1 Domain Name System -sensuuri DNS-sensuuri estää tietyn verkkotunnuksen eli domainin hakeminen nimipalvelimelta. Tässä luvussa käsitellään sellaista sensuuria, joka toteutetaan erikseen jokaisessa nimipalvelimessa, eikä sellaista, jossa estettäisiin tai muutettaisiin DNS-protokollan liikennettä [10, 5]. Valtio voi määrätä jokaisen operaattorin nimipalvelimen toteuttamaan sensuuri omissa nimipalvelimissaan. DNS-palvelimet muodostavat hierarkian, jonka huipulla on 13 loogista juuriserveriä. Valtiollinen sensuuri kohdistuu kuitenkin yleensä alemman tason nimipalvelimiin, joten sensuuri ei tyypillisesti vaikuta globaalisti. DNS-sensuurin toiminta on esitetty Kuvassa (3.1). Käyttäjä pyytää selainta hakemaan sivuston osoitteesta http://www.example.org/page.html. Selain lähettää sen
3. Internet-sensuurin tekniikat 8 Kuva 3.1: DNS-sensuurin toimintaperiaate [7, s. 61] jälkeen DNS-protokollaa käyttäen kyselyn palveluntarjoajan omalle DNS-palvelimelle. DNS-palvelin huomaa, että kysytty verkkotunnus on sensuurilistalla, ja lähettää vastauksen, jonka mukaan verkkotunnusta ei ole olemassa. DNS-sensuuri voidaan toteuttaa seuraavilla tavoilla [10, s. 8-9]: REFUSED Palvelin lähettää vastauksena tämän koodin, joka standardin mukaan tarkoittaa, että nimipalvelin ei suostu vastaamaan kyselyyn. Käyttäjä näkee viestin, joka on yleensä Host not found. Tämä sensuuritekniikka on standardin mukainen. NXDOMAIN Vastausviestinä annetaan Name Error -viesti, joka tarkoittaa, ettei verkkotunnusta löydy. Tämän viestin saisi lähettää vain autoritäärinen nimipalvelin, joten tekniikka on DNS-standardin vastainen. Tästä aiheuttuu Host not found -kaltaisen viestin näkyminen käyttäjälle. Verkkotunnuksen kaappaus Vastaus väärennetään osoittamaan toiseen IP-osoitteeseen, kuten poliisin ylläpitämälle sivustolle (Suomessa mm. 195.197.162.245), jossa kerrotaan sensuurista. Tekniikka on DNS-standardin vastainen. Verkkotunnuksen harhaanjohtaminen Vastaus väärennetään osoittamaan käyttämättömään tai muuten virheelliseen IP-osoitteeseen. Käyttäjän tietokone yrittää ottaa yhteyden virheelliseen osoitteeseen, mistä seuraa viesti kuten Could not connect.
3. Internet-sensuurin tekniikat 9 Hiljaisuus Nimipalvelin ei vastaa mitään asiakastietokoneelle, joten käyttäjä näkee huomattavan ajan kuluttua Host not found -tyylisen virheviestin. SERVERFAIL Käyttäjälle lähetetty vastaus tarkoittaa, että palvelimessa on tapahtunut virhe, ja käyttäjälle näytetään Host not found -tyylinen ilmoitus. Tekniikka muistuttaa hiljaisuustekniikkaa, mutta tapahtuu välittömästi huomattavan ajan sijaan. DNS-sensuurin haittapuolena ovat sen aiheuttamat häiriöt. Jos sensuroitava aineisto sijaitsee URI:ssa http://www.esimerkki.com/alasivusto, aiheuttaa DNS-sensuuri koko verkkotunnuksen www.esimerkki.com sensuroimista. Väärin konfiguroitu sensuuri aiheuttaa myös URI:n alasivusto.esimerkki.com sensuroinnin. Konfigurointia on vaikea tehdä niin, että muut palvelut, kuten sähköpostin lähettäminen osoitteeseen email@esimerkki.com, jatkaisivat toimintansa [10, s. 5]. Esimerkiksi Saksassa eri operaattorien toteuttama DNS-sensuuri aiheutti joko ylimääräisiä estoja muihin sivustoihin tai sitten antoi pääsyn sensuroituun osoitteeseen [10, s. 31]. DNS sensuurin tarkoitus on estää asiakasta saamasta selville sensuroidun verkkotunnusta vastaavaa IP-osoitetta. Jos käyttäjä on saanut tietoonsa sensuroidun IP-osoitteen mitä tahansa muuta kautta, sensuuri on helppo kiertää. Tietokoneen hosts-tiedostoon voidaan asettaa tietue, jossa määritellään sensuroitua verkkotunnusta vastaava IP-osoite, jota suositaan DNS-järjestelmän ylitse. IP-osoitteen syöttäminen suoraan selaimelle ei usein toimi, koska yhden IP-osoitteen takana voi olla monta sivustoa [10, s. 17]. Toinen tapa kiertää sensuuri on vaihtaa nimipalvelinta. Ilmaisia sensuroimattomia nimipalvelimia on yleisesti saatavilla, joten nimipalvelimen vaihtaminen on helppo ratkaisu. Sensuroidusta sivustosta voidaan myös tehdä toisiopalvelin, joka sijaitsee eri verkkotunnuksen takana[10, s. 15] mutta toistaa sensuroidun sivun sisällön. Kiertotapa on vaivaton ainoastaan staattisille sivustoille. Nykyään merkittävä osa sivustoista on kuitenkin dynaamisia, jolloin toisiopalvelimen pystyttäminen on hankalaa. Käyttäjille pitää myös tiedottaa peilipalvelimista. Sensuroidun sivuston ylläpitäjä voi luoda uusia verkkotunnuksia osoittamaan sensuroituun sisältöön, jolloin sensuroija joutuu jatkuvasti lisäämään uusia verkkotunnuksia sensuurilistoille. Uusista verkkotunnuksista tulee kuitenkin tiedottaa käyttäjille [10, s. 15]. DNS-sensuuria on Suomessa esiintynyt lapsipornografian sensuurissa [17] sekä Elisan suorittamassa The Pirate Bay -sivuston sensuurissa [11].
3. Internet-sensuurin tekniikat 10 Kuva 3.2: TCP/IP-protokollan sensuurin toimintaperiaate [7, s. 58] 3.2 TCP/IP-protokollan sensuuri Sensuuri on mahdollista toteuttaa Internet Protocol -tasolla, jolloin estetään haluttu sivusto tai palvelu IP-osoitteen perusteella. IP-osoitteen lisäksi haluttu palvelu voidaan rajata tiettyyn palveluun TCP-protokollan porttinumeron avulla [10, s. 3]. Tietyn internet-sivuston hakeminen voidaan sensuroida estämällä kaikki paketit, joiden vastaanottajana tai lähettäjänä on palvelimen, jossa sensuroitu sivu sijaitsee, IP-osoite. Jos liikenne estetään vain lähettäjän perusteella, sensuroidun palvelimen ylläpitäjä voisi huomata sensuurin, koska yksikään vastauspaketti ei menisi perille. Selaimen käyttäjälle sensuuri ilmenisi Connection timed out -tyylisenä viestinä [10, s. 3]. TCP/IP-sensuuri on havainnoillistettu Kuvassa (3.2). Selain hakee ensiksi onnistuneesti DNS-palvelimelta verkkotunnuksen IP-osoitteen. Tämän jälkeen selain yrittää ottaa yhteyden vastauksena saatuun IP-osoitteeseen. Paketti lähetetään palveluntarjoajan reitittimelle, jossa sitä verrataan listaan IP-osoitteita. IP-osoite löytyy sensuurilistalta, joten reititin pudottaa paketin. Selain ilmoittaa käyttäjälle, ettei sivustoon saatu yhteyttä. TCP/IP-protokollaan perustuva sensuuri aiheuttaa samankaltaisia ongelmia kuin DNS-sensuuri. Kaikki muutkin sivustot, jotka sijaitsevat sensuroidulla palvelimel-
3. Internet-sensuurin tekniikat 11 la, tulisivat estetyiksi. Arvion mukaan 87% verkkotunnuksista käyttivät hyväkseen virtual hosting -tekniikkaa, jossa yksi palvelin tarjoaa monen verkkotunnuksen websivustot. On siis selvää, että IP-osoitteeseen perustuva sensuuri aiheuttaa lukuisten muidenkin sivustojen estämisen. Kuuluisa esimerkki tästä häiriöstä on saksalaisen xs4all.nl sensurointi. Verkkotunnuksen IP-osoitteessa palveltiin tuhansia verkkotunnuksia [10, s. 4]. Sensuuri voidaan toteuttaa asettamalla reitittimiin sääntöjä. Reitittimet eivät lähetä pakettia eteenpäin, jos sääntöjen ehdot täyttyvät. Reititin voidaan asettaa esimerkiksi pudottamaan paketti, jos paketin lähettäjän tai vastaanottajan IP-osoite vastaa sensuroidun palvelimen IP-osoitetta. Jos sääntöön määritellään lisäksi porttinumero, eivät mahdolliset muut palvelimen takana olevat palvelut häiriinny [7, s. 59]. Esto on toiminnassa vain niille käyttäjille, joiden paketit kulkevat sensurointia suorittavan verkkolaitteen läpi. Palveluntarjoaja voidaan määrätä suorittamaan suodatusta, kuten on käynyt Suomessa Elisalle. Elisa määrättiin sensuroimaan The Pirate Bay -sivusto kolmen yksilöidyn IP-osoitteen perusteella [11]. Sensuurin voi kiertää luomalla toisiopalvelimia, mutta palvelimista joutuisi tiedottamaan jotain kautta käyttäjille. Uudet toisiopalvelimet voidaan kuitenkin edelleen sensuroida. Sensuroidun sivuston ylläpitäjä voi kiertää sensuurin myös vaihtamalla IP-osoitteita. Sensuroija voi tosin jatkuvasti päivittää uuden IP-osoitteen sensuurilistalle. IP-osoitteen vaihtaminen on teoriassa läpinäkyvää käyttäjälle. Tunnettu esimerkki tästä kiertotavasta ovat palveluntarjoaja xs4all:in toimet. Palveluntarjoja vaihtoi IP-osoitettaan tunneittain. Vaihtelu kuitenkin aiheutti teknisiä ongelmia, ja menetelmä lopetettiin muutaman päivän jälkeen. [10, s. 14]. Jos sensurointi tapahtuu IP-osoitteen lisäksi portin tai porttien perusteella, voi palveluntarjoaja vaihtaa porttia (tai tarjota palvelua muistakin porttinumeroista standardiportin ohella). Muutoksesta joutuu kuitenkin tiedottamaan käyttäjille, ja käyttäjä joutuisi spesifioimaan portin URL:ssa. Jos sensuroitu sivusto sijaitsisi osoitteessa http://www.esimerkki.com, muuttuisi se siis muotoon http://www.esimerkki.com:1234, jos sivuston ylläpitäjä tarjoaisi sivustoa portissa 1234. 3.3 URL-osoitteen sensuuri Aikasempien sensuuritekniikoiden tarkoituksena on ollut sensuroida tiettyjä verkkosivuja, mutta sensuuri on tehty verkkotunnukseen tai IP-osoitteeseen perustuvalla estolla. Vielä korkeamman protokollatason sensuuri voidaan toteuttaa perustuen suoraan URL-osoitteisiin. Usein sensuurin tarkoituksena on estää tietyn resurssin hakeminen verkosta, joten URL-osoitteen sensuuri on perusteltu valinta. Sensuuri voidaan toteuttaa HTTP-välityspalvelimella (proxy). Käyttäjät voidaan
3. Internet-sensuurin tekniikat 12 Kuva 3.3: URL-osoitteen sensuurin toimintaperiaate [7, s. 63] pakottaa tai kannustaa käyttämään palveluntarjoajan omaa HTTP-välityspalvelinta. Välityspalvelimia käytetään liikenteen suodattamisen lisäksi nopeuttamaan verkon toimintaa. Välityspalvelin voi lähettää halutun tiedoston tai sivun omasta muistista, jolloin verkon kuormitus vähenee. Palvelin voidaan lisäksi konfiguroida estämään tiettyjen sivujen lähettäminen, jolloin palvelinta voidaan käyttää sensuuriin. [7, s. 61] URL-osoitteen sensuuri on selitetty Kuvassa (3.3). Käyttäjä hakee esimerkiksi sivua http://www.example.org/page.html. Selain lähettää HTTP-pyynnön palvelutarjoajan välityspalvelimeen. Välityspalvelin huomaa, että URL-osoite on palvelimen sensuurilistalla, ja palauttaa oikean sivun sijaan estosivun. Sensuuria harjoittava välityspalvelin voi olla läpinäkymätön, jolloin käyttäjien tulee erikseen konfiguroida selaimet käyttämään sitä. Välityspalvelin voi myös olla läpinäkyvä, jolloin selaimet käyttävät sitä automaattisesti. URL-osoitteeseen perustuva sensuuri on tarkempaa kuin pelkkä DNS-sensuuri ja TCP/IP-sensuuri, koska URL ottaa huomioon myös sen, mitä sivua haetaan [7, s. 62-63]. Sensuurilista voi perustua domaineihin, ali-domaineihin, kokonaisiin URL-osoitteisiin tai avainsanoihin [16, s. 38] URL-osoitteen haittapuolena on sen hitaus [25, s. 76]. Jokainen paketti pitäisi purkaa ja tulkita, ja sitten verrata löytyykö osoite sensuurilistasta. Ongelman kiertämiseksi on tehty TCP/IP-sensuuria ja URL-sensuuria yhdistäviä ratkaisuja. Esimerkiksi BT Cleanfeed on järjestelmä, joka rakentaa IP-listan nettisivuista, jotka ovat sensuroituja. Paketteja verrataan IP-osoitteen perusteella listaan, ja jos osoite
3. Internet-sensuurin tekniikat 13 löytyy, ohjataan paketti välityspalvelimelle, joka tekee päätöksen sensuurista. Muussa tapauksessa paketti lähetetään eteenpäin normaalisti. [7, s. 64] Yksi tapa yrittää kiertää URL-sensuuria on muuttaa haluttu URL toiseen muotoon, joka ei vastaisi sensuurilistassa olevaa URL:ia. Esimerkiksi merkit voidaan muuttaa HTTP-kyselyssä escaping -tekniikalla heksadesimaalimuotoon. Jos sensuurilistalla olisi avainsana test, sen voi yrittää muuttaa muotoon t%65st, jossa %65 viittaa kirjaimeen e. Tällä on onnistuttu kiertämään sensuuria Kiinassa, jossa URLosoitteeseen perustuvaa sensuuria on tehty vuodesta 2002. [25, s. 75]. Sensuuri voidaan kiertää luomalla uusia osoitteita sensuroituun sivustoon. Jos koko domain on sensuroitu, tulee hankkia uusi verkkotunnus sivustolle. Tämän haittapuolena on se, että muutoksesta tulee tiedottaa käyttäjille. Uusia verkkotunnuksia voidaan myös jatkuvasti lisätä sensuurilistoille. Sensuuri voidaan kiertää salaamalla URL. Jos välityspalvelin ei pysty purkamaan salausta, ei sensuuri toimi. Yksi ratkaisu on käyttää Mix-verkkoja, kuten Freenet- tai Tor-verkkoa. Kummatkin salaavat haettavien sivujen, tiedostojen ja resurssien nimet, joten HTTP-välityspalvelin harjoittama suodatus ei tehoa niihin. Myös muunlaiset salatut yhteydet sensuroimattomiin palvelimiin kiertävät sensuurin, joista hyvänä esimerkkinä on VPN (virtual private network). OpenVPN on suosittu VPNtoteutus, jolla sensuurin kierto onnistuu. Suomessa Sonera toteuttaa nykyään sensuurin vapaaehtoisella HTTP-välityspalvelimella [20]. 3.4 Deep Packet Inspection Deep Packet Inspection (DPI) eli pakettien syväluotaus on tekniikka, jolla tarkastellaan pakettien sisältöä eli dataa paketin otsikkotietojen sijaan tai lisäksi. Pakettien data kattaa suurimman osan verkkoliikenteestä ja DPI mahdollistaa korkeamman abstraktiotason tarkastelun verrattuna paketin otsikkotietojen tarkasteluun. DPI:tä käytetään muun muassa tietoturvahyökkäysten torjumiseen, pakettien priorisointiin (Quality of Service) ja sisällön suodatukseen. DPI:n suosio on kasvanut viime vuosina, kun reitittimien ja palomuurien suoritusnopeudet ovat kasvaneet. [8, s. 14] DPI:ssä pakettien dataa verrataan allekirjoituksiin (signature), joiden perusteella paketti voidaan yhdistää esimerkiksi tiettyyn protokollaan. Sen perusteella paketti voidaan esimerkiksi priorisoida tai estää. DPI:ssä tutkitaan OSI-mallin kerroksia 5 7, jonka lisäksi voidaan tarvittaessa ottaa huomioon myös alempia kerroksia 3 4. Periaatetta kuvataan Kuvassa (3.4). Jokaista pakettia verrataan listaan allekirjoituksia eli kuvioita, jotka voivat olla säännöllisiä lausekkeita tai jono tavuja. DPI:llä voidaan esimerkiksi estää Sobig-F -madon leviäminen verkossa vertaamalla paketteja 76 tavun mittaiseen allekirjoitukseen, ja estämällä tunnistetut paketit. Allekirjoitukset voivat olla lyhyitäkin sanoja, tai varsin monimutkaisia säännöllisiä
3. Internet-sensuurin tekniikat 14 Kuva 3.4: Deep Packet Inspection sensuurin toimintaperiaate [2, s. 2] lausekkeita. [6, s. 2] DPI voi allekirjoitusten lisäksi käyttää heuristiikkaa pakettien suodatukseen ja priorisointiin. DPI:llä voidaan huomata, että käyttäjä lähettää paljon salattua liikennettä yhteen palvelimeen, joka voi olla merkki sensuurin kiertämisestä. Salatun yhteyden avulla pystyy kiertämään allekirjoituksiin perustuvan sensuurin. Salattuja yhteyksiä voidaan kuitenkin yrittää estää DPI:n avulla. Esimerkiksi OpenVPNverkkoliikennettä on estetty yksinkertaisesti katkaisemalla yhteydet, jotka käyttävät todella paljon kaistaa salatulla yhteydellä yhteen palvelimeen. [1] DPI:llä voidaan myös tarkastaa, noudattaako verkkoliikenne tietyssä portissa sille määriteltyä protokollaa. OpenVPN-ohjelmiston voi asettaa käyttämään porttia 443, joka on virallisesti HTTPS-protokollan portti. Syynä ovat yleensä välityspalvelimet, jotka sallivat vain portit 80 ja 443. DPI:n voi kuitenkin asettaa sallimaan vain aidon HTTPS-verkkoliikenten portissa 443, jolloin OpenVPN ei toimi siinä portissa. [1] Internet-sensuuri voidaan toteuttaa DPI:llä listalla avainsanoja, joita etsitään paketeista. Kiinassa esimerkiksi avainsana falun HTTP GET-pyynnössä estää yhteyden [24, s. 7]. DPI:tä on käytetty myös Iranissa sensuuriin, jonka seurauksena internetin nopeus on pudonnut huomattavasti [19]. DPI-sensuuri voidaan kiertää, jos voidaan lähettää paketteja, jotka eivät vastaa sensuurilistan allekirjoitussääntöjä. Salatun yhteyden avulla tai Mix-verkoilla voidaan kiertää pakettien syväluotaus, koska DPI ei pysty purkamaan viestin salausta. Ongelmaksi tulee edellä mainittu salattujen yhteyksien esto. Tor-verkon avulla voidaan kiertää sensuuri Kiinassa, mutta toisaalta siellä on yritetty jatkuvasti estää Tor-verkon käyttö. DPI:lla tunnistetaan Tor-liikenne, joka es-