SZABAD ADATOK, VÉDETT ADATOK 2. ITA 2008; 253–280.
Alkalmazás-független anonimizáló rendszerek áttekintése Szili Dávid
*
Budapesti Mőszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Híradástechnikai Tanszék 1117 Budapest, Magyar tudósok körútja 2. BME I ép. IE 429. Telefon: +36 1 463–3261, Fax: + 36 1 463–3263 e-mail:
[email protected] Absztrakt Napjaink internetes környezetében egyre növekvı igény mutatkozik a felhasználók anonimitásának biztosítására. Az e célt megvalósító alkalmazások esetében az egyes üzenetek biztonsága közel sem elégséges feltétel a megfelelı anonimitás eléréséhez: különleges protokollokra van szükségünk, hogy elfedjük a kommunikáló felek kilétét. E protokollok használata azonban többlet erıforrásokat igényel és jelentıs késleltetéssel jár, ezért valós idejő alkalmazásoknál, mint amilyen például a hang- és videó-átvitel, a közvetlen üzenetküldés, a használatuk számos nehézségbe ütközik. A tanulmányban eltérı felépítéső anonimizáló protokollokat tekintünk át, bemutatjuk mőködésüket és vizsgáljuk, hogy milyen szinten képesek biztosítani a velük szemben támasztott követelményeket az ismert támadások ellen, és hogy mekkora járulékos hálózati forgalmat generálnak. Kulcsszavak: privacy, anonimitás, kriptográfia, protokoll, támadások 1. Az anonimizáló protokollokról általában A felhasználók anonimitásának biztosítása érdekében a kommunikáció lehallgathatatlansága és sérthetetlensége közel sem elégséges feltétel, ezért külön erre a célra kifejlesztett, speciális protokollokra van szükségünk. Az anonimizáló protokollok célja, hogy különféle kriptográfiai és hálózati módszerekkel, illetve adatelemekkel elfedjék a fennálló kommunikációs kapcsolatot oly módon, hogy a hálózat mőködésébıl automatikusan kinyerhetı információkat — mint például az IP címek, a hálózati kapcsolatok, a földrajzi topológia — elrejtik. Ezáltal a hálózat szintjén valóban anonimitás
*
Szili Dávid IV. évfolyamos mőszaki informatika szakos és II. évfolyamos villamosmérnök szakos hallgató, BME Híradástechnikai Tanszék.
SZILI DÁVID
áll elı, éppen ezért használatuk elengedhetetlen, ám a teljes anonimitáshoz magasabb hálózati rétegekben is szükséges lehet az anonimitás védelme. A jelen tanulmányban nem térünk ki azokra a protokoll-függı megoldásokra, melyek csak egy adott szolgáltatással, alkalmazással mőködnek (mint például a Crowds [12], amely kizárólag HTTP protokoll felett mőködik, illetve a különféle anonim remailerek, mint amilyen például a Mixmaster [11], amelyek az e-mail szolgáltatást egészítik ki). Helyettük olyan alkalmazás-független lehetıségekre koncentrálunk, amelyek mintegy kiterjesztik a jelenleg használt hálózati protokollokat, megfelelı szintő anonimitást biztosítva, és ezzel lehetıvé teszik tetszıleges, már létezı szolgáltatásokba való integrálásukat. Az anonimizáló protokollok jobbjainak van néhány minıségbeli ismérve: • • •
egyrészt, nem igényelnek nagy mennyiségő erıforrást a kommunikáló felektıl az anonimitás szintjének növekedésével; másrészt, az anonimitás erısségének emelkedésével a támadó által az anonimitás megtöréséhez szükséges erıfeszítés is növekszik; végezetül pedig, harmadik felek nem képesek felvenni a kommunikáció kezdeményezıinek szerepét.
Mielıtt a protokollok részletes tárgyalásába kezdenénk, szükséges néhány alapfogalom tisztázása. A következıkben ezeket vesszük sorra. 1.1. Rendszerjellemzık A fentiek alapján az anonimizáló protokollok legfontosabb jellemzıi a következık: •
•
•
254
Hálózati terhelés: Az anonimizáló protokollok jelentıs hálózati késleltetést okoznak és legtöbbször nagy sávszélesség-igényőek is, így a manapság egyre növekvı fontosságú, valós idıben zajló adatátvitelnél (például hang- és videóátvitel, közvetlen üzenetküldés) lényeges szempont, hogy mekkora járulékos terhet rónak a hálózatra. Skálázhatóság: A skálázhatóság a rendszer egy olyan képessége, amely megmutatja, hogy a rendszer által felhasználható erıforrások számát növelve a rendszer mennyivel több terhelést képes elbírni. Bizalmasság: Adatok esetében a bizalmasság azt jelenti, hogy csak az arra jogosultak és csak az elıírt módokon rendelkezhetnek az adatok felhasználásáról, és nem fordulhat elı jogosulatlan hozzáférés.
ALKALMAZÁS-FÜGGETLEN ANONIMIZÁLÓ RENDSZEREK ÁTTEKINTÉSE
•
•
•
Anonimitás: A rendszer anonimitást biztosít a fogadónak, ha nem lehetséges megállapítani, hogy egy üzenet fogadója kicsoda. A rendszer anonimitást biztosít a küldınek, ha a fogadó (vagy egy külsı megfigyelı) nem képes megállapítani, hogy az általa fogadott üzenet küldıje kicsoda. Megfigyelhetetlenség: A megfigyelhetetlenség olyan tulajdonság, amely megköveteli, hogy két vagy több kommunikáló fél közötti információátvitel tartalmát harmadik fél ne legyen képes megismerni, csak az átvitel tényét tudja megállapítani. Összeköthetetlenség: A rendszer összeköthetetlenséget biztosít, ha külsı megfigyelı nem képes megállapítani, hogy a rendszeren belüli eseményekért ugyanazon felhasználó felelıs-e, vagy sem.
A kritériumok további csoportosítása is lehetséges; a jelen felsorolásban a teljesítménybeli, biztonsági és privátszférát érintı kritériumok vegyesen szerepeltek. 1.2. Rendszer által biztosított anonimitás Az anonimitás szintjének megállapításához a Levine-Shields-féle taxonómiát [14] használjuk. Ebben az anonimitás egy 0 és 1 közé esı érték (voltaképpen egy valószínőségi érték), ahol a nulla az anonimitás teljes hiányát, az 1-es érték pedig a teljes anonimitást jelenti. Legyen Pre(x) annak a valószínősége, hogy x a kezdeményezıje egy kommunikációnak az e megfigyelı szerint. Egy anonim csoport számára ∑ Pre(x)=1 (ahol x∈S
S az anonim csoportban részvevık száma). Az x résztvevı számára biztosított anonimitás az e megfigyelıvel szemben legyen dx,e(A), ahol A legyen a használt anonimizáló protokoll. Ekkor d x , e ( A ) = ∑ Pr e (x) =1 különbözı értékeire: x∈S
•
Abszolút anonimitás: Egy támadó kommunikációkat: dx,e(A) = 1.
•
Gyanú felett: A kommunikáció néhány tényezıje ismert a támadó számára, de a kommunikáció kezdeményezıje nem megkülönböztethetı a többi résztvevıtıl: dx,e(A) ≥ (1 – 1/|S|) és dy,e(A) ≤ dx,e(A), minden y ≠ x∈S -re.
•
Lehetséges ártatlanság: annak a valószínősége, hogy egy x entitás kezdeményezıje egy kommunikációnak nem nagyobb, mint annak a valószínősége, hogy nem kezdeményezıje, de a többi entitásnál nagyobb valószínőségő a támadó szemében: 1/2 ≤ dx,e(A) ≤ dy,e(A) minden y ≠ x∈S esetén.
•
Leleplezve: Fennáll még a valószínősége annak, hogy a támadó nem tudja azonosítani a kezdeményezıt, bár ez meglehetısen kicsi. 0 ≤ dx,e(A) ≤ 1/2.
•
Bizonyítottan leleplezve: A támadó képes bizonyítani a kezdeményezı kilétét: dx,e(A) = 0.
nem
képes
megkülönböztetni
a
255
SZILI DÁVID
Az anonimizáló rendszerek végsı célja a lehetséges ártatlanság, vagy annál magasabb szint elérése. Az abszolút anonimitás elvileg sem megvalósítató, mivel az internet osztott médium, így feltételezhetı egy olyan megfigyelı, aki kellı erıforrással rendelkezik ahhoz, hogy közel minden hálózati forgalmat monitorozzon. 1.3. Ismertebb támadások anonimizáló protokollok ellen Számos különféle támadási módszer létezik anonimizáló protokollok ellen. Jelen írásunkban csak néhány ismertebbet mutatunk be röviden: •
•
•
•
Lokális lehallgatás: a támadás akkor jelent veszélyt, ha a protokollban lehetıség van arra, hogy nem minden résztvevı küld és fogad egyenletes mértékben. Ebben az esetben ugyanis, ha a támadó kellıen nagy erıforrásokkal rendelkezik, akkor a küldık üzeneteinek idızítés alapú analízisével mód nyílik a fogadók lehetséges listájának meghatározására. Predecessor támadás: a támadás alapját megfelelı módon és megfelelı idıben együttmőködı támadók jelentik. A támadás során a fogadó felet használjuk referenciának, és minden üzenetváltásra rögzítjük a lehetséges kezdeményezık halmazát. A kommunikáció feltételezett kezdeményezıje az lesz, aki a fenti lehetséges kezdeményezık halmazaiban a legtöbbször szerepel. Sybil támadás: a támadás során több támadó csatlakozik a hálózathoz, és valamilyen módszerrel (legtöbb esetben szolgáltatás-megtagadás révén) rákényszerítik a felhasználókat, hogy velük egy idıben csatlakozzanak egy csoporthoz, ezzel kompromittálva az anonimitásukat. Szolgáltatás-megtagadás (Denial of Service, DoS): az ilyen típusú támadások lényege, hogy lehetetlenné tegyék a kommunikációt. Anonimizáló protokollok esetében külön nehézséget jelent, hogy mivel a kommunikáció anonim, így a szolgáltatás-megtagadási indító támadó kiléte sem ismert.
Természetesen még számos egyéb támadás is ismert, itt csak a leggyakoribbakat mutattuk be. További támadásokról olvashatunk például a [17]-ben. 2. Anonimizáló protokoll kategóriák Az anonimizáló protokollokat néhány nagyobb csoportra oszthatjuk fel. Ebben a fejezetben általánosan szólunk az egyes csoportokról, a következı fejezetben pedig konkrét protokollokat ismertetünk majd.
256
ALKALMAZÁS-FÜGGETLEN ANONIMIZÁLÓ RENDSZEREK ÁTTEKINTÉSE
2.1. MIX-Net A MIX hálózatok alapját a David Chaum-féle MIX-ek jelentik [3]. A Chaum MIX azonos hosszúságú, különbözı forrásból származó üzeneteket fogad, majd kriptográfiai mőveletet végez rajtuk, végül továbbítja az üzeneteket a címzetthez, illetve hálózatban lévı következı MIX-hez valamilyen, a bemenetitıl eltérı, véletlen sorrendben (1. ábra). A MIX tehát egy folyamat, amely az anonimitást az üzenetek „keverésével” éri el, megszüntetve az idıbeli korrelációt a kimenı és bejövı üzenetek között.
1. ábra: Chaum-féle MIX A MIX-ek leghatékonyabban hálózatban mőködnek, és a csomagok várakoztatásának elkerüléséhez állandó szintő forgalom szükséges. A MIX rendszerek egyike sem teljesen érzéketlen a statisztikai analízisen alapuló támadások ellen, és az üzenetek várakoztatásának ideje arányos az általuk biztosított anonimitás szintjével. Mindezen felül az üzenet továbbításának ideje lineárisan függ az egymás után következı, az üzenet továbbításában részt vevı MIX-ek számától. Az idık során számos MIX-eken alapuló protokoll született és a legtöbbjük meglehetısen hasonló, így tanulmányunkban a két legismertebbet, az Onion routing-ot és a Hordes-t választottuk ki bemutatásra.
257
SZILI DÁVID
2.2. DC-Net A Dining Cryptographer Network (röviden: DC-Net) szintén David Chaumtól származik, az általa felvetett Dining Cryptographers’ Problem [4] általánosítása. A probléma lényege röviden: három kriptográfus vacsorázik egy asztalnál. A vacsora végeztével a pincér hozza a számlát, és elmondja, hogy az ebédet valaki kifizette már: vagy a kriptográfusok valamelyike, vagy egy kívülálló. A kriptográfusok szeretnék tudni, hogy közülük fizetett-e valaki, de anonim módon (tehát a gáláns kollégájuk nevét nem kívánják megismerni). Ekkor mindegyikıjük feldob egy érmét, és az eredményt megmutatják a tılük jobbra ülı asztaltársuknak, majd a tılük balra ülı érméjét látva kijelentik, hogy dobásuk azonos (ennek értéke nulla), vagy különbözı (melynek értéke egy) volt. Amennyiben az egyik kriptográfus fizetett, úgy a valósággal ellentétes kijelentést kell tennie. Ha valaki az igaztól eltérı választ adott, az eltérések paritásának páratlannak kell lennie, egyébként az eredmény páros (ekkor egy kívülálló állta a számlát — lásd a 2. ábrát az egyes esetekrıl).
2. ábra: A paritások alakulása a Dining Cryptographer’s Problem-ben A DC-Net nyilvános kulcsú infrastruktúrán alapul. A felhasználók titkosított üzenetszórást küldenek az egész csoportnak, ezzel biztosítva a fogadó anonimitást. DC-Net esetén egyszerre csak egy résztvevı küldhet üzenetet, így a sávszélesség egy része az ütközések valamint a versenyhelyzet feloldására fordítódik. — DC-Net alapú hálózat például a Herbivore protokoll. 2.3. Üzenetszórás, többes küldés Az üzenetszórás vagy többes küldés alapú protokollok anonimitást biztosítanak mind a küldı, mind a fogadó számára. Az üzenetszórás és többes küldés egyaránt többes küldést jelent; a különbség abban áll, hogy míg üzenetszórás esetén a hálózat minden
258
ALKALMAZÁS-FÜGGETLEN ANONIMIZÁLÓ RENDSZEREK ÁTTEKINTÉSE
részvevıjének el kell küldeni az adott üzenetet, addig a többes küldés esetén csak egy meghatározott csoportnak (3. ábra).
3. ábra: Üzenetszórás és többes küldés közötti különbség Minden részvevı fix mérető csomagokat küld, megadott gyakorisággal. Mindezt úgy kell érteni, hogy ha egy csomópontnak (hop) nincs küldendı csomagja, akkor zajt küld, a valós adatcsomagok küldésével megegyezı módon. Ezek a csomagok a fogadó fél nyilvános kulcsával vannak titkosítva, így csak ı tudja dekódolni az üzeneteket. Tegyük fel, hogy adott egy rendszer, amellyel lehetıség van a küldı kilétének elfedésére egy olyan üzenetszórás alapú hálózat implementálásával, mely egy alkalmazás-szintő peer–to–peer győrő révén biztosítja, hogy minden üzenet eljusson a hálózat minden tagjához. Minden üzenet hopponként titkosított, így egy csomópont számára nincs arra lehetıség, hogy a bejövı üzeneteket megkülönböztesse a kimenı üzenetektıl. Elképzelhetı, hogy egy csomópont egy adott pillanatban nem folytat aktív kommunikációt, ám ahhoz, hogy a fix kommunikációs forgalom fenntartható legyen, mindenképpen üzenetet kell küldenie. Az ilyen csomagokat noise (zaj) csomagoknak nevezzük, míg minden olyan csomag, mely egy meghatározott fél számra lett küldve, signal (jel) csomagnak minısül. 5
Ilyen típusú hálózatot valósít meg a P protokoll is és valamelyest a Hordes is ide sorolható, hiszen a Crowds megoldása mellett a többes küldés elınyeit is használja.
259
SZILI DÁVID
2.3. Egyéb megoldások Léteznek különlegesebb megoldások is, amelyek nem illenek bele egyik fenti csoportok egyikébe sem. Tanulmányunkban a Buses protokollt mutatjuk majd be, amely voltaképpen üzenetszórást valósít meg, de nem a hagyományos értelemben. 3. A protokollok részletes ismertetése Az alábbiakban az elızı fejezetben tárgyalt kategóriákat jól demonstráló protokollokat mutatjuk be részletesebben. 3.1. Onion routing (Tor, I2P) Az egyik legismertebb protokoll az onion routing [7], amely szinte bármilyen internetes protokollt képes kezelni. Az onion routing protokoll anonim kommunikációt biztosít speciális proxy szerverek és routerek révén. Elrejti az útvonalválasztással kapcsolatos információt azáltal, hogy az adatfolyamot több routeren át juttatja el a célhoz. Az útvonalat az elsı csomópont határozza meg, aki egyben egy proxy is az éppen igénybevett szolgáltatáshoz. Mindezek következtében az elsı csomópont a legsérülékenyebb. A kezdeményezı és a fogadó közti kapcsolat kiépítéséhez a kezdeményezı proxyja a lehetséges routerek sorából egy útvonalat választ a hálózaton belül és elıállítja az onionnak nevezett csomagot, amely magába ágyazva tartalmazza az útvonalválasztásnál meghatározott útvonalat. Az adatszerkezet egymásba ágyazott titkosított rétegekbıl áll, hasznos tartalommal (payload) körülvéve1. Az onion felépítésének alapja az útvonal, amelyet a küldı fél meghatározott az üzenet küldése elıtt. Mindezek alapján a küldı az üzenetet elıször a fogadó fél kulcsával titkosítja, majd az útvonalban a fogadó elıtt következı routerével, és így tovább, egészen az elsı routerig, akinek végül elküldi az onion-t. Mikor az onion-t valaki megkapja, tudni fogja, hogy kitıl kapta, és hogy kinek kell továbbítania, azonban semmit sem tud a többi csomópontról, sem azt, hogy hányan vannak a láncban, és azt sem, hogy ı hányadikként szerepel benne. A protokoll mőködését szemlélteti a 4. ábra.
1
Innen az adatszerkezet neve: onion, vagyis hagyma.
260
ALKALMAZÁS-FÜGGETLEN ANONIMIZÁLÓ RENDSZEREK ÁTTEKINTÉSE
Küldéskor egy köztes csomópont a következı csomagot kapja: {idıbélyeg, következı csomópont, Ff, Kf, Fb, Kb, payload} Kx, ahol Kx az X csomópont nyilvános kulcsa. A visszafejtett üzenet egy idıbélyeget tartalmaz a visszajátszás ellen, valamint a következı csomópont címét, a payload-ot,2 és két funkció/kulcspárt, meghatározva a kriptográfiai eljárást és a kulcsot, melyet az üzenetküldés során kell használni. A (Ff, Kf) pár az onion eredeti útvonalirányához3, az (Fb, Kb) pár a vissza irányhoz4 használatos. Az onion felépítésére ad példát az 5. ábra, három hoppal. Minden hoppnál az onion-ból lefejtıdik egy réteg.
4. ábra: Az Onion routing mőködése. Látható, ahogy az útvonalválasztás során az egyes címzettek kikerülnek a listából (természetesen az onion mérete ezzel nem csökken)
Megakadályozandó, hogy a monoton csökkenı méret alapján egy külsı megfigyelı meghatározza a routing útvonalat, minden egyes hopp után megfelelı hosszúságú véletlen adat (kitöltés, padding) főzıdik a hasznos rész (payload) végére a továbbítást megelızıen. Az utolsó proxy az egyetlen, aki tisztában van vele, hogy az üzenet mekkora része hasznos. Még a konstans mérető onion-ok is követhetık lennének, ezért minden onion-nak azonos méretőnek kell lennie.
2 3 4
payload = az üzenet hasznos része, mely a ténylegesen küldeni kívánt adatokat tartalmazza. Erre utal az alsó indexben az f, mint forward. Alsó indexben b, mint backward.
261
SZILI DÁVID
Nem szükségszerő, hogy a teljes útvonal meg legyen határozva a kezdeményezı által. A kezdeményezı meghatározhat bizonyos csomópontokat, amelyek az útvonal során meghatározhatnak egy saját routing vonalat. Ez egyrészt a biztonság tekintetében hasznos lehet, mivel több hoppot ad hozzá a lánchoz. Lehetıséget ad továbbá arra, hogyha egy csomópont nem ismer a másikhoz vezetı összefüggı útvonalat, akkor is küldhessen számára üzenetet. A válaszüzeneteket válasz-onionok segítségével lehetséges megoldani. Hasonlóan az egyszerő onionhoz, csak a következı hopp ismert az üzenetet továbbító csomópont számára. A válasz-onion felépítése teljesen megegyezik az egyszerő onion-éval, így az útvonalon lévı csomópontok nem tudják megkülönböztetni ıket, és a válasz-onionok is csak egyetlen egyszer használhatóak fel.
5. ábra: Példa egy onion-ra Az onion routingnak számos változata létezik. Itt helyszőke miatt csak a két legjelentısebbet említjük meg, melyeknek létezik szélesebb körben elterjedt implementációja is. A Tor [5] hálózat voltaképpen az onion routing második generációját jelenti, és az eredeti protokolltól néhány tekintetben eltér: •
•
262
A többszörösen titkosított adatszerkezet mellett a Tor speciális útvonaltervezést használ. A kezdeményezı minden egymást követı hoppal egy viszony-kulcsot egyeztet. Ezek a kulcsok a használat után törlıdnek, így a kompromittált csomópontok nem képesek a régebbi forgalom megfejtésére. A Tor SOCKS proxy interfészt használ, ezáltal biztosítva a legtöbb TCP alapú program használatát különösebb módosítás nélkül. Továbbá a Tor a Privoxy
ALKALMAZÁS-FÜGGETLEN ANONIMIZÁLÓ RENDSZEREK ÁTTEKINTÉSE
• • •
• •
nevő alkalmazás-szintő PET proxy-n alapul, felhasználva annak filterezı képességeit. A Tor egyelıre nem alkalmaz forgalommanipulálást, üzenetkésleltetést. Összefogja a TCP folyamokat az egyes csomópontok között, ezzel növelve az anonimitást és a hatékonyságot. Néhány csomópont központi szerverként mőködik, és ismert routerek nevét, valamint állapotát tárolja. A felhasználók HTTP segítségével töltik le ezeket az információkat bizonyos idıközönként. A Tor az adatokat integritásvédelemmel látja el, mielıtt küldésre kerülnének (az eredeti onion routing protokoll semmilyen integritásvédelmet nem tartalmazott). A Tor-hoz nincs szükség kernel kiegészítésekre az operációs rendszerben, sem külön hálózati verem támogatásra, így bármely operációs rendszerre könnyen adaptálható.
Egy másik jelentıs onion routing változat az Invisible Internet Project, röviden I2P [10]. Az I2P-ben minden kommunikáció végpontonként titkosított és a garlic5 routing nevő algoritmust implementálja, lehetıvé téve, hogy tetszıleges internetes kommunikációt elfedjen. A garlic routing az onion routing-on alapul, ám néhány dologban eltér attól, hogy ezzel is nehezítse a kommunikáció lehallgatását: •
•
•
a routereknek lehetıségük van arra, hogy több üzenetet összefogjanak, mindegyikben különálló útvonalválasztáshoz tartozó információval, ami gyakorlatilag olyan, mintha több onion lenne összefogva (ezeket hívják gerezdeknek); a gerezdek plusz opciókat tartalmazhatnak, mint például a gerezd továbbküldésének késleltetése az adott csomóponton, míg a többi gerezdbıl egy új garlic-ot állítanak össze, és továbbküldik; a garlic kitöltést tartalmaz, hogy elfedje, hány gerezdbıl áll.
Az I2P a Tor-ral ellentétben egy önálló szállítási protokoll, ahol minden csomópontnak meghatározott számú kimenı és bejövı alagútja van különbözı csomópontokhoz. Amikor egy csomagot küldenek, akkor azt a címzett valamely bemenı alagútjának végpontjával címzik meg, és a küldı valamely kimenı alagútján küldi el. Ilyen módon a küldı nem tudja, hogy a kimenı alagút végpontját követıen milyen útvonalon halad majd a csomag.
5
Jelentése: fokhagyma
263
SZILI DÁVID
Az I2P azonban a Tor-ral ellentétben nem képes tetszıleges internetes forgalom továbbítására, mivel a protokollban nincsenek kilépési csomópontok, mert ezek némileg gyengítik az anonimitás szintjét. Mindazonáltal már számos I2P alkalmazás létezik, mint például az I2PSnark, mőködik egy BitTorrent kliens, és léteznek HTTP proxy-k is. 3.2. Hordes A Hordes [14] a Crowds protokollján alapul, és hozzá hasonlóan több proxy-t használ, hogy a csomagokat eljuttassa a fogadó félnek. Különbség azonban, hogy a HTTP proxy-k helyett a jondo6-k UDP kapcsolatokhoz szolgálnak proxyként. Az üzenet útvonalának felépülése a Crowds analógiájára történik, de további eltérés, hogy a válaszok többes küldéssel valósulnak meg. Amikor valaki üzenetküldést kezdeményez, egy többes küldés cím rendelıdik hozzá. A Hordes csak a küldı számára biztosít anonimitást, a fogadó fél számára nem, mert az utolsó jondo-nak kapcsolódnia kell hozzá. Hacsak a fogadó fél nem vesz részt egy anonim kapcsolatban, a támadó észlelheti az üzenet fogadását. A küldı–fogadó összeköthetetlenség ezzel szemben mindig garantált. A többes küldés használata több tekintetben is támogatja az anonim kommunikációt: • • •
elıször, a célállomás IP címe helyett a többesküldés-csoport IP címe szerepel, és nem valamely csomópont címe; másodszor, nehéz megállapítani a valamely többesküldés-csoportba való tartozást; harmadszor pedig, ha a többesküldés-csoportba való tartozás ki is derül, a csoport tagjai jelentette fogadó-készlet még mindig biztosítja az anonimitást.
A többes küldés révén a Hordes-nak majdnem fele annyi idıre van szüksége egy üzenetváltáshoz, mint a Crowds-nak. Az inicializáció (új tag felvétele a hálózatba) több különálló lépésbıl épül fel, melyek célja, hogy beregisztrálják az új tagokat a hálózatba.
6
A Crowds-ban a MIXeket jondo-nak hívják. Az elnevezés az USA kultúrájában elterjedt John Doe személynévrere utal, mely egy átlagos, név nélküli emberre vonatkozik.
264
ALKALMAZÁS-FÜGGETLEN ANONIMIZÁLÓ RENDSZEREK ÁTTEKINTÉSE
Adatátvitel során, mivel a Hordes kezdeményezı egyes küldés üzenetet küld a fogadó félnek és többes küldés üzenetben kap választ, szabványos TCP kapcsolat nem használható. Ehelyett a kezdeményezı és fogadó közötti TCP üzenetek UDP csomagokba beágyazva jelennek meg, amelyek a továbbítási útvonalon szereplı jondo-k között közlekednek, illetve válaszadás során a fogadótól a kezdeményezı felé mennek többes küldés UDP csomagok. Az adatátvitel lépései (szemléltetésképpen lásd a 6. ábrát): 1.
2.
3.
4. 5.
A kezdeményezı (és minden más jondo) véletlenszerően választ néhány jondo-t az összes közül, hogy rajtuk keresztül küldjön üzenetet. Mindegyiküknek elküldi egy szimmetrikus kulcsot, a jondo nyilvános kulcsával titkosítva, és a kezdeményezı által aláírva. A kezdeményezı választ egy többesküldés-csoportot a teljes tartományból, melyen a Hordes jondo-i osztoznak. Ennek lényege, hogy felossza a lehetséges fogadókat, így a fogadókon nem megy át minden adat. Ekkor a kezdeményezı csatlakozik a választott többesküldés-csoporthoz, hogy megkaphassa a válaszüzeneteket. Adat küldéséhez a kezdeményezı az 1. pontban kiválasztott jondo-k közül választ egyet véletlenszerően, és küld neki egy üzenetet, amely tartalmazza a fogadó címét, a megválasztott többesküldés-csoportot, ahova a fogadó küldhet választ, egy véletlen számot az ütközések elkerüléséhez, és a küldendı adatot. Mindezt az 1. pontban megosztott szimmetrikus kulccsal tikosítva küldi a kezdeményezı. Minden jondo, aki megkapja az üzenetet, 1 – pf valószínőséggel a fogadónak küldi az üzenetet, és pf valószínőséggel pedig egy másik jondo-nak a 2-es pontban kiválasztottak közül. Néhány hopp megtétele után az utolsó jondo továbbítja az üzenetet a címzettnek. A fogadó fél válaszát a kezdeményezı által választott többesküldés-csoporthoz küldi (az üzenet a véletlen számot, a fogadó azonosítóját és a választ tartalmazza).
A Crowds-hoz hasonlóan a Hordes esetében is ahelyett, hogy minden hoppnál véletlenszerően választanánk meg a következı jondo-t, az összes jondo egy kisebb csoportjából választjuk ki az üzenet továbbítóját.
265
SZILI DÁVID
6. ábra: A Hordes mőködése A Hordes egyik nagy elınye abban rejlik, hogy kihasználja a többes küldés üzeneteket, hogy jobb teljesítményt érjen el ezzel az üzenetek továbbítása során. A többes küldés üzenetként érkezı válaszok sokkal kisebb számítási igényőek, mint az üzenetek küldése a teljes hálózaton keresztül (mint a Crowds vagy az onion routing esetében), hiszen a jondonak csak a véletlen azonosítót kell ellenıriznie ahhoz, hogy eldöntse: továbbítja, vagy eldobja a csomagot. Ebbıl fakadóan egyetlen Hordes tagnak sem kell több számítási munkát végeznie, mint például egy Crowds-béli jondo-nak, miközben az anonimitás végig biztosított. 3.3. Herbivore A Herbivore [6] a DC-Net elvén alapul, ami elegáns megoldást jelent az anonim kommunikáció megvalósítására. A Herbivore a küldı és a fogadó számára egyaránt anonimitást biztosít. A Herbivore protokoll három fı jellemzıje: • • •
7
anonimitást biztosít a kommunikáció végpontjainak, még olyan támadókkal szemben is, akik korlátlan erıforrásokkal rendelkeznek a lehallgatásokhoz; nagyszámú felhasználó esetén is jól skálázható; hatékony a számítási idı tekintetében (hiszen csak XOR7 mőveletet kell végrehajtani, ami nagyon gyors).
XOR: kizáró vagy logikai mővelet
266
ALKALMAZÁS-FÜGGETLEN ANONIMIZÁLÓ RENDSZEREK ÁTTEKINTÉSE
A DC-Net elvi alapjait korábban már ismertettük, azonban van néhány egyéb, a megvalósításhoz szükséges megkötés: 1.
2.
3.
Az üzenetek küldéséhez és fogadásához minden résztvevınek egy kulcsát tartalmazó gráfba kell szervezıdnie. A Herbivore protokoll az optimális kommunikáció megvalósítása érdekében csillag-topológiába (lokális topológia) szervezi az egyes csomópontokat, és ezeket a csillag-topológiákat főzi egybe egy győrővé (globális topológia). Biztosítani kell, hogy egy idıben csak egy csomópont küldjön üzenetet. Ha többen akarnak üzenetet küldeni egy DC-Net-ben, az ütközést jelent, aminek eredményeként hibás üzenetek keletkeznek. A hálózat megszervezése igényel némi üzenetváltást a résztvevık között, és egy anonim hálózatban nyilván ennek is anonim módon kell zajlania.
A DC-Net egyik gyengeségét jelenti, hogy a 2. pont megkötésébıl következıen egy támadó könnyedén szolgáltatás-megtagadás alapú támadást indíthat. Tovább nehezíti a helyzetet, hogy mindezt anonim módon teheti. Bár az ilyen támadások azonosítására is léteznek módszerek, amelyek „csali” üzenetek küldésén alapulnak, s ezáltal nemcsak a támadás, hanem a támadó kilétének felderítésére is alkalmasak. Mindennek persze megvan a maga ára: a protokoll bonyolultabbá válik, biztosítani kell, hogy a támadókon kívül a résztvevık anonimitását ne veszélyeztessék a „csali” üzenetek, és a sávszélesség egy részét e csomagok számára kell fenntartani. Összegezve azt mondhatjuk, hogy a DC-Net alapú protokollok erıs anonimitást biztosítanak, de az üzenetszórás miatt nagy hálózati terhelést jelent a használatuk. A Herbivore protokoll két fı komponensbıl épül fel: a legalacsonyabb szinten mőködik a round protokoll, amely szabályozza, hogy a résztvevık között hogyan történik az adatok küldése. Ez a protokoll biztosítja az erıs anonimitást a DC-Net révén. A magasabb szinten lévı global topology control algoritmus a skálázhatóság és a támadók elleni védelem megvalósításáért felelıs. Lényegében kisebb anonim csoportokra osztja fel a hálózatot. A Herbivore garantáltan k csomópontot tartalmazó csoportokat hoz létre, ahol k egy elıre meghatározott konstans a rendszerben, amely egyben a biztosított anonimitás erejét is meghatározza. Új csoportok automatikusan jönnek létre, ha egy adott csoport túl naggyá válik ahhoz, hogy hatékonyan mőködhessen.
267
SZILI DÁVID
A Global Topology Control legfontosabb része az Entry Control Protocol, amely három célt szolgál: 1.
2. 3.
Megakadályozza az olyan jellegő támadásokat, amelyek az egyes csomópontok anonimitásának kompromittálódásához vezetnének. Ha egy csomópont meghatározhatná, hogy melyik csoporthoz csatlakozzon, lehetıvé válna, hogy a támadók egy csoportban minden helyet elfoglaljanak, egyetlen egy kivételével. Biztosítja, hogy az egyes csoportok létszáma hozzávetıleg egyenlı legyen azáltal, hogy az újonnan csatlakozókat véletlenszerően sorolja be. Kihívás–válasz alapú protokoll segítségével limitálja a hálózathoz csatlakozó csomópontok szintjét.
Round Protokoll: Mint már említettük, ennek a protokollnak a feladata, hogy egy adott csoporton belül szabályozza a csomópontokat, biztosítsa az anonim adattovábbítást, és megfelelı adattovábbítási sebességet biztosítson. Az adattovábbítás minden esetben három lépésbıl épül fel: 1.
2.
3.
Foglalási fázis: minden csomópont, aki ebben a ciklusban szeretne üzenetet küldeni, egyaránt véletlenszerően választ egy i számot {1,…,m} halmazból, majd anonim módon elküld egy m-bit hosszú vektort, az i-edik helyen egy 1-es értékkel, és minden más helyen 0-val. Akik nem akarnak küldeni, azok mind a 0 vektort küldik. Ha egynél több csomópont szeretne egy adott szeletet lefoglalni, akkor ez nyilván ütközést jelentene, és ekkor a csomópontok egyszerően várnak a követezı ciklusra, és ott újra megpróbálnak küldeni. Átviteli fázis: minden csomópont, aki sikeresen lefoglalt egy szeletet, elküldi a csomagját a megfelelı szeletben, mindenki más 0-t küld. Minden csomópont egyszerre küld és fogad ebben a fázisban. Ezzel a csomópontoknak lehetısége van detektálni a támadót, hiszen a csatorna figyelésével észlelheti, hogy a csatornán észlelt csomag nem egyezik meg az általa küldöttel. Azok, akik ütközést észlelnek, várnak a következı ciklusra, és ekkor próbálnak meg újra küldeni. Kilépési fázis: ennek a fázisnak a feladata, hogy biztosítsa, hogy a hosszú ideje fennálló kapcsolatok védettek legyenek a hálózati forgalomanalízis ellen. A fázisban eldıl, hogy egy adott ciklus alkalmas-e rá, hogy változzon a csoport felépítése.
Hálózati Topológia: Az anonimizáló csoportok a Herbivore-ban csillag-topológiába szervezıdnek. Minden csomópont elküldi a kulcsának és — ha van — az üzenetének
268
ALKALMAZÁS-FÜGGETLEN ANONIMIZÁLÓ RENDSZEREK ÁTTEKINTÉSE
XOR-ját a csillag közepének, aki aztán továbbítja a dekódolt üzenetet a csillag maradék k–1 tagjának. Az ilyen topológiájú hálózatban 2*(k–1) bit küldésére van szükség, hogy egy csomópont 1 bitet anonim módon küldhessen. Bár a hálózati topológia csillag alakú, a kulcs-topológia egy teljes gráffal írható le (lásd a 7. ábrát), az üzenetküldéseknél pedig a csillag középpontja a csoport tagjai közt váltakozik.
7. ábra: A Herbivore lokális topológiája (folytonos vonal: hálózati topológia, szaggatott vonal: kulcs-topológia)
A Herbivore általános célú anonim kommunikációra ad lehetıséget, amely számos különbözı alkalmazáshoz illeszthetı. Virtuális hálózati rétegként mőködik, az anonim rétegbe ágyazva az IP alapú csomagokat. Ez a megközelítés elınyt jelent, hiszen így a legtöbb létezı alkalmazást csak kis mértékben, vagy egyáltalán nem szükséges módosítani. 5
3.4. P — Peer–to–Peer Personal Privacy Protocol 5
A P [13] anonimitást biztosít a küldı és a fogadó fél számára, és teljesíti az 5 összeköthetetlenség feltételét is. A P a fentebb ismertetett üzenetszórás csatorna alapelveire épül. A skálázhatóságot üzenetszórás csatornák hierarchiába rendezésével oldja meg. Nyilvánvalóan minden üzenetszórás alapú rendszer alapesetben nem biztosít nagymértékő hatékonyságot abban a tekintetben, hogy hány bit információt igényel a küldı–fogadó párnak az információcsere, és abban, hogy mennyi extra bitet jelent a hálózati forgalomban egyetlen hasznos bit átvitele.
269
SZILI DÁVID
5
A P -ben nincs szükség globális nyilvános kulcs infrastruktúrára, azonban feltételezhetı, hogy ha két fél kommunikálni szeretne, akkor megtudhatják egymás nyilvános kulcsát, valamilyen szolgáltatástól független módon. Vegyünk N egyént, akik egy anonim 5 kommunikációs rendszert szeretnének kiépíteni a P segítségével. Mindegyikük rendelkezik K0…,Kn-1 nyilvános kulcsokkal. A protokoll ezen N résztvevı kulcsait — amelyeket kommunikációs kulcsoknak nevezünk — fogja felhasználni, hogy kiépítsen egy logikai üzenetszórás hierarchiát. A logikai üzenetszórás hierarchia egy bináris fa (L), mely a K0,…,Kn-1 kulcsok felhasználásával épül ki. Az L fa minden tagja egy meghatározott hosszúságú bitsorozatot birtokol. Egy adott csoportba tartozást jelöljön (b/m), ahol b a bitsorozat, és m az érvényes bitek száma. Az L fa gyökere a null bitsorozatot tartalmazza a nulla hosszúságú maszkkal. Jelöljük a gyökeret (*/0) -val. A gyökér bal fia tartalmazza a (0/1) csoportot, a jobb fia pedig az (1/0) csoportot. Hasonlóan (0/1) bal fia (00/2) lesz, míg jobb fia (01/2), és így tovább. Ha egy üzenetet elküldenek egy adott csoportnak, akkor az továbbítódik a rendszer összes résztvevıinek egy részhalmazához. Például ha az A felhasználó a (b/m) csoportnak küld üzenetet, akkor az üzenet továbbítódik a B felhasználónak is a (b’/m') csoportba akkor és csak akkor, ha a k legnagyobb helyértékő bitek b-ben és b’-ben megegyeznek, ahol k = min {m, m’} (a példában A és B nem feltétlen áll küldı–fogadó viszonyban). Tehát egy (b/m) csoportnak küldött üzenet az L fa három különbözı részére lesz elküldve: • •
Lokális: a (b/m) csoportnak küldött üzenet a (b/m) minden tagja megkapja. Gyökérig vezetı útvonal: Minden m’<m esetén az üzenet el lesz küldve a (bm’/m’) csoport minden tagjának, ahol bm’ a m’ hosszú perfixét jelöli b-nek.
•
Részfa: Minden m’’> m esetén az üzenet el lesz küldve minden (b|*/m’’) csoportnak, ahol b|*/k nem más, mint bármilyen k hosszú bitsorozat, amely a b bitsorozattal kezdıdik.
5
A P felépítésére és mőködésére a 7. ábrán láthatunk példát, ahol a (00/2) csoportban lévı felhasználók kapnak éppen üzenetet.
270
ALKALMAZÁS-FÜGGETLEN ANONIMIZÁLÓ RENDSZEREK ÁTTEKINTÉSE
7. ábra: A P5 fa hierarchia felépítése és mőködése A felhasználók leképezése az L fába hash függvény (melyet H(.)-vel jelölünk) segítségével L történik. Vegyük az A felhasználót, és az ı KA nyilvános kulcsát. Legyen bA=H(KA) mod 2 . Az A felhasználó ekkor a (bA/m) csoporthoz fog csatlakozni. Az m maszk hosszát az A felhasználó választja meg, minden tényezıtıl függetlenül és véletlenszerően. A választott m paramétert titokban kell tartania, hogy ne derülhessen ki, pontosan melyik csoportnak tagja. Habár a nyilvános kulcsok ismeretében mindenki által ismeretes, hogy a felhasználó mely csoportoknak lehet tagja, de azt azonban nehéz meghatározni, hogy ebbıl a készletbıl konkrétan melyik csoportba tartozik. Az üzenetek azonos hosszúságúak és hopponként titkosítottak, ebbıl következıen nem lehetséges egy kimenı üzenetet azonosítani egy a csomópont által korábban fogadottal. Azonban egy passzív megfigyelınek lehetısége van statisztikai támadásra, és követheti a kommunikációt azáltal, hogy egy forrástól induló csomagfolyamot összefüggésbe hoz egy nyelıvel. Éppen ezért a protokoll noise (vagyis zaj) csomagokat használ, melyek révén az efféle statisztikai támadás költsége megnı és alkalmatlanná válik a megfigyelésre. 5
A P felhasználók minden idıpillanatban fix nagyságú forgalmat generálnak egy véletlenszerően meghatározott csatornára. Egy csomópont által küldött csomag az alábbiak egyike lehet: • • •
a csomag (noise vagy signal) valamely bejövı interfészen érkezett, és a csomópont egy másik csatornára továbbítja; signal csomag, amelyet helyileg generáltak; noise csomag, amelyet helyileg generáltak.
5
A P -ben a tagok egyszerően eldobnak minden üzenetet, amelyhez nincs meg a megfelelı számítási, illetve sávszélességi kapacitásuk. A rendszer globális jellemzıi attól függnek, hogy az üzenetek eldobása hogyan zajlik. Két különbözı algoritmus jöhet szóba:
271
SZILI DÁVID
•
•
Egységes csomagdobás: ez a legegyszerőbb séma, amelyben az üzenetek a bemeneti sorból egyenlı valószínőséggel lesznek eldobva, egészen addig, amíg a bemeneti sor mérete nem csökken a maximális küszöb alá. Nem egységes csomagdobás: ebben a sémában az L fa magasabb csúcsaiban a csomagok nagyobb eséllyel kerülnek eldobásra.
A csoportos üzenetküldés megoldása — amelyben az üzenet csak a csoport egyetlen tagjának szól — kismértékő üzenetkésleltetést jelent, bár a hasznos információ mennyisége 5 a sávszélességen csökken, ahogy az anonimitás mértéke nı. A P -nek viszont megvan azon érdekes tulajdonsága, hogy a felhasználónak bármikor lehetısége van ennek az aránynak a változtatására. A protokoll ezenkívül jól skálázható és könnyen hozzáilleszthetı a jelenlegi internetes protokollokhoz. 3.5. Buses A Buses [1], [8] protokoll alapötletét egy hétköznapi tevékenység, a tömegközlekedés ihlette, egészen pontosan a buszok és a rajtuk utazó emberek, akik az utakon haladó forgalmat figyelı számára megkülönböztethetetlenek, hiszen a megfigyelı csupán a buszokat látja. Ebben a hétköznapi példában a buszok az üzenetek megfelelıi, amelyek a hálózatban haladnak, és a továbbított információ pedig a busz üléseinek felel meg. A kommunikációs felek — küldı és fogadó — a buszmegállók megfelelıi. A Buses protokoll megoldása a MIX-ekkel szemben nem a kommunikációs minták statisztikai tulajdonságainak módisításán alapul, és nincs szükség állandó zajra sem, továbbá semmilyen információt nem kell a csomópontok memóriájában tárolni. Modellezzük a hálózatot n darab csomóponttal, melyek: p1,…,pn és a csomópontok között m kommunikációs kapcsolat áll fenn. A hálózatot ekkor egy G(V;E) gráffal jellemezhetjük, ahol V a csomópontok, és E a kapcsolatok (a gráf éleinek) száma (azaz: n=|V| és m=|E|). Tegyük fel továbbá, hogy a gráfunk összefüggı (tehát egyetlen hálózatról van szó, ahol minden csomópontból vezet út minden csomópontba). Legyen pi a küldı és pj a fogadó fél. Ekkor a cél nyilván az, hogy elrejtsük a pi és pj közötti kommunikáció tényét. A Buses protokollnak számos változata elképzelhetı annak megfelelıen, hogy hogyan választjuk meg az arányt az optimális kommunikációs komplexitás és az optimális idıbeli komplexitás között, illetve további optimalizálásokkal élünk. E helyütt a két végletet mutatjuk be és megemlítjük a köztes megoldás elvét is.
272
ALKALMAZÁS-FÜGGETLEN ANONIMIZÁLÓ RENDSZEREK ÁTTEKINTÉSE
Az optimális kommunikációs komplexitást megvalósító protokoll esetében az üzenetek komplexitása 1, hiszen minden pillanatban egyetlen csomópont küld egyetlen üzenetet egy másik csomópontnak (a hasonlattal élve: egyetlen busz közlekedik a rendszerben). Elsı lépésként vegyük a hálózat gráfjának feszítıfáját, és annak Euler-útját, amellyel egy kört 2 definiálunk a gráfban. Az üzenetünk ebben a körben halad, n darab „ülése” van. Az si,j ülés szolgál arra, hogy a pi-tıl a pj-nek küldött üzenetet titkosítva továbbítsa. Minden alkalommal, amikor a busz a pi csomóponthoz ér, megváltoztatja az si,j ülésnek megfelelı sort, akár pj-nek akar üzenetet küldeni, akár nem (és ekkor a fogadó által könnyen detektálható, értelmetlen adatot küld). A pi csomópont egyúttal ellenırzi az i-edik oszlopban lévı n üzenetet, és eldobja azokat, melyek értelmetlen adatokat tartalmaznak. Ennek a megoldásnak a kommunikációs komplexitása optimális, hiszen csak egyetlen busz van. Mindazonáltal az idıbeli komplexitás ekkor a legrosszabb: 2n–1 idıegységbe is beletelhet, mire a busz eléri a küldıt, és további 2n–1 idıegységbe, hogy elérjen a címzetthez. Az optimális idıbeli komplexitást megvalósító protokollnál minden kommunikációs kapcsolaton két busz van (mindkét irányra egy-egy). A csomópontok az üléseket a legrövidebb útvonalaknak megfelelıen továbbítják. Egy si,j ülés akkor érkezik a pk csomóponthoz, ha a csomópont a pj-hez vezetı legrövidebb útban is benne van. Az ülések így az útvonalválasztásból származó információkat használják, és akár az útvonalválasztás üzeneteivel együtt is utazhatnak, ezzel mintegy az útvonalválasztás protokolljába ágyazva a kommunikációt. Az üzenetek a Buses protokoll elızı változatához hasonlóan titkosítva utaznak, és ülésekhez vannak rendelve, illetve ha nincs küldendı információ, akkor értelmetlen adatot küldenek a csomópontok. A megoldás kommunikációs komplexitása megegyezik a buszok számával, vagyis 2m (ahol m a gráf éleinek száma). Az idıbeli komplexitás azonban optimális, mely megegyezik a küldı és fogadó közötti legrövidebb útvonalon lévı hoppok számával. A kommunikációs és idıbeli komplexitás közötti egyensúlyt fenntartó Buses protokoll esetében a hálózatot bizonyos szabályok alapján klaszterekre osztjuk. Ebben a felosztásban a klaszterekben legkevesebb x, de legfeljebb δx csomópont lehet, ahol x egy 1 és n közötti érték, míg δ a csomópontok maximális foka. Ebben a felosztásban a szomszédos klaszterek egyetlen kapcsolattal vannak összekötve. A felosztás élek alapján történik, így minden klaszterben az élek száma minimum x és maximum 3x. Mindennek eredményeképpen a klaszterek a feszítıfa összefüggı részgráfjai, és egymással egyetlen csomóponton keresztül vannak összekötve.
273
SZILI DÁVID
A felosztást követıen minden klaszterben egy busz van, és a klaszter feszítıfájában lévı Euler-út mentén közlekedik. Legfeljebb n / x darab klaszter található a gráfban, így a buszok száma a gráfban, és ezzel a kommunikációs komplexitás legfeljebb n / x lehet. Ha egy csomópont egy, a klaszterén kívüli csomópontnak akar üzenni, az üzenetnek egyik buszról át kell kerülnie a másikra, míg el nem éri a címzettet. Mindez azt jelenti, hogy amikor a busz egy olyan csomóponthoz ér, aki egynél több klaszter tagja, akkor az ülés átkerül egyik buszból a másikba. A Buses protokollban még számos egyéb optimalizálási lehetıség van, például a busz üléseinek számának csökkentésére, ám ezekre jelen írásunkban nem térünk ki. 4. Az protokollok által biztosított anonimitás 4.1. Onion routing Az Oninon routing nem teljesen védett a lokális lehallgatással szemben. Kellı mennyiségő adattal lehetséges olyan minták megfigyelése, amelyekkel kikövetkeztethetı az üzenetek útja. Mindazonáltal az efféle támadások nagy mennyiségő adat megfigyelését igénylik a külsı támadók részérıl. Predecessor támadással lehetıség van egy résztvevı anonimitásának szintjét leleplezés (0 ≤ dx,e(A) ≤ 1/2) szintjéig csökkenteni, de ez alá sohasem, mert egy felhasználó véletlen események következtében is elıfordulhat leggyakoribb félként a kommunikációban. Sybil támadásokkal szemben viszonylagos védettséget jelent a protokoll, mert minden résztvevı megválaszthatja, hogy ilyen útvonalon haladjon keresztül a küldött csomagja. Szolgáltatás-megtagadásra akkor van lehetıség az onion routing esetében, ha egy kompromittált csomópont visszajátssza az üzeneteket. Mivel azonban az onion routing idıbélyegeket használ a visszajátszás ellen, ez nem fordulhat elı, ám a rosszul szinkronizált órák sérülékenységet jelentenek. A Tor ez ellen a rendszer robosztusságával ad védelmet, de bizonyos típusú DoS támadások [2] ellen még így sem védett teljesen. Ahhoz, hogy az onion routing biztonságosabb legyen, a hálózati forgalomnak viszonylag állandónak kell lennie. Mindez hamis adatforgalom használatát jelenti, ha az adatforgalom alacsony. A második generációs Tor-ban nem alkalmaznak hamis adatforgalmat, hanem különleges útvonaltervezéssel biztosítják a kellı védelmet.
274
ALKALMAZÁS-FÜGGETLEN ANONIMIZÁLÓ RENDSZEREK ÁTTEKINTÉSE
4.2. Hordes A Hordes minimális anonimitási szintet valósít meg olyan esetekben is, ahol az onion routing, és a Crowds már nem. Ilyen például az útvonal-visszafejtés: az egyes jondo-kban nem kerül tárolásra útvonalválasztással kapcsolatos információ, és az elıre és vissza irányba haladó üzenetváltás útvonala eltérı, így passzív útvonal-visszafejtés nem lehetséges, míg az onion routing-ban tárolódnak az útvonalválasztás-információk, így több kompromittált útvonalválasztóval lehetséges az útvonal részleges visszafejtése. Lokális lehallgatással szemben például az onion routing-hoz hasonlóan teljesít. Az üzenetek itt is titkosítva haladnak, de megfelelı mennyiségő adat begyőjtésével lehetséges olyan minták megfigyelése, melyekkel kikövetkeztethetı az üzenet útja. Predecessor támadás esetén az onion routing-nál elmondottak érvényesek: egy résztvevı anonimitásának szintje Leleplezés szintjéig csökkenthetı, az alá nem. Ezzel szemben sybil támadás esetén a megfelelı számú csomópontot birtokolva a Hordes hálózat egy jelentıs részét felügyelhetik a támadók. A Hordes nem tesz külön erıfeszítést a szolgáltatás-megtagadás alapú támadásokkal szemben. Az ilyen támadások megnövekedett forgalomhoz és az üzenetek elvesztéséhez vezethetnek. Érdemes megjegyezni, hogy lehetıség van például onion routing alkalmazására a Hordes továbbítási vonalában. Ez persze több munkát igényel a titkosítás terén, de növeli a protokoll biztonságát és az anonimitást, és nem lenne szükséges Hordes proxy-t futtatni a hálózat minden szerverén. 4.3. Herbivore A protokoll a skálázhatóság kérdését egyfajta „oszd meg és uralkodj” elv segítségével valósítja meg: decentralizált, peer–to–peer megközelítéssel a globális hálózatot biztonságosan osztja fel kisebb csoportokra, amelyekben az anonim kommunikáció hatékonyan valósul meg. A protokoll érzéketlen a lokális lehallgatással szemben is, mivel minden felhasználónak üzenetet kell küldenie és fogadnia minden hálózaton belüli adatküldés esetén.
275
SZILI DÁVID
Mivel a Herbivore DC-Net alapú, így teljesen érzéketlen a predecessor támadásra is. A Herbivore a sybil támadásokkal szemben is nyújt némi védelmet a támadók detektálása nélkül azáltal, hogy limitálja, hogy egy csoportba hány új felhasználó csatlakozhat. Ezzel szemben az üzenetküldések ütközésének feloldásából fakadó nehézségek miatt a DC-Net alapú hálózatok a legsérülékenyebbek a szolgáltatás-megtagadáson alapuló támadásokkal szemben. A Herbivore protokollban ilyen támadás esetén a felhasználók egyszerően átléphetnek másik csoportba, ha egy csoporton belül lehetetlenné válik a kommunikáció. DC-Net alapú hálózatokban jelentıs mennyiségő számítás és sávszélesség árán detektálható ugyan a szolgáltatás megtagadását kezdeményezı felhasználó kiléte, de ezzel az eszközzel a Herbivore nem él.
5
4.4. P — Peer–to–Peer Personal Privacy Protocol A protokoll egy üzenetszórás hierarchia segítségével különbözı szintő anonimitást (és 5 összeköthetetlenséget) biztosít, mindezt a sávszélesség és megbízhatóság terhére. A P felhasználóinak minden esetben lehetıségük van az anonimitás szintjének csökkentésére/növelésére a hatékonyság szempontjából jobb/rosszabb csatorna választásával. 5
Lokális lehallgatással szemben a P érzéketlen, hiszen a Herbivore-hoz hasonlóan ebben a protokollban is minden hálózaton belüli adatküldésnél minden felhasználónak üzenetet kell küldenie és fogadnia. Predecessor támadásnál egy résztvevı anonimitásának szintje Leleplezés szintjéig csökkenthetı, az alá viszont nem. 5
A P -ben lehetıség van továbbá sybil támadásra, mivel egy támadónak lehetısége van megválasztani, hogy melyik üzenetszórás-csoportba kerüljön, mindezt a bináris fa felépítéséhez használt kulcsokra alkalmazott kimerítı támadással. 5
A szolgáltatás-megtagadással szemben a P
az üzenetek eldobásának megfelelı
implementálásával ad védelmet. Ehhez a linkenként várakozási sorok hosszát kell csupán megfelelıen meghatározni.
276
ALKALMAZÁS-FÜGGETLEN ANONIMIZÁLÓ RENDSZEREK ÁTTEKINTÉSE
4.5. Buses A Buses protokoll az üzenetek titkosítása révén teljes védettséget nyújt a lokális lehallgatással szemben, a támadó csak a buszokat látja a hálózatban, de azok tartalmánál nem képes megkülönböztetni az érvényes adatot az értelmetlentıl, így ezzel azt sem lehet megállapítani, hogy két csomópont kommunikál-e egymással. A protokoll érzéketlen a predecessor támadásra, mivel a protokoll eleve mentes a tényleges kommunikáció minden idıbeli statisztikai tulajdonságától, és a buszok a hálózatban egy állandó útvonalon haladnak. A sybil támadások elleni végelem erısen megvalósítás-függı. A klaszteres megoldás esetén, ha a támadó el tudja érni, hogy a klasztereket összekötı csomópontok az ellenırzése alatt legyenek, akkor képes lehet az anonimitás szintjének csökkentésére. A Buses protokoll alapváltozatai nem fordítanak figyelmet a szolgáltatás-megtagadásos támadások ellen, így alapesetben védtelenek ellenük. Az alapváltozatokat módosíthatjuk azonban oly módon, hogy a buszoknak legyen megfelelı számú egymástól független útvonala, és ezeken közlekedjenek; ennek ára azonban a bonyolultabb protokoll. 5. Hálózati forgalom terhelés az egyes protokolloknál Az adott rendszertıl függıen az anonimitás mértéke a sávszélesség, a számítási idı, esetleg mindkettı rovására növelhetı. Az alábbi táblázatban foglaltuk össze, hogy a fenti protokollok esetében hány bit információ szükséges egyetlen hasznos bit átviteléhez. 1. táblázat: Egyetlen hasznos bit küldéséhez szükséges bitek száma Onion routing
(n + 1)
Hordes
(n + 1)
Herbivore
2*(m – 1)
5
P
Buses
m*(2 2
(D – d)
+ d + 1) 2
2
n (optimalizálva: n / x ) 5
A táblázatban m jelöli a csoportok méretét a Herbivore és a P esetében, n jelöli az útvonalban elıforduló MIX-ek számát a Hordes és az Onion routing esetében, illetve a csomópontok számát a Buses protokollnál (és x a Buses hálózatban lévı klaszterek számát).
277
SZILI DÁVID
Továbbá d jelöli a felhasználó üzenetszórás címének „mélységét” a üzenetszórás fában, míg D a fa maximális mélységét. 5
A fentiek alapján a legnagyobb igénye a P -nek van, de figyelembe kell venni, hogy az ott használatos üzenetdobási algoritmus miatt a fa magasabb csúcsaiban az üzenetek exponenciálisan növekvı valószínőséggel kerülnek eldobásra. Az Onion routing és a Hordes igényének egyenlısége nem meglepı, hiszen mindkettı MIX-eken alapul. A Herbivore ehhez képest kétszer akkora igényő, és a csoportok mérete is nagyobb, mint a MIX alapú rendszereknél a továbbításban részvevı MIX-ek száma. 6. Összefoglalás Mint azt a tanulmányban bemutatott protokollok esetében láthattuk, a ma létezı megoldások többsége még komoly hálózati terhelést jelent, viszont az egyre növekvı szerepő valós idejő illetve mobil alkalmazásokban a nagy késleltetés használhatatlanná teszi a szolgáltatást, így a felhasználókat arra kényszeríti, hogy mellızzék az anonimitás lehetıségét. A helyzetet rontja az a tény, hogy a legtöbb protokoll implementációja még igencsak gyerekcipıben jár, átlagos felhasználók számára a programok telepítése és beállítása túlságosan nehéz. Vannak azonban ígéretes megoldások, mint a Tor kliense [16], vagy az I2P-n alapuló megoldások [9], vagy a Carnivores fájlcserélı [15], amely a Herbivore protokollon alapul. Összegzésként elmondhatjuk, hogy a jövıben a protokoll-független anonimizáló rendszerek rendelkeznek majd azzal az elınnyel, hogy tetszıleges szolgáltatáshoz illeszthetıek, így a felhasználóknak elegendı csupán egy anonim szolgáltatást használniuk. Jelenleg azonban a legtöbbjük használata kényelmetlen, az átlagos felhasználók nem képesek megfelelıen beállítani ıket, így e téren fejlesztésre szorulnak. Láthattuk, hogy a protokollok egyike sem áll ellen tökéletesen még a legismertebb támadásoknak sem. A legfıbb problémát azonban az jelenti, hogy a protokollok futtatásukkor hálózati késleltetést okoznak, és — mint azt az 5. szakaszban láthattuk — sok többletinformáció átvitelét, és így hálózati sávszélességet igényelnek; ennek csökkentése érdekében a protokollokat szintén tovább kell finomítani.
278
ALKALMAZÁS-FÜGGETLEN ANONIMIZÁLÓ RENDSZEREK ÁTTEKINTÉSE
Irodalomjegyzék [1]
Beimel, A. — Dolev, S.: Buses for Anonymous Message Delivery. Second International Conference on FUN with Algorithms, 1–13. old., 2001
[2]
Bauer, K., McCoy, D., Grunwald, D., Kohno, T., Sicker, D.: Low-resource routing attacks against anonymous systems. Computing Science Technical Report CU-CS-1025-07, 2007
[3]
Chaum, D.: Untraceable Electronic Mail, Return Address, and Digital Pseudonyms. Communications of the ACM, 24. évfolyam, 2. szám, 84–88. old., 1981
[4]
Chaum, D.: The Dining Cryptographers Problem: Unconditional Sender and Recipient Untraceability. Journal of Cryptology, 1. szám, 65–75. old., 1988
[5]
Dingledine, R. — Mathewson, N. — Syverson, P.: Tor: The Second-Generation Onion Router. 13th USENIX Security Symposium, 2004
[6]
Goel, S., Robson, M., Polte, M., Sirer, E. G.: Herbivore: A Scalable and Effecient Protocol for Anonymous Communication. Cornell University technical report, 2003–1890.
[7]
Goldschlag, D. — Reed, M. — Syverson P.: Hiding Routing Information. Information Hiding, No. 1174, 1996
[8]
Hirt, A. — Jacobson, M. J. Jr. — Williamson, C.: A Practical Buses Protocol for Anonymous Internet Communication. Third Annual Conference of Privacy and Trust, 2005, 233–236.
[9]
Introducing I2P: A scalable framework for anonymous communication. http://www.i2p2.de/techintro.html/
[10]
Kubieziel, J.: An Introduction to Anonymous Communication with I2P. 24th Chaos Communication Congress, 2007
[11]
Mixmaster project, http://mixmaster.sourceforge.net/
[12]
Reiter, M. K. — Rubin, A. D.: Crowds: Anonymity for Web Transactions. Technical Report 97–15, DIMACS, 1998
[13]
Sherwood, R. — Bhattacharjee, B.: P : A Protocol for Scalable Anonymous
5
Communication. IEEE Symposium on Security and Privacy, 2000
279
SZILI DÁVID
[14]
Shields, C. — Levine, B. N.: A Protocol for Anonymous Communication Over the Internet. 7th ACM Conference on Computer and Communication Security, 2000
[15]
Sirer, E. G., Goel, S., Robson, M., Engin, D.: Eluding carnivores: file sharing with strong anonymity. ACM SIGOPS European workshop, 2004
[16]
Tor anonimizáló hálózat honlapja, http://tor.eff.org/
[17]
Wright, M., Adler M., Levine B., Shields C.: An analysis of the degradation of anonymous protocols. Proceedings of the 2nd ACM symposium on information, computer and communications security, 2001
280