A TOR (The Onion Router) network működése

A probléma

Az internet működése a TCP/IP protokollon alapul, ami azt jelenti, hogy a felhasználó számítógépétől a szerverig (és vissza) az üzenetek forgalomirányító routereken keresztül haladnak, amihez az szükséges, hogy minden router lássa a feladó és a célállomás IP címét, még akkor is, ha a csomag tartalmát https protokoll titkosítja. Azaz, ha valaki elfogja az üzenetet, vagy maga az internet szolgáltató figyeli, akkor az üzenet feladójának és címzettjének az IP címét ismerni fogja, így tudni fogja, hogy ki és milyen oldalakat látogatott meg. Erre kínál egy megoldást a TOR.

Története

A TOR alapelvét, az onion routing protocolt az 1990-es évek közepén fejlesztették ki az Egyesült Államok Haditengerészeti Kutatólaboratóriumának a munkatársai, hogy megvédjék az amerikai hírszerzés online kommunikációját. 2004-ben a Haditengerészeti Kutatólaboratórium ingyenes licenc alatt kiadta a Tor kódját, majd 2006-ban létrehozták a The Tor Projectet , egy massachusettsi székhelyű, kutatási-oktatási nonprofit szervezetet , amely a Tor fenntartásáért felelős. A project 2020-ban 22 alkalmazottal dolgozott. 2012-től a Tor Project évi 2 millió dolláros költségvetésének 80%-a az Egyesült Államok kormányától származott , a másik 20%-ot a svéd kormány és más szervezetek biztosították.

Az onion routing

A fenti ábrán látható, hogy amikor Alice üzenetet küld Bobnak, akkor az üzenet három (vagy több) előre kiválasztott, egymáshoz csatlakozó csomóponton (node, reléállomás, relay) megy keresztül. Alice az üzenetet titkosítva küldi az első állomásnak (ez a belépési csomópont, entry node, vagy őrcsomópont, guard node), így az az állomás csak annyit tud, hogy ki küldte az üzenetet, de a címzettről, s a tartalomról nem tud semmit, csak annyit, hogy a melyik csomópontnak küldje tovább. A következő csomópont (középső csomópont, middle node) viszont már se a feladót, se a címzettet, se a tartalmat sem ismeri, csak annyit tud, hogy melyik csomópontnak küldje tovább. Ez az utolsó csomópont (a kilépő csomópont – exit node) már ismeri Bob címét, azaz tudja, hogy kinek kell továbbítani az üzenetet, de sem az üzenet tartalmát, se a feladót nem ismeri. Majd, amikor Bob válaszol Alicenek, akkor a válasz ugyanezen a csatornán halad végig visszafelé. Mivel a teljes útvonalról egyetlen csomópontnak sincs információja, így ez az eljárás képes az üzenet feladójának és címzettjének az anonimitását biztosítani.

Az egymás után következő csomópontok ún. áramkört (circuit) alkotnak. S mivel így több közvetítőállomás ékelődik be a feladó és a címzett közé, a felhasználó azt tapasztalja, hogy az oldalak betöltése viszonylag lassabb a hagyományos böngészőkhöz képest, ha a TOR böngészőjét használja. Az áramkört alkotó állomásokat a program véletlenszerűen választja ki, s az áramköröket is véletlenszerű időközönként lebontja, s másik áramkört épít ki.

Továbbá ez így egy eléggé leegyszerűsített kép, mivel ‘A Tor hálózat ösvényei három szintűek, illetve három részre tagolódnak (tehát három különböző ösvényen haladnak), így az initiatorral és a Tor-exittel együtt összesen 11 számítógép vesz részt egy felépült circuitban, 3×3 node közreműködésével’ (wikipedia).

a csomópontok három rétege – source: vpnmentor.com

A ‘hagyma titkosítás’

source: wikipedia

Az onion angolul hagymát jelent, ami a TOR nevében arra utal, hogy az elküldött tartalom úgy van több rétegben is titkosítva, ahogyan a hagyma héjai borulnak egymásra. Mielőtt Alice elküldené az üzenetet – három csomóponttal számolva -, azt először a kilépő csomópont kulcsával titkosítja, majd a középső csomópont kulcsával, végül pedig a belépő csomópont kulcsával titkosítva. Az üzenet elküldése után először az első csomópont dekódolja az üzenetet a saját kulcsával, de ebből csak a következő reléállomás címét tudja meg, hiszen az üzenet további része számára ismeretlen kulccsal van kódolva. Ezt követően a középső reléállomás is lefejti az üzenetről a saját titkosítási rétegét – mint a hagyma következő rétegét – de azzal csak egy újabb csomópont címéhez jut el, s egy titkosított üzenethez, amit a kilépő csomópontnak küld el. A kilépő csomópont végül lefejti róla a saját titkosítási rétegét, s megkapja az elküldendő üzenetet, s a célállomásnak (szervernek) a címét.

A teleszkóp módszer

A TOR kliens (OP Onioin Proxy) az egyes csomópontokkal (OR – Onion Router) teleszkópszerűen építi ki a titkosított kapcsolatot.

‘az áramkör fokozatosan, „teleszkópos” módon jön létre – a kiválasztott útvonalon az OP és az adott OR közötti közös kulcs létrehozásával létrejön egy áramkör az első OR-hez – ezt az áramkört kiterjesztik a következő OR-hez az adott OR-rel közös kulcs létrehozásával; ez már az előző lépésben létrehozott áramkört használja – és így tovább…’ (Buttyán – bme.hu)

forrás: Buttyán – bme.hu

A fenti kép a ‘teleszkóp’ modell segítségével szemlélteti a hagyma egyes héjainak egymásra rétegződését, ill. lehántását.

Az exit node problémája

A jelenleg letölthető legfrissebb Tor browser lehetővé teszi azt, hogy úgy csatlakozzunk a hálózathoz, hogy annak minden előnyét kihasználhassuk anélkül, hogy a számítógépünknek node szerepet kelljen felvállalnia. Ha ugyanis node szerepet vállalunk, az megnöveli a netes forgalmunkat, hiszen ekkor mi más számítógépek számára válunk csomóponttá, s veszünk részt a forgalmuk irányításában.

Régebbi verziók esetében viszont létezett egy beállítás, ahol beállíthattuk, hogy milyen csomópontok legyünk, ha csomópont szerepet szeretnénk vállalni. Ebből a szempontból a belépő és köztes relék a non-exit csomópontok, míg a kilépő relék az exit csomópontok.

Ekkor viszont komoly problémát okozhatott, hogy ha exit csomópontként működünk, akkor más számítógépek titkosítatlan forgalma rajtunk keresztül lép ki az internetre, s ha valamelyik gép illegális tartalmakat tölt le, akkor az internetszolgáltatónk minket azonosít be letöltőként, aminek jogi következményei lehetnek. Ezért már akkor sem javasolták, hogy exit csomópontként működjön a számítógépünk. (Ma már ez a beállítás jóval bonyolultabb.)

Pl. – egykor – az itkommando.hu (archivált) oldal mára már elavult tartalma szerint (2013) egy lehetőség volt a TOR browserének korabeli kiadásán a

‘forgalom TOR hálózaton belüli megosztása (nem kilépő-elosztó). Ilyenkor a TOR hálózaton belüli forgalomban részt veszünk, azonban miden adatforgalom, amely rajtunk keresztül megy, titkosított és hiányos. Ha az internetes sávszélességünk megengedi, célszerű ezt a lehetőséget választani, mivel ilyenkor anélkül segítünk másoknak, hogy abból nekünk hátrányunk származna. A többi beállítást csak azoknak ajánljuk, akik fel tudjuk mérni annak hatásait, mivel a kilépő-elosztók (exitnode) az információt már titkosítatlanul, a saját nevükben küldik ki az internetre.

A fenti oldalon megadott letöltő link egy ma már nem létező oldalra irányít, ahonnan a 2.3.25 verziót lehetett letölteni (2015), ugyanakkor ma már azon a címen csak a 12.0.2 és magasabb verziók érhetőek el.

Ellenőrizhetjük, hogy gépünk relé volt-e

Egyébként, ha a TOR használatakor kétségeink vannak, akkor az Exonera Tor szolgáltatással ellenőrizhető, hogy egy adott IP címen egy adott dátumon futott-e TOR relé.

metrics.torproject.org/exonerator.html fordítóval

‘Az ExoneraTor szolgáltatás adatbázist tart fenn azokról az IP-címekről, amelyek a Tor hálózat részét képezték. Arra a kérdésre ad választ, hogy adott napon futott-e Tor-relé egy adott IP-címen. Az ExoneraTor egynél több IP-címet tárolhat továbbításonként, ha a relék más IP-címet használnak az internetre való kilépéshez, mint a Tor-hálózatba történő regisztrációhoz, és tárolja, hogy a közvetítő engedélyezte-e a Tor-forgalomnak a nyílt internetre való továbbítását abban az időben.’

A szolgáltatás szépséghibája, hogy mivel naplózásból dolgozik, legfeljebb csak a két nappal korábbi vagy azt megelőző dátumokról tud információt adni, azaz arról nem, hogy a valós időben éppen reléként működik-e a gépünk.

Miért veszélyes exit node-t futtatni ? – Google válaszok

‘Futtatnod kell egy Tor kilépési csomópontot?
Általában nem ajánlott kilépő csomópontot futtatni az otthoni internetkapcsolatodról, hacsak nem vagy felkészülve arra, hogy fokozott figyelem irányul az otthonodra. Az Egyesült Államokban nem történt Tor kilépési csomópontok miatt eszközlefoglalások, de voltak telefonhívások és látogatások.’

‘Futtassak egy kilépő relét az otthonomból? Nem, ez kockázatos és nem ajánlott. Ha a bűnüldöző szervek érdeklődni kezdenek a kilépő relé forgalma iránt, lehetséges, hogy a rendőrök tévesen az otthonodból származónak ítélik meg a forgalmat.’

S olvashatunk már-már a nagyvárosi legendák szellemében fogant jótanácsokat is:

‘És még nem is beszéltem a SWAT-csapatokról, amelyek betörik az ajtódat, és úgy ébresztenek fel, hogy hajnali 4-kor puskát nyomnak a szádba, miközben a meglepett szomszédaid kint állnak az esőben, s végig nézik a fejüket csóválva, ahogyan téged betuszkolnak a rendőrség furgonjába, hogy aztán soha többé ne lássanak.’ (reddit)

Akkor kik futtatnak exit relay-t? Egy példa

A TOR browser indítása után megnéztem az IP címem egy ‘my IP address’ oldalon, ami a 185.220.103.120 volt, majd kicsit később a 185.220.101.83, majd később a 185.220.103.5. Egy regisztrátor whois keresőjében (mivel azok naprakészek, pl. apnic.net) megnéztem az IP cím tulajdonosát. A 185.220.103.0-185.220.103.255 IP címtartomány (185.220.103.0/24) 254 használható IP címet tartalmaz, s ez a tartomány a New York-i The Calyx Institute kutatási és oktatási non-profit szervezet tulajdonában van 2012 decembere óta, s számos TOR szervert futtat, amelyek összességében 3 Gigabit/másodperc forgalmat engednek át. Persze ez csupán néhány csomópont a teljes TOR hálózatot fenntartó több ezer csomópontból – viszont érdekes adalék, hogy ezt (is pl) egy amerikai alapítvány működteti.

Persze ennek a példának van egy szépséghibája. Ugyan az Exonera Tor ‘Result is positive‘ eredményt ad erre az IP címre, azaz ez valóban egy TOR kilépő csomópont címe, azonban a TOR-nak is van egy (csak) TOR böngészőből használható szolgáltatása, a check.torproject.org, ami viszont egészen más IP címet ad meg kilépési csomópontnak.

Azaz az, amit az internet a mi IP címünknek lát, s az amit a TOR a kilépő címünk csomópontjának lát, nem azonos – egyelőre nem tudom miért, de nézzünk rá egy példát egy másik időpontból (ne feledjük, a TOR kb. 10 percenként változtatja az áramkört, így a kilépési csomópontot is!). Ugyanabban az időpontban a két szolgáltatás más-más IP címet lát.

IP szám nyilvános myIP oldalról
IP szám a TOR szolgáltatásától

A hídrelé fogalma

A számítógépre telepített kliens, mielőtt kiépítené az áramköreit, csatlakozik egy könyvtárhoz, ahonnan letölti az elérhető állomások adatait. Azonban ezek a könyvtárak nyilvánosak, így azok az államok, amelyek blokkolni akarják a területeiken a TOR forgalmát, elérhetetlené tehetik ezeket a csomópontokat. Ezzel szemben a hídrelék (vagy röviden „hidak”) olyan Tor-relék , amelyek nem szerepelnek a nyilvános Tor-könyvtárban.

A híd relék olyan Tor relék, amelyek nem szerepelnek a nyilvános Tor könyvtárban.

Ez azt jelenti, hogy az internetszolgáltatók vagy kormányok, amelyek megpróbálják blokkolni a Tor-hálózathoz való hozzáférést, nem tudják egyszerűen blokkolni az összes hidat. A hidak hasznosak az elnyomó rezsimek alatt élő Tor-felhasználók számára, és azoknak az embereknek, akik extra biztonsági szintet akarnak, mert attól tartanak, hogy valaki felismeri, hogy egy nyilvános Tor relé IP-címével lépnek kapcsolatba. (torproject.org)

Hány TOR csomópont létezik a világon?

A metrics.torproject.org/networksize.html oldalon napra kész adatokat kaphatunk a világszerte működő relék számáról. Most a legutóbbi 15 év, 1 év és 1 hónap statisztikáit nézzük meg. Ezek alapján jelenleg nagyjából 6000 csomópont üzemel világszerte, amelyek közül 1500 kilépő csomópont. De más érdekességeket is láthatunk a statisztikákban.

elmúlt 15 év

Látható, hogy 2009 és 2015 között volt egy felfutás a relék számában, amit az okozott, hogy 2008-ban kezdődött a Tor Browser fejlesztése, aminek a kezelése jóval egyszerűbb volt, mint az addig használt eszközöké, így a számítástechnikában kevésbé járatos emberek számára is tömegesen elérhetővé vált a szolgáltatása.

A felfutás 2013-ban még meredekeben kezdett emelkedni, aminek az volt az oka, hogy ekkor történt a Snowden leleplezés, amikor is Edward Snowden ‘olyan dokumentumokat hozott nyilvánosságra, amelyek azt bizonyították, hogy az amerikai titkosszolgálatok jóformán az egész világot megfigyelik. Márpedig ez tápot adott azoknak a félelmeknek, miszerint egy olyan „Nagy Testvér” van kialakulóban, amely mindenre képes, s amivel szemben semmi, még a magánélet sem maradhat titokban.‘ (24.hu)

Ez a hír pedig bizonyára azt okozta, hogy még többen kezdték el használni a TOR anonimizáló szolgáltatásait tartva attól, hogy az Amerikai Nemzetbiztonsági Ügynökség (NSA) az internetszolgáltatókon keresztül az ő internetes forgalmukat is megfigyelheti.

elmúlt 1 év
elmúlt 1 hónap

Végül pedig az utolsó ábrán jól látható, hogy ezen év (2023) januárjában kétszer is – az elmúlt 15 év történéseihez viszonyítva – szokatlanul nagy mértékű leállás következett be a TOR relék működésében.

Beállíthatjuk, hogy Magyarországon legyen az exit node

A Tor Browser lehetőséget nyújt arra, hogy beállíthassuk, hogy a kilépő exit node – amelyen a forgalmunk kilép az internetre – melyik országban legyen. Ehhez a számítógépünkben a

..\Tor Browser\Browser\TorBrowser\Data\Tor\torrc

útvonalon elérhető torrc fájlt kell megnyitni egy jegyzettömbbel (notepad), s a következő sort kell hozzáadni a fájlhoz:

ExitNodes {Country Code} StrictNodes 1

Itt a Country Code helyére az országkódot kell megadni (gondolom ez az ISO országkód), ami Magyarország esetében így fog kinézni:

ExitNodes {hu} StrictNodes 1

Ha több országot szeretnénk beállítani, akkor ezeket egymás alá írjuk. (Pl. Ausztrális és Kanada)

ExitNodes {au} StrictNodes 1
ExitNodes {ca} StrictNodes 1

Ha a StrickNodes után 1-es számot írtuk be, akkor ha az adott országhoz nem állnak rendelkezésre csomópontok, a TOR nem csatlakozik. Ha viszont a ‘StrictNodes 0‘ értéket. A „0” azt jelenti, hogy a TOR megpróbál csatlakozni a kilépési csomóponthoz, de ha nem elérhető, akkor az alapértelmezett beállítások szerint csatlakozik a kilépési csomóponthoz. Majd ezután a TOR böngészőbe beírva a check.torproject.org címet ellenőrizzük az IP címet.

Üzemel-e kilépő csomópont Magyarországon?

A próbálkozásom – a fent ismertetett lépésekkel – sikerrel járt, s a check.torproject.org a 185.112.156.72 IP számot adta meg az exit relé címeként, s a ripe.net adatbázisa szerint a 185.112.156.0 – 185.112.156.255 címtartomány a MikroVPS Kft cég tulajdona, ami egy tárhelyszolgáltató (mikrovps.net).

Egyébként a dan.me.uk/tornodes oldalon találhatunk egy folyamatosan frissülő listát a TOR csomópontokról, ezen azonban nem tudunk országokra keresni, viszont a fenti IP szám szerepelt rajta a következő információkkal, azaz a gépem a TheAdoptee nevű magyarországi exit relét használta.

 <ip>|<name>|<router-port>|<directory-port>|<flags>|<uptime>|<version>|<contactinfo>
185.112.156.72|TheAdoptee|443|0|EFHRSDV|1897829|Tor 0.4.7.12|boobalah@privatemail.com

Egyébként a következő url-en, ha a kettőspont után az országkódot írjuk be, megkapjuk az adott országban futtatott reléállomást. Jelen példában a végére a ‘hu’ országkódot írtuk be:

https://metrics.torproject.org/rs.html#search/country:hu

S ott meg is találjuk TheAdoptee nicknévvel a fenti IP címet, s a lista tanúsága szerint a poszt írásának a pillanatában 38 TOR reléállomás működik Magyarországon. Továbbá, ha összetett keresést indítunk a metrics.torproject.org/rs.html#advanced oldalon, láthatjuk, hogy az országban jelenleg összesen 7 exit node működik, s közülük négy ahhoz az IP cím ahhoz a szolgáltatóhoz tartozik, akihez a fenti próbálkozásnál csatlakoztunk.

Amikor a csomópontot eldobható email címről regisztrálják

Pl. a Magyarországon futó Mercury nevű csomóponthoz kontaktként a 1806 at firemail dot cc email cím van megadva, ami egy ún. temporary email address, azaz egy eldobható email cím, ami egy olyan email cím, amelyet csak egy rövid ideig lehet használni (pl. 10 perc), majd automatikusan megsemmisül minden hozzá kapcsolódó adattal együtt. Ha rákeresünk a nusenu.github.io oldalon erre az email címre, akkor azt látjuk, hogy ezt az eldobható címet több különböző időpontban is létre hozták, majd négy országban négy különböző cég neve alatt négy csomópontot regisztráltak 2022 májusában és júniusában. Ezek közül egyik a Magyarországon a Mercury néven futó csomópont.

A rejtett szolgáltatások

A TOR segítségével anoním módon látogathatunk meg nyilvános webhelyeket, azonban lehetséges, hogy egyes webhelyek blokkolják a TOR-hoz való hozzáférést, s így 404-es hibaüzenetet kapunk. De az is előfordulhat, hogy egy adott exit csomópontról hirtelen tömegesen érkeznek (különböző felhasználóktól) kérések, amit az adott szerver egy felhasználónak érzékel, ezért folyton captchákat kell megoldanunk, hogy a szerver meggyőződhessen, hogy humán felhasználók vagyunk, s nem egy automatizált támadás érkezik hozzájuk.

Ugyanakkor léteznek olyan weboldalal, azaz rejtett szolgáltatások, amelyek csak a TOR hálózatán keresztül érhetőek csak el.

A Tor lehetővé teszi egy webhely számára, hogy elrejtse IP-címét a felhasználók elől. Az ilyen webhelyeket hagymaszolgáltatásoknak vagy rejtett szolgáltatásoknak nevezik .

A rejtett szolgáltatások azok a webhelyek, amelyek csak a Tor-hoz való csatlakozással érhetők el, mivel ezek magán a Tor-hálózaton belül találhatók. A legtöbb ilyen webhely általában illegális webhely, mivel a Tor hálózaton belüli védelem vonzza az ilyen webhelyeket létrehozó embereket.

A Tor hálózat megfelelő használatának fenntartásához a felhasználónak és az elérni kívánt onion szolgáltatásnak komplett Tor áramköröket kell összeállítania. Emiatt hat csomópont lesz a felhasználó és a szolgáltató között. Ez lelassítja a kapcsolatot, és megmagyarázza, hogy a hagymaszolgáltatások általában miért használnak nagyon egyszerű és könnyű webhelyeket. (dev.to)

Ezek az oldalak .onion domain végződéssel rendelkeznek, s nem érhetőek el a hagyományos böngészőből. Listát találhatunk róluk pl. a thehiddenwiki.org oldalon, ill. egy jó leírást a nem illegális, viszont érdekes oldalakról a gold.net blogjában.

De számos nyilvános oldalnak is van .onion címe, hogy olyan országokból is elérhetőek legyenek, ahol cenzúrázzák a netet, pl. a facebook .onion címe: https://www.facebookcorewwwi.onion

Egy jó cikk a keresésről a dark weben: szakembereknek.schonherzbazis.hu

Az alábbi grafikon szerint (metrics.torproject.org) jelenleg nagyjából 750 ezer .onion webcím található a sörtét weben.

Rule 41

az amerikai szövetségi büntetőeljárási szabályzat 41. szabályának módosítása … lehetővé teszik a szövetségi bírók számára, hogy 2016. december 1-jétől kezdődően házkutatási parancsot adjanak az Igazságügyi Minisztérium (beleértve az FBI-t is) számára azon személyek számítástechnikai eszközeinek a feltörésére, akik a Tor vagy VPN-t használnak – bárhol is legyenek azok az eszközök a világon.

Az új szabályok által lehetővé tett széleskörű házkutatási parancsok bármely országban a Tor-t használó emberekre vonatkoznak majd – még akkor is, ha újságírók, törvényhozók vagy emberi jogi aktivisták. Lehetővé teszik az FBI számára, hogy távolról behatoljon egy személy számítógépébe vagy telefonjába, és átkutassa és eltávolítsa az adatait. (torproject.org)

A TOR mint overlay peer-to-peer hálózat

A peer-to-peer hálózatok olyan hálózatok, amelyekben az egyes számítógépek hálószerűen vannak összekötve egymással, s egymástól kapják a tartalmakat szemben a szerver-kliens megoldással, ahol a számítógépek egy központi szerverhez kapcsolódnak, s onnan töltik le a tartalmakat. A peer-to-peer hálózatok voltaképpen ún. overlay hálózatok, amelyek az internet hálózatának a topológiájára épül rá, s az overlay hálózat node-jait tekinthetjük úgy is, mintha virtuális linkekkel lennének összekötve, amely linkek mindegyike megfelel egy útnak, amit a csomag az internet hálózatán tesz meg a routerek között a TCP/IP protokoll szerint. Pár fogalom:

  • multiplexelés: egy áramkör több TCP kapcsolatot (adatfolyamot) tud szállítani; de a multiplexelést a TOR esetében más értelemben is szokták használni: ” A kliens és a hálózat ugyanis multiplexeli, vagyis független szálakra szeleteli fel a felhasználó által generált forgalmat, szálakra bontja annak érdekében, hogy egy lehallgató egyszerre ne tudja megszerezni a forrás és cél IP-címeket is, nagyságrendekkel megnehezítve a forgalom elemzését, és a felhasználói aktivitás rekonstrukcióját.” (hwsw.hu)
  • MIX technika: MIX lényege, hogy egy olyan hálózati csomópontot valósítson meg, mely begyűjti az üzeneteket, majd átkódolva és átsorrendezve bocsájtja ki őket magából, így rejtve el a küldő és fogadó közötti kapcsolatokat (bme.hu)
  • padding használata: a padding az üzenetben elyhelyezett ürse helykitöltő, hogy ne lehessen beazonosítani az üzenet hosszát: „Az átviteli késleltetés csökkentésére a Tor csomópontok nem feltétlen várják meg, míg kellően nagy mennyiségű csomag gyűlik össze ahhoz, hogy kibocsájtáskor a csomópontot elhagyó csomagok sorrendje kellően véletlenszerű legyen, ugyanakkor igyekeznek palástolni a csomag méretét egy véletlen hosszúságú padding alkalmazásával.” (bme.hu)

A továbbiakban a Tor: The Second-Generation Onion Router pdf alapján ismertetjük a TOR működését.

A TOR szerkezete

A Tor hálózat egy overlay hálózat; minden egyes onion router (OR) egy normál felhasználói szintű folyamatként fut, különösebb jogosultságok nélkül. Minden hagyma útválasztó TLS kapcsolatot tart fenn minden más hagyma útválasztóval. Minden felhasználó helyi szoftvert futtat, amelyet hagymaproxynak (OP) neveznek, hogy lekérjen könyvtárakat, kapcsolatokat hozzon létre a hálózaton keresztül, és kezelje a felhasználói alkalmazások kapcsolatait. Ezek az onion proxyk TCP folyamokat fogadnak és multiplexelik azokat az áramkörökön keresztül. Az áramkör másik oldalán lévő hagyma-router csatlakozik a kért célállomásokhoz, és továbbítja az adatokat. Minden hagyma-router hosszú távú azonosító kulcsot és rövid távú hagymakulcsot tart fenn. Az hosszú távú azonosító kulcsot a TLS-tanúsítványok aláírására, az TOR útválasztó leírójának aláírására (a kulcsok, a cím, a sávszélesség, a kilépési politika stb. összefoglalása), valamint (címtárkiszolgálók által) a könyvtárak aláírására használják. A hagymakulcsot a felhasználók áramkör beállítására irányuló kéréseinek visszafejtésére és az efemer kulcsok egyeztetésére használják. A TLS protokoll egy rövid távú kapcsolati kulcsot is létrehoz a OR-ok közötti kommunikáció során. A rövid távú kulcsokat rendszeresen és egymástól függetlenül rotálják, hogy korlátozzák a kulcs kompromittálódásának hatását. (forrás)

A cellák

Az onion routerek egymással és a felhasználók OP-jaival efemer kulcsú TLS-kapcsolatokon keresztül kommunikálnak. A TLS használata tökéletes továbbítási titoktartás mellett elrejti a kapcsolaton lévő adatokat, és megakadályozza, hogy egy támadó módosítsa a vezetékben lévő adatokat vagy megszemélyesítse az OP-t. A forgalom ezeken a kapcsolatokon fix méretű cellákban halad. Minden cella 512 bájtos, és egy fejlécből és egy hasznos teherből áll. A fejléc tartalmaz egy áramkör-azonosítót (circID), amely meghatározza, hogy a cella melyik áramkörre vonatkozik (egyetlen TLS-kapcsolaton keresztül több áramkör is multiplexelhető), valamint egy parancsot (CMD – command), amely leírja, hogy mit kell tenni a cella hasznos terhével. (Az áramkör-azonosítók kapcsolatspecifikusak: minden áramkörnek más circID van minden egyes OP/OR vagy OR/OR kapcsolaton, amelyen áthalad). Parancsuk alapján a cellák vagy vezérlőcellák, amelyeket mindig az őket fogadó csomópont értelmez, vagy relécellák, amelyek végponttól végpontig tartó folyamadatokat szállítanak. A vezérlőcella-parancsok a következők: padding (jelenleg keepalive-ra használják, de link paddingre is használható); create vagy created (új áramkör létrehozására szolgál); és destroy (egy áramkör lebontására). A relécelláknak van egy további fejléce (a reléfejléc) a hasznos teher elején, amely tartalmazza a streamID-t (folyamazonosító: sok folyam multiplexelhető egy áramkörön keresztül); egy végponttól végpontig tartó ellenőrző összeget az integritás ellenőrzésére; a relé hasznos teher hosszát; és egy reléparancsot. A továbbító fejléc teljes tartalma és a továbbítócella hasznos terhelése együtt kerül titkosításra vagy visszafejtésre, ahogy a továbbítócella az áramkörön halad, a 128 bites AES titkosítással, számláló üzemmódban, egy titkosított folyam létrehozásához. A reléparancsok a következők: (az adatfolyamban lefelé áramló adatokhoz), relay begin (egy adatfolyam megnyitásához), relay end (egy adatfolyam tiszta lezárásához), relay teardown (egy megszakadt adatfolyam lezárásához), relay connected (az OP értesítésére, hogy a relay begin sikeres volt), relay extend és relay extended (az áramkör egy ugrással történő meghosszabbításához és visszaigazolásához), relay truncate és relay truncated (az áramkörnek csak egy részének lebontásához és visszaigazolásához), relay sendme (torlódásszabályozáshoz) és relay drop (nagy hatótávolságú dummyk megvalósításához). A következőkben vizuális áttekintést adunk a cellaszerkezetről, valamint a relécellák szerkezetének részleteiről, majd az alábbiakban részletesebben ismertetjük az egyes cellatípusokat és parancsokat. (forrás)

vezérlőcella (kapcsolatvezérlés) és relécella (adattovábbítás)
  • CircID – határozza meg a csomóponthármasból álló áramkört
  • StreamID az egyes áramkörökön belül azonosítja az adatfolyamatot (ui. több adatfolyam haladhat át az áramkörön)
  • Digest (kivonat, a hash érték) – célja, hogy külső hozzáférő ne tudja módosítani a cella tartalmát: ‘amikor az OP közös kulcsot hoz létre egy áramkörben lévő OR-ral, mindketten inicializálnak egy SHA-1 digestet a közös kulcsból származó kulccsal minden alkalommal, amikor az egyik fél létrehoz egy (a másik félnek szánt) relécellát, hozzáadja az új cella tartalmát a digesthez, és a kapott digest érték első néhány bájtját a cella digest mezőjébe helyezi.’ (bme.hu)

Az áramkör felépítése

Az Onion Routing eredetileg minden TCP-áramlathoz egy áramkört épített ki. Mivel egy áramkör kiépítése több tizedmásodpercig is eltarthat (a nyilvános kulcsú titkosítás és a hálózati késleltetés miatt), ez a kialakítás magas költségeket jelentett az olyan alkalmazások számára, mint a webböngészés, amelyek sok TCP-adatot nyitnak meg. A Torban minden egyes áramkört több TCP-folyam is megoszthat. A késedelmek elkerülése érdekében a felhasználók előzetesen építenek áramköröket. A folyamai közötti összekapcsolhatóság korlátozása érdekében a felhasználók OP-i rendszeresen új áramkört építenek, ha az előzőeket már felhasználták, és a régi használt áramköröket, amelyek már nem rendelkeznek nyitott folyamokkal, törlik. Az OP-k percenként egyszer fontolják meg az új áramkörre való váltást: így még a nagy forgalmú felhasználók is elhanyagolható időt töltenek áramkörök építésével, de egy adott kilépési csomóponton keresztül korlátozott számú kérés kapcsolható össze egymással. Mivel az áramkörök a háttérben épülnek fel, a műveleti operátorok a felhasználói élmény romlása nélkül helyreállíthatják a sikertelen áramkör-építést. (forrás)

(forrás)

Azaz a felhasználó operációs programja fokozatosan építi fel az áramköröket, és az áramkör minden egyes OR-jával, lépésenként tárgyal egy szimmetrikus kulcsról az adott OR hagymakulcsa segítségével.

IRODALOM:

https://svn-archive.torproject.org/svn/projects/design-paper/tor-design.pdf