Lezajlott idén is a Hacktivity, amelyet már jó ideje szemmel követünk és igyekszünk promózni is. Bár a konferencia fő témái általában azért távolabb állnak a mi alap érdeklődési körünktől, gyakran (sőt talán eddig minden évben) volt egy-egy olyan előadás, ahol igazán otthon érezhettük magunkat, mert valamilyen formában P2P technológia volt a téma.

iknowwhatyoudidlastsummerquiz

Jós Tamás és  Bogár Attila, “I know what you downloaded this summer”, című előadása volt idén az, ami nekünk leginkább témába vágott. A prezentáció a BitTorrent névtelenségéről, vagyis inkább annak a hiányáról szólt. Az előadásra egyébként a BitTorrent-tel még csak ismerkedők (vannak ilyenek) is beülhettek, ugyanis az első pár percben és slide-on csak bemelegítették a közönséget a témára, tisztáztuk az alapokat. Így például azt is, hogy a P2P programok nem a BitTorrenttel születtek meg, már jóval előtte is léteztek P2P alapú szoftverek. És igen, nagyrészt fájlcserélő szoftverekről beszélhetünk, amelyek megalapozták a peer-to-peer rossz hírnevét. Emlékeztek még a Napsterre, vagy a Gnutellára?  De az téves állítás lenne, hogy csak (illegális) fájlcserére jó a P2P. Az eredeti (még a Microsoft felvásárlás előtti) Skype is használt P2P technológiát, de a Facebook is ezzel a megoldással teszi ki szervereire az oldal új forráskódját (erről 2010-ben mi is írtunk).

A bemelegítő után kicsit máris mélyebb vizekre evezhettünk, megismerkedtünk a .torrent fájlokkal, és a magnet url-lel is.  Csak röviden és tömören, hiszen ti ezt már tudjátok. A .torrent fájl tartalmaz minden információt a torrentről.

Úgy mint:

  • infohash
  • a tracker címe
  • megjegyzés
  • a készítés dátuma (és a szoftver)
  • hossza
  • a fájlok listája
  • …stb

Ahogy az látható, ez nem kevés információ, és egy-egy nagyobb release .torrent állománya szépen elhízhat több 100 kilobyte-ra. Persze amíg mi csak azokat a fájlokat töltjük le és tároljuk, amelyek érdekelnek, addig ez nem jelent problémát. De mi van például a trackerrel, amely ezeket tárolja. Lásd a PirateBay, amely még mindig a világ legnépszerűbb ilyen oldala, és több mint 5 millió torrentet indexel ebben a pillanatban.

Erre a problémára (is) megoldás a magnet link. A magnet link nem friss találmány, a a Magnet URI séma már 2002-ben kifejlesztésre került. A lényeg, hogy egy szabványos url formájában megkaphatjuk azokat a feltétlen szükséges információkat, amellyel egy kliens már el tudja kezdeni a fájlok letöltését. Ez BitTorrent esetében egy infohash, és a kiszolgáló tracker (vagy éppen trackerek) elérhetősége, illetve a display name, azaz a torrent neve. Például egy Ubuntu iso-ra mutató magnet link:

magnet:?xt=urn:btih:F36C92A8F78A1AFF70A61A5F5BFE5E6757176133&dn=ubuntu+12+10+desktop+amd64&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80%2Fannounce&tr=udp%3A%2F%2Fopen.demonii.com%3A1337

A pirossal jelölt részek sorrendben: az infohash, a torrent neve, és a trackerek elérhetőségei. Amikor 2012-ben, az év elején a Pirate Bay áttért a magnet linkek használatára, az egész komplett tracker mérete nem érte el a 100 MB-ot. Így nagyon rövid idő alatt lehetett a trackert egyik helyről a másikra költöztetni, vagy éppen duplikálni.

De ahogy említettük nemcsak a méret csökkenés volt a magnet linkek előnye. Természetesen a másik ok jogi indíttatású. A torrent fájlokban már valamilyen szinten szerepelnek azok az állományok, amelyek összeillesztésével hozzáférhetünk a teljes fájlhoz. Így amikor egy torrent fájlt letöltünk (még az adatforgalmazást nem kezdtük meg), máris hozzá kapcsolhatnak a célállományokhoz. A magnet linkek használatával ez értelemszerűen kikerülhető.

Miután ennyi helyen említve volt már a tracker, a következő pár percben a két előadó tisztázta, pontosan mi is az a tracker. Ti és mi persze tudjuk, hogy miről van szó, de azért érdemes átismételni. A tracker-based-network esetében a tracker az a központi szerver, amely a torrentekhez tartozó infohasht tárolja, és kezeli a peereket. Ez azt jelenti, hogy amikor belép egy új letöltő, a trackertől kér adatokat, hogy honnan tudná megkezdeni a letöltést. A tracker ilyenkor egy ip/port listát küld, amelyet a kliens feldolgoz, és kapcsolódik a többi letöltőhöz. A privát trackerek esetén további extra feature természetesen, hogy a kliensek a trackernek byte-ra pontosan jelentik, hogy mennyit töltöttek fel, illetve le. A publikus trackerek esetén ez a forgalmazás irtózatos adatmennyiséggel jár (még ha a fel- és letöltési adatokat nem is dolgozzák fel). Ezért tértek át sok helyen a http alapú trackerekről az udp alapúra. Az UDP sokkal gyorsabb és kevesebb forgalmat generál, mint egy http, cserébe viszont nem megbízható. A tracker esetén nem fontos, hogy néha egy-egy lista elküldése nem valósult meg, vagy a klienshez nem ért el, sokkal fontosabb, hogy ezeket gyorsabban és kevesebb erőforrás felhasználásával tehetik meg.

A tracker szekció után a DHT-ről is szó esett. A DHT (Distributed Hash Table) lehetővé teszi olyan torrentek létrehozását, ahol nem szükséges a tracker megléte, és működése a letöltéshez. Ilyenkor a peerekről lévő információ a felhasználók között tárolódik elosztva. A publikus oldalaknál a DHT az esetek többségében engedélyezve van, és használható, a privát, zárt oldalaknál viszont a DHT (ahogy a többi hasonló feature, mint például Peer EXchange, vagy a Local Peer Discovery) ki van kapcsolva, hiszen így a kliensek közötti adatforgalmazásról a tracker nem tudna.

Innentől kezdett érdekes lenni az előadás a mélyebb tudással rendelkezők számára is. Mit is készítettek, mivel is foglalkoznak tulajdonképpen az előadók. Készítettek egy Python scriptet, amivel a népszerűbb hazai trackerek egy részét nekiállták megfigyelni, lekérni. ( A megfigyelt oldalak voltak az nCore,  a Bithorlo, a Biztone, a MyCarpathians, a Mikrobit és a Teracod. Az nCore-ról hamar bannolták őket, amint azt megtudtuk, illetve bH accuk nem volt.) Ezzel mintegy kis helyi adatbázist hoztak létre, amelynek során 16 ezer torrent fájlt töltöttek le, és 140 ezer peert rögzítettek.

A peerek adatait később reverse DNS és GEOip segítségével kibővítették. A sima peer rögzítés mellett azt is rögzítették, hogy mely ip volt a forrás, illetve, hogyan kapcsolódtak később az egyes IP-k egymás után. Az egyik nagy “megfigyelés”, illetve tanulság itt volt elcsíphető. Habár sokan használnak VPN-t arra, hogy eredeti kilétüket a lehető legjobban elfedjék, ezt gyakran nem megfelelően csinálják. Hogy mit is értettek ez alatt? Nagyon egyszerű, a VPN-re való kapcsolódás többször csak azután történt meg, hogy a torrent forgalmazás elkezdődött. Így bár a BitTorrent forgalom nagy  része már VPN mögött történt, mégis tudták, hogy az adott VPN-re kapcsolódás előtt ki kezdte el tölteni a torrentet. Tehát vegyétek ki az autostart-ból a torrent klienst 😉

Hasonló megfigyelések, sokkal komolyabb következményekkel egyébként voltak, vannak és lesznek is a világhálón. Németországban például kifejezetten a friss filmek, illetve a hazai gyártású filmek, zenék letöltőit figyelték meg. A megfigyelésből többször jogi lépések is következtek. Így történhetett meg az például, hogy valaki több ezer eurós büntetést kapott egyetlen kamerás release letöltése miatt.

A hazai megfigyelés eredménye, és adatai remélhetőleg nem kerülnek hasonló helyre. Az adatbázisban egyébként lefuttattak pár érdekes keresést, és a peerek között olyan stringek bukkantak fel elég gyakran, mint például sulinet, mail szerverek, vpn szolgáltatók, BME, vagy éppen kormányzati domainek. Az adatokat szóban nehéz vizualizálni, de a konferencián kivetített slideshow elméletileg ki fog kerülni az oldalra, és akkor mi is bemutatjuk, illetve tervben egy interjú / poszt a készítőkkel is. Erről később még tájékoztatunk benneteket.

Az előadás alaptanulsága röviden tehát ennyi: senki ne gondolja azt, hogy rejtve marad a torrentezése, nagyon könnyű az ember nyomára bukkanni, illetve azt is fontos kiemelni, hogy ha már valamilyen védekező megoldást használunk (lásd VPN), akkor azt megfelelő módon tegyük, a hülyeség ellen ugyanis semmi sem véd.