You are here: TUTWiki>Tietoturva/Tutkielmat>LuukkainenJ?>2007-9

Timo Mähönen

P2P?

Johdanto

Harjoitustyössä luodaan katsaus p2p eli vertaisverkkojen kehityksen eri sukupolviin ja toimintaan. Tarkemmin pureudutaan kolmannen sukupolven ohjelmistoista erityisesti Waste:n ja sen mukana tuomiaan omia yksityisiä p2p-verkkoja, joissa käytössä hyvinkin monipuolisia salaus ratkaisuja niin keskusteluissa, tiedonsiirrossa sekä käydään ohjelman ja verkon toimintakuvio lähtien autentikoinnista. Lopussa käydään hieman pohtimaan, kuinka mahdollisesti p2p-verkkoja voitaisiin hyödyntää entistä paremmin esimerkiksi osana tieteellisiä tutkimusverkostoja, jotka toimivat ympäri maapalloa.

Tutkielmassa käytettyjä termejä

node: on mikä tahansa laite, joka on liitettynä verkkoon. Se voi olla esimerkiksi tietokone, matkapuhelin tai mikä tahansa muu verkkoon liitettävä laite ja kun liikutaan tcp/ip-verkossa nodella on myös oma ip-osoite. Monesti node on vain käyttäjä, joka samalla toimii verkonosana.[6]

hajautettutiiviste: vertaisverkoissa käytettävä tekniikka. Sen avulla löydetään toinen tietokone, jolla on haluttu tiedosto.[5] Tiivisteen avulla voidaan myös tunnistaa tiedosto täysin samaksi ja jatkaa tiedostonlatausta vaikka se olisi eri koneella.

broadcast: tarkoittaa sellaista viestiä, joka on tarkoitettu kaikkien verkon jäsenten vastaanotettavaksi.

Vertaisverkoista yleisellä tasolla

Vertaisverkko on tietokoneverkko, joka yleensä toimii joko internetissä tai lähiverkossa. Siinä voi olla keskitettyjä palvelimia, jonne käyttäjät yhdistävät tai se voi toimia myös täysin ilman keskitettyä palvelinta, jolloin jokainen verkonkäyttäjä toimii tavallaa palvelimena. Vertaisverkkoja on ollut ja tulee aina olemaan, mutta nykyään arkikielessä vertaisverkoista puhuttaessa tarkoitetaan erityisiä tiedostonjakoverkkoja, joiden suosiosta kertookin hyvin se, että maailmalla arvioidaan jopa kolmanneksen internetliikenteestä olevan bittorrent-liikennettä, joka on eräs toisen sukupolven p2p-protokolla.[4]

Erilaiset p2p-verkot

P2P?-verkot ovat kehittyneet vuosien varrella ja ne jaetaan tällä hetkellä kolmeen eri sukupolveen

Ensimmäisen sukupolven p2p-verkot aloitti aikoinaan Napster, jonka toiminta perustuu siihen että käyttäjät ovat yhteyden palvelimeen ja yhdistävät näin toisiin käyttäjiin keskustelut ja haut kulkevat palvelimen kautta, itse tiedonsiirron kuitenkin kulkiessa suoraan käyttäjältä käyttäjälle. Napsterissa käyttäjät eivät voineet perustaa omia palvelimiaan vaan kaikki käyttäjät yhdistivät samaan palvelimeen. Ensimmäisen sukupolven heikkous olikin juuri keskittyneisyys ja anonymiteetin puute, sillä käyttäjien tekemisten seurailu oli helppoa, myöskin palvelun keskitetyn rakenteen seurauksena verkon kaataminen on helppoa. Nykyisin suosituin 1. sukupolven ohjelma on direct connect, jossa nojataan keskitettyyn palvelimeen eli niin sanottuun hubiin, joita käyttäjät voivat itse perustaa.[4]

1_sukupolvi.jpg

Toisen sukupolven p2p-verkot ovat palvelimettomia ratkaisuja, joissa käyttäjät saavat toistensa tiedot jonkin kumppanin tai palvelun kautta. Tämän sukupolven verkon totaalinen kaataminen on hyvin hankalaa, sillä tämä vaatisi kaikkien verkossa olevien käyttäjien ohjelmien sammuttamista. Nämä verkot voivat olla tuhansien tai jopa kymmien tuhansien laajuisia, joten verkon kaataminen on todella vaikeaa. Toisen sukupolven verkkojen vakavin puute on kuitenkin anonymiteetin ja salauksen puute, näin ollen käyttäjiä voidaan seurailla edelleen hyvin helposti. Nykyisin suosituin toisen sukupolven verkko on FastTrack?.[4]

2_sukupolvi.jpg

Kolmannen sukupolven p2p-verkot ovat nyt vasta tulossa esille, vaikka niitä tekniikka ja ohjelmat ovat olleet hyvinkin valmiit jo vuosia. Kolmas sukupolvi tuo mukanaan erilaiset salausalgoritmit, nodejen anonymiteettiverkoston sekä tärkeänä ominaisuutena tai toteuttamistapana hajautettu tiiviste. Kolmannen sukupolven ohjelmistot ovat edellä mainituista asioista johtuen sen verran monimutkaisia, että niiden kehitys on vielä kesken. Eräs hyvin toimiva toteutus tästä sukupolvesta on Waste.[4]

3_sukupolvi.jpg

Tässä kuvatuissa 2. ja 3. sukupolven verkoissa erona lähinnä vain se, että verkon sisällä anonymiteetti säilyy ja verkossa on käytössä salaus.

Waste

Kuinka P2P?:sta tulikin F2F?

Vertaisverkkojen kehitys on eittämättä siirtynyt siihen suuntaan, että niistä halutaan tehdä hieman yksityisempiä. Käyttäjien rekisteröiminen on yksi temppu, mutta se pilaa anonymiteetin ja tällöin myös on oltava joku pääpaikka tai keskuspalvelin mistä käyttäjät tarkistetaan, tarvitaan myös ylläpitäjiä, jotka valvovat erilaisten säännöstöjen toteutumista. Waste vastaakin asiaan täysin erilaisella ratkaisulla: jätetää pois kaikenlaiset ylläpitäjät, keskitetty käyttäjähallinta, keskitetty hakupalvelu sekä myös koko liikenne kierrätetään ympäri verkkoa eri nodejen kautta. Otetaankin käyttöön suljettu verkko, jonka perustavat 2 eri jäsentä. He vaihtavat avaimia ja yhdistävät suoraan toisiinsa. Heidän välilleen muodostuu yksityinen suljettu verkko, jossa ei ole mitään tiettyä keskustaa vaan molemmat käyttäjät ovat täysin saman arvoisia. Uusi jäsen pystyy liittymään vain jos hän on vaihtanut ensin avaimia jomman kumman verkossa olevan kanssa sekä yhdistää suoraan jomman kumman ip-osoitteeseen. Tästä tuleekin termi friend to friend lyhyemmin f2f. Uusi jäsen on kuitenkin verkkoon päästyään täysin tasavertainen aikaisempien jäsenten kanssa, joten verkkoon päästyään häntä on miltei mahdoton sieltä pois potkaista.[2][3]

Toimintaperiaate

Pääpiirteiltään koko yhteyden muodostus prosessi menee siis näin: Alussa jokainen käyttäjä luo itselleen julkisen- ja yksityisenavaimen parin, joka salataan käyttäen RSA:ta. Käytännössä RSA:lle arvotaan satunnaislukuja heiluttamalla hiirtä epämääräisin liikkein ikkunassa, waste mittaa näitä liikkeitä ja muodostaa satunnaisluvut RSA:lle. Nyt nodet lähettävät tiivisteet omista julkisista-avaimistaan toisilleen ja tarkistavat, että vastapuolen julkisenavaimen tiiviste löytyy omalta luotettujen avainten listalta. Tämän jälkeen nodet neuvottelevat yhteisen istuntoavaimen haaste-vaste-menetelmää käyttäen. Seuraavaksi molemmat puolet purkavat ja todentavat haaste-vaste-menetelmällä saadut tokenit. Nyt kun molemmat puolet ovat autentikoineet toisensa päästään aloittamaan salattu liikennöinti kahden noden välillä. Tästä eteenpäin kaikki liikenne salataan käyttämällä blowfish-salausta PCBC-moodissa. Jokainen lähetetty paketti myös varmennetaan MD5:lla laskettavasta tarkitussummasta, samalla mahdollistuu se että kesken jäänyttä latausta voidaan jatkaa myös muusta kuin alkuperäisestä lähteestä, koska pystytään tarkistamaan tiedostojen todella olevan samat. Lisäominaisuuksina session-key:t voidaan yhdistää, jolloin jälkeen päin viestejä avatakseen tarvitsisi molempien puolien yksityisenavaimen. Tämän lisäksi alun neuvottelu kuin myös koko prosessikin voidaan naamioida muun liikenteen sekaan. [1]

Waste-verkko

Waste-verkko on siis virtuaalinen yksityinen hajautettu verkko, jonka muodostavat toisiinsa luottavat käyttäjät. Tällaista verkkoa kutsutaan yleisellä tasolla darknetiksi. Luottamusrinki hoidetaan vaihtamalla muiden käyttäjien kanssa julkisia-avaimia, ensimmäisellä kerralla verkkoon liityttäessä avain on manuaalisesti lisättävä ohjelmaan. Kunhan on päässyt sisälle verkkoon julkinen avain lähetetään verkkoon ja jokainen verkon jäsen saa tästä ilmoituksen automaattisesti. Verkossa ei ole mitään yhteistä keskustaa vaan nodet ottavat yhteyden suoraan toisiinsa, joten kenenkään ei tarvitse pystyttää erikseen serveriä tai hubia johon muut ottaisivat yhteyden. Verkkoon yhdistäessä on kuitenkin tiedettävä, jonkun luotetun tahon ip-osoite sekä portti, jotta itse verkkoon pääsee kiinni. Tämän jälkeen käyttäjän ohjelma alkaa yrittää muodostaa yhteyksiä muihin nodeihin verkon vahvistamiseksi ja jotta mikään verkon osa ei putoaisi pois verkosta, jonkun yksittäisen noden katkaistessa yhteytensä verkkoon. Myös verkko voidaan suojata salasanalla. Itse verkon sisällä kulkee kolmeen eri luokkaan jaettavaa liikennettä, esimerkkinä käytämme nyt tilannetta kun node 1 haluaa etsiä ja ladata verkosta tiedoston nimeltä ”tutkimustulokset.pdf”.

1. Node 1 kirjoittaa waste-ohjelmansa hakupalveluun haettavan tiedostonnimen ja lähettää näin verkkoon broadcast-viestinä kaikille verkonjäsenille kyselyn tiedostosta ”tutkimustulokset.pdf”,

2. Node x vastaa reply-viestillä, että häneltä löytyy kyseessä oleva tiedosto.

3. Node 1 ja node x aloittavat local-management viestinnän, jolla neuvotellaan linkkiyhteys kuntoon tiedostonsiirtoa varten.

Wasten käyttämät viestiluokat ovat siis broadcast, reply sekä local-management.

Waste verkko on siis hajautettuverkko eli verkon nodet toimivat sekä reitittävinä että broadcastaavina verkonosina. Hitaalla yhteydellä verkossa olevat nodet voivat kuitenki valita, etteivät reititä liikennettä, jottei verkkoon pääse syntymään pullonkauloja. Waste myös reitittää liikenteen pienimmän viiveen omaavaa reittiä, joka tasapainottaa verkon kuormaa. Waste-liikenteen mukana kulkee myös verkolle ominainen id/name, joka estää verkkojen paketteja törmäämästä toisiinsa ja näin mahdollistaa myös usean päällekkäisen verkon toiminnan.Waste-verkko ei myöskään tiputa tai muuta siirtoreittejä minkään käyttäjien toimien seurauksena, joten nuuskijoille liikenteen perusteella on todella vaikeaa selvittää millaista liikennettä, mitä liikutellaan, minne liikenne on menossa tai edes mistä liikenne on tulossa, johtuen linkkikerroksella tapahtuvasta salauksesta. Waste osaa myös saturoida liikennettä, generoimalla random dataa verkkoon, jolloin myöskään oikeasti siirretyn datan määrästä eivät ulkopuoliset pääse selville. Liikennettä ei kuitenkaan salata päästä päähän (point-to-point), joten verkossa oleva node voi nuuskia liikennettä, joka on kuitenkin salattua. Tästä ei kuitenkaan pitäisi aiheutua ongelmia, koska koko waste-verkon oli tarkoitus olla pienimuotoinen, täysin toisiinsa luottavien käyttäjien verkko. [1]

Wasten vahvuuksia

Waste tiedostonjaossa käyttämä etsimistoiminta on eräs nopeimpia p2p-sovelluksissa käytössä olevia.

Wasten keskusteluominaisuudet ovat lähempänä erilaisia messengereitä kuin yleisesti p2p:ssa käytössä olevia chatti-ikkunoita.

Waste voi naamioida protokollansa sekä myös saturoida liikennettä jonkin verran jolloin liikenneanalyysit eivät tiedä kuinka paljon oikeasti liikennettä on.

Wasteverkko toimii turvallisesti muun verkkoliikenteen seassa.

Wasten heikkouksia

Wasten protokolla on rakennettu 10-50 ihmisen privaatteja verkkoja varten, joten todella paljon isommat verkot eivät toimi niin kuin pitäisi vaan verkko yleensä hajoaa ja jakaantuu pienempiin osiin.

Waste vaatii toimiakseen turvallisesti ympärilleen todella luotetut käyttäjät.

Päätelmiä salatuista vertaisverkoista

Esimerkiksi nykyään hyvin suositut tutkimusryhmät, joissa jäsenet ovat sijoittuneet geologisesti katsottuna ympäri maapalloa pystyisivät näin muodostamaan salatun verkon avukseen, jossa olisi valmiina niin yksittäiset viestit kuin ryhmäkeskustelu sekä myös tiedonsiirto mahdollisuudet.

Lähteet

[1] http://waste.sourceforge.net/ (29.10.2007)

[2] http://en.wikipedia.org/wiki/WASTE (29.10.2007)

[3] http://msl1.mit.edu/ESD10/docs/darknet5.pdf (29.10.2007)

[4] http://fi.wikipedia.org/wiki/Vertaisverkko (29.10.2007)

[5] http://fi.wikipedia.org/wiki/Hajautettu_tiiviste (12.10.2007)

[6] http://en.wikipedia.org/wiki/Node_(networking) (12.11.2007)

-- JukkaLuukkainen? - 20 Sep 2009

Topic attachments
I Attachment Action Size Date Who Comment
1_sukupolvi.jpgjpg 1_sukupolvi.jpg manage 66.7 K 20 Sep 2009 - 11:47 UnknownUser  
2_sukupolvi.jpgjpg 2_sukupolvi.jpg manage 63.8 K 20 Sep 2009 - 11:48 UnknownUser  
3_sukupolvi.jpgjpg 3_sukupolvi.jpg manage 64.2 K 20 Sep 2009 - 11:48 UnknownUser  
Print version |  PDF  | History: r1 | 
Topic revision: r1 - 20 Sep 2009 - 11:55:23 - JukkaLuukkainen?
 

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