====== Usporedba skrivenih servisa I2P i Tor ====== ====== Abstract ====== //todo: zašto postoje anonimne mreže? koji su problemi tih mreža// How do you write an abstract? Identify your purpose. You're writing about a correlation between lack of lunches in schools and poor grades. … Explain the problem at hand. Abstracts state the “problem” behind your work. … Explain your methods. … ([[https://www.aje.com/arc/make-great-first-impression-6-tips-writing-strong-abstract/|Source]]) Save your work regularly!!! Describe your results (informative abstract only). … Abstract should be no longer that 400 words. Keywords: **i2p**, **tor**, onion routing, garlic routing, anonymous networks, privacy ====== Uvod ====== Internet je danas postao svijet za sebe. On je mjesto razmjene informacija, mjesto gdje se odvija raznovrsna komunikacija širom svijeta, gdje ljudi trguju robom i uslugama. Istovremeno, u drugim dijelovima svijeta, zbog represivne vlade, ljudi nemaju otvoren pristup Internetu, tj. njihove aktivnosti se nadziru, ili je prisutna cenzura sadržaja. Također, postoje zviždači i agenti u neprijateljskim državama ili na tajnom zadatku kojima je tajnost njihovih djela neophodna za uspjeh. Što tim ljudima zajedničko? Potreban im je način, odnosno alat, koji će im omogućiti da neometani i nepraćeni koriste mrežu ili Internet. Taj ćemo način, radi jednostavnosti, nazvati skrivenim servisom. ====== Tor ====== //The Onion Router//, poznatiji kao //Tor//, je programski sustav za anoninmu komunikaciju. Postao je poznat široj javnosti kao [[http://www.theguardian.com/technology/2013/nov/05/tor-beginners-guide-nsa-browser|"web preglednik za skrivanje IP adrese i pristup darknetu"]] nakon [[https://www.bbc.com/news/world-us-canada-23123964|slučaja zviždača Edwarda Snowdena 2013.]]//.//Tor je implementacija //[[:racfor_wiki:mrezna_forenzika:usporedba_skrivenih_servisa_i2p_i_tor#onion_routing|onion routing]] //tehnike. Nastao je kao zajednički projekt [[https://www.freehaven.net/~arma/cv.html|Rogera Dingledinea]], poznatog kao //arma//,tada studenta diplomskog studija na MIT-u, i [[http://www.syverson.org/|Paula Syversona]], matematičara u [[https://www.nrl.navy.mil/itd/chacs/|CHACS-u]] (//Center for High Assurance Computer Systems//), grani IT divizije u [[https://www.nrl.navy.mil/|NRL-u]] (//Navy Research Laboratory//) mornarice SAD-a. Od 2004. [[https://www.eff.org/|EFF]] (//Electronic Frontier Foundation//) financira rad na projektu, a 2006 osnovan je //Tor Project Inc.//, neprofitna orgranizacija s zadaćom financiranja Tor projekta. Izvori [1] i [2] tvrde da je razvoj Tora rezultat napora američkih službi da se agentima u stranim državama omogući sigurna komunikacija s nadređenima, bez da ih prisluškuju obavještajne službe drugih država ili druge organizacije, dok komunikacija zviždača, kriminalaca i paranoika, koji su protiv svakog oblika prisluškivanja njihove komunikacije, služi kao šum u mreži, koji će sakriti aktivnosti agenata. ===== Onion routing ===== Prije opisivanja rada Tora, potrebno je objasni koncept koji stoji iza cijelog sustava, //onion routing//. //Onion// //routing// je raspodijeljena mreža koja prekriva komunikaciju aplikacija baziranih na [[https://tools.ietf.org/html/rfc675|TCP-u]]. Mreža se sastoji od dva dijela: klijenata koji koriste usluge mreže (web usluge, web aplikacije, ljudi koji koriste te usluge i aplikacije) i //Tor // čvorova koji usmjeravaju promet, tj.// onion routeri//. Svaki// onion router// ima vlastiti identifikacijski ključ, kojim potpisuje [[https://tools.ietf.org/html/rfc5246|TLS]] certifikate, vlastiti opisnik, odnosno// router descriptor //i direktorije, koji sažimaju više čvorova u jednu cjelinu.Komunikacija u //onion routingu// se konceptualno sastoji od nekoliko koraka. Prvo se klijent povezuje s //directory serverom //od kojeg dohvaća listu svih trenutno aktivnih //Tor// čvorova u mreži: {{ https://2019.www.torproject.org/images/htw1.png?nolink&510x326 }} . Zatim klijent konstruira put (//circuit// u literaturi) do odredišnog klijenta, npr. web sjedišta: {{ https://2019.www.torproject.org/images/htw2.png?nolink&510x326 }} U konstruiranom //circuitu// svaki //onion router// će saznati svog prethodnika i svog sljedbenika i ništa više, te će od klijenta dobiti// onion key//, za dešifriranje nadolazećih poruka. Poruke unutar //circuita// nazivaju se ćelije (engl. //cell//). Dijagram ispod prikazuje strukturu ćelije. Ćelije su fiksne veličine od 512 okteta i sastoje se od zaglavlja i tijela ćelije. Razlikujemo dvije vrste ćelija: * Kontrolne ćelije (engl. //control cell//) – prenose naredbe čvoru koji prima ćeliju * Ćelije za prijenos podataka (engl. //relay cell//) – prenose podatke između klijenata koji komuniciraju {{ :racfor_wiki:tor-onion-cell-structure.png?nolink&272x85 }} Obje vrste ćelija imaju dva zajednička polja u zaglavlju: identifikator //circuita ////CircID// i naredbu za čvor kojemu je poruka namijenjena.Kontrolna ćelija, na slici prikazana kao gornji okvir, ima zaglavlje od samo tri okteta, tj. zajednička polja zaglavlja koja su iznad opisana. Kontrolnu ćeliju obrađuje i interpretira onaj čvor koji primi tu ćeliju. Kontrolna ćelija može stvoriti //circuit//, uništiti ga ili slati //padding// naredbu koja se najčešće koristi kao provjera dostupnosti čvora. //Relay// ćelije u zaglavlje dodaju dodatna polja: * //Relay// zaglavlje – indikator da se radi o //relay// ćeliji, jedan oktet * //StreamID// – identifikator toka podataka (klijent može koristiti isti //circuit// za različite poslužitelje), dva okteta * Zaštitna suma podataktovnog dijela, 6 okteta * Veličina stvarnih podataka u podatkovnog dijelu, dva okteta Kako bi podatkovne ćelije sigurno putovale kroz mrežu, ćelija se šifrira onoliko puta koliko je čvorova u //circuitu//. Proces šifriranja prikazan je na slici ispod. Ćelija se prvo šifrira //onion// ključem posljednjeg čvora u mreži, zatim pretposljednjim, i tako redom do //onion// ključa prvog //Tor// čvora kojemu klijent prosljeđuje svoju poruku. {{ :racfor_wiki:tor-onion-encryption.png?nolink&638x300 }} ====== Sigurnost, prijetnje i napadi na Tor ====== ==== Sigurnosni zahtjevi ==== //Tor// u svom [[https://2019.www.torproject.org/projects/torbrowser/design/|oblikovnom dokumentu]] (engl. //design document//) ima nekoliko sigurnosnih zahtjeva i zahtjeva koji se tiču privatnosti. Prva četiri su sigurnosni zahtjevi, dok se slijedeća tri tiču privatnosti: * //Proxy Obedience// - preglednik ne smije nikada zaobilaziti //Tor Proxy// * //State Separation// - preglednik ne smije nikada koristiti "stanja" drugih preglednika/klijenata za prikaz sadržaja * //Disk Avoidance// - preglednik ne smije nikada zapisati podatke koji prikazuju aktivnost //Tora// na disk, osim ako korisnik to eksplicitno ne podesi * //Application Data Isolation// - sve komponente koje se koriste prilikom korištenja preglednika moraju imati mogućnost brzog i jednostavnog brisanja svih tragova i podataka koje bi mogli ostaviti —- * //Cross-Origin Identifier Unlinkability// - aktivnost korisnika na jednom web sjedištu (//URL bar origin//) ne smije biti poveziva s aktivnošću istog korisnika na nekom drugom web sjedištu, uz pomoć kolačića, autentifikacijskih //tokena// i sl., bez eksplicitnog odobrenja korisnika * //Cross-Origin Fingerprintig Unlinkability// - aktivnost korisnika na jednom web sjedištu (//URL bar origin//) ne smije biti poveziva s aktivnošću istog korisnika na nekom drugom web sjedištu, uz pomoć analize korisničkog ponašanja metodom //[[http://yinzhicao.org/TrackingFree/crossbrowsertracking_NDSS17.pdf|browser fingerprinting]]// , bez eksplicitnog odobrenja korisnika * //Long-Term Unlinkability// - preglednik korisniku mora pružati jasan i jednostavan način uklanjanja i brisanja svih podataka koji bi ga mogli identificirati na mreži; dodatan zahtjev je da se samo uklanjanje obavlja pri svakom ponovnom pokretanju ==== Prijetnje i napadi ==== Potencijalni napadači, s druge strane, pri napadu na //Tor// pokušavaju izvesti neki od napada: * //Bypassing proxy settings// - natjerati korisnika da se direktno spoji na željeni poslužitelj * //Correlation of Tor vs Non-Tor Activity// - analiza prometa izvan //Tora//, u svrhu otkrivanja informacija o prometu unutar //Tora// * //History disclosure// - dohvaćanje povijesti pregledavanja korisnika * //Correlate activity across multiple sites// - identificiranje istog korisnika na različitim web sjedištima * //Fingerprinting/anonymity set reduction// - prikupljanje identificirajućih informacija o korisniku koje nisu mehanizmi preglednika (rezolucija ekrana, vremenska zona, jezik, inačica preglednika itd.) * //History records and other on-disk information// - prikupljanje podataka o korištenju //Tora// s računala na kojem je //Tor// bio pokrenut Navedeni napadi su mogući preko slijedećih [[https://www.techopedia.com/definition/15793/attack-vector|vektora napada]] (engl. //attack vector//) : * //Exit Node //ili //Upstream Router// - napadač može posjedovati ili upravljati izlaznim čvorovima ili usmjernicima na koje su ti čvorovi spojeni * //Ad servers/Malicious Websites// - napadač može biti poslužitelj reklama, koji kroz unamljeni prostor na skrivenim sjedištima prikazuje reklame i prikuplja informacije o korisnicima * //Physical Access// - napadač ima osiguran fizički pristup računalu korisnika koji koristi //Tor// ====== Invisible Internet Project ( I2P ) ====== //Invisible Internet Project//, skraćeno //I2P//, je anonimna mreža koju aplikacije mogu međusobno koristiti za anonimnu i sigurnu komunikaciju. Komunikacija je primarno bazirana na porukama, ali postoji knjižica koja omogućuje komunikaciju tokovima (engl. //stream//). //I2P// koristi //[[https://protonmail.com/blog/what-is-end-to-end-encryption/|end-to-end]] //šifriranje za zaštitu podataka aplikacija koje komuniciraju, te siguran prijenos podataka između čvorova koji sudjeluju u komunikaciji. Prije ulaska u detalje, važno je naglasiti da //I2P// //peer-to-peer// mreža, što znači da su svi čvorovi, koji u nekom trenutku sudjeluju u //I2P// komunikaciji, izravno povezani. ===== Garlic routing ===== //[[:racfor_wiki:mrezna_forenzika:usporedba_skrivenih_servisa_i2p_i_tor#onion_routing|Onion routing]] //je opisan u prethdnom poglavlju, a mehanizam //garlic routing// pruža proširenje u odnosu na svog prethodnika. Ključna razlika između //onion// i //garlic// usmjeravanja je što se u garlic porukama može odjednom poslati više međusobno nepovezanih poruka koje idu na isto osnovno odredište, što je prikazano slikom ispod. //Router// koji pripada //Alice//, prije slanja poruka //Bobu//, prikuplja više poruka koje su namijenjene //Bobu//. Taj mehanizam omogućuje slijedeće: * Pri izgradnji tunela, moguće je enkapsulirati više različith puteva do istog odredišta, čime se postiže redundancija u mreži i čuva dostupnost sustava * Otežava analizu prometa tako što više heterogenih poruka putuje istovremeno, dodajući entropiju komunikaciji * Povećava performanse mreže, pritom štedi resurse i čini komunikaciju učinkovitijom {{ https://geti2p.net/_static/images/garliccloves.png?nolink&800x276 |Slika 5. - Primjer rada garlic routinga}} ===== Osnovni koncepti mreže ===== Prije analize //I2P //mreže, potrebno je pojasniti osnovne koncepte koji tvore temelj //I2P//-a: * Pojmovi "usmjernika" (//"router"//) i krajnjeg čvora (//"endpoint"//) mreže * Ostvarenje komunukacije u mreži uz pomoć [[https://www.techopedia.com/definition/5402/tunneling|tunela]] * Mrežna baza podataka, odnosno //network database// Slika 1 prikazuje jednostavan primjer //I2P// mreže s četiri korisnika. //Router//, na slici prikazan kao crni pravokutnik, sudjeluje u radu mreže. S druge strane, krajnji čvorovi, na slici prikazani kao crveno-plavi kružići, su aplikacije koje preko routera komuniciraju s drugim aplikacijama na //I2P// mreži. Važno je naglasiti da više krajnjih čvorova može biti povezano s istim routerom. [[https://www.techopedia.com/definition/5402/tunneling|Tuneli]] su drugi važan koncept u //I2P// mreži, a na slici ispod su prikazani kao: * Svjetlozeleni pravokutnik za ulazni tunel * Ružičasti pravokutnik za izlazni tunel {{ https://geti2p.net/_static/images/net.png?nolink&670x509 |Slika 1 - Primjer I2P mreže}} Svaki tunel u //I2P// mreži se sastoji od dva obvezna i jednog opcionalnog dijela: * Poveznik (engl. //gateway//) - obvezno * Krajnja točka (engl. //endpoint//) – obvezno * Sudionik (engl. //participant//) – opcionalno //Gateway// i //endpoint// su uvijek krajnje točke tunela, dok sudionik/ici ne moraju biti prisutni u strukturi tunela. Kao što je ranije spomenuto, //I2P// razlikuje dvije vrste tunela: ulazne i izlazne tunele. Slika ispod prikazuje strukturu dvaju vrsta tunela. Kada neki korisnik želi poslati poruku drugome, stvara izlazni tunel kroz koji će poslati svoju poruku, a novostvoreni tunel prosljeđuje poruku ulaznom tunelu odredišnog čvora mreže. Ulazni tunel, koji je zadužen za primanje poruka, je organiziran suprotno od izlaznog, tj. gateway je početna, a endpoint završna točka tunela. Ulazni tunel je taj koji se objavljuje svim članovima //I2P// mreže, kako bi korisnici znali kako kontaktirati jedni druge. Tuneli se međusobno razlikuju i prema njihovoj duljini. Razlikujemo: * Tunel s nula skokova (//0-hop tunnel//) – //gateway// i //endpoint// su isti uređaj/program * Tunel s jednim skokom (//1-hop tunnel//) – //gateway// i //endpoint// su izravno povezani * Tunel s dva ili više skokova (//2/n-hop tunnel//) – tunel sadrži barem jednog dodatnog //participanta//, a najviše 5 (prema specifikaciji I2P, tunel može imati najviše 7 čvorova) Također, svakom čvoru u tunelu dodijeljen je //tunnel ID//, cijeli broj od četiri okteta, koji je jedinstven među svim čvorovima koji su dio bilo kojeg tunela u routeru. {{ https://geti2p.net/_static/images/tunnels.png?nolink&669x222 |Slika 2 - Vrste tunela u I2P mreži}} Kada neki korisnik želi poslati poruku drugome, stvara izlazni tunel kroz koji će poslati svoju poruku, a novostvoreni tunel prosljeđuje poruku ulaznom tunelu odredišnog čvora mreže. Ulazni tunel, koji je zadužen za primanje poruka, je organiziran suprotno od izlaznog, tj. //gateway// je početna, a //endpoint// završna točka tunela. Ulazni tunel je taj koji se objavljuje svim članovima I2P mreže, kako bi korisnici znali kako kontaktirati jedni druge. Stvaranje tunela i šifriranje sadržaja obavlja tehnologija [[:racfor_wiki:mrezna_forenzika:usporedba_skrivenih_servisa_i2p_i_tor#garlic_routing|garlic routing]]. Mrežna baza podataka, odnosno //network database//, skraćeno //netDb//, je skup algoritama koje mreža koristi za pohranu metapodataka o mreži. Konkretno pohranjuju se dvije vrste podataka: //routerInfo// i //leaseSet//. //RouterInfo// pohranjuje metapodatke o routerima koji sudjeluju u mreži, kako bi drugi //routeri// mogli komunicirati s njima. Kada novi //router// želi sudjelovati u mreži, u //netDb// šalje svoje metapodatke, čime objavljuje svoju prisutnost u mreži. //LeaseSet// čuva podatke o ulaznim tunelima kojima je moguće slati poruke. //LeaseSetovi// se u //netDb// objavljuju kroz izlazne tunele, da bi se očuvala anonimnost, tj. kako bi se izbjeglo asociranje //routera// s //leaseSetovima//. ====== Komunikacija u I2P mreži ====== Slike 4 i 5 prikazuju primjer komunikacije u //I2P// mreži. U primjeru //Alice// želi komunicirati s //Bobom//. Prvi korak koji //Alice// čini je prikupljanje podataka o susjednim čvorovima kako bi stvorila izlazne i ulazne tunele, što je prikazano slikom 4. Prvo iz //netDb// dobiva //routerInfo// od čvorova //John// i //Peter//, te s njima stvara ulazne i izlazne tunele. Slijedeće //Alice// dohvaća podatke o //leaseSetu// koje je Bob objavio, što je prikazano na slici 5. //Alice// odabire neki od svojih izlaznih tunela i šalje poruku, koju tunel prosljeđuje //Bobovom// ulaznom tunelu koji je odabran u poruci. Po primitku, //Bobov// ulazni tunel prosljeđuje poruku do Boba. Ako je komunikacija zamišljena kao obostrana, tj. //Alice// očekuje odgovor od //Boba//, //Alice// mora u odlaznu poruku uključiti i podatke o svome krajnjem čvoru, kako bi //Bob// znao gdje poslati odgovor. {{ https://geti2p.net/_static/images/netdb_get_routerinfo_1.png?nolink&323x259 |Slika 4 - Alice dohvaća podatake potrebne za stvaranje izlaznog tunela}}{{ https://geti2p.net/_static/images/netdb_get_leaseset.png?nolink&687x259 |Slika 5 - Alice dohvaća podatke o Bobu i šalje poruku}} ====== Sigurnosne prijetnje i napadi na I2P ====== //I2P// dijeli slične ciljeve kao i //Tor//, što je opisano u [[:racfor_wiki:mrezna_forenzika:usporedba_skrivenih_servisa_i2p_i_tor#sigurnost_prijetnje_i_napadi_na_tor|prethodnim poglavljima]], s razlikom da se korisnici //I2P//-a ne moraju bojati faktora koji nisu dio mreže, poput poslužitelja za reklame, špijunaže tehnoloških giganta poput //Googlea//, zato što ti entiteti niti ne mogu pristupiti uslugama koje su aktivne u //I2P// mreži. S druge strane, ta činjenica otvara prostor napdadima koji su uobičajeni u internim mrežama, među kojima treba spomenuti slijedeće: * //[[https://geti2p.net/en/docs/how/threat-model#intersection|Intersection attack]]//- periodična kratkotrajna komunikacija s žrtvom uz praćenje postojećih čvorova u mreži, čime je moguće saznati puno informacija o čvorovima i samoj mreži * //[[https://geti2p.net/en/docs/how/threat-model#dos|Denial of Service]]// * //[[https://geti2p.net/en/docs/how/threat-model#tagging|Tagging attack]]// - modificiranje poruke kako bi ih se moglo pratiti na putu kroz mrežu * //[[https://geti2p.net/en/docs/how/threat-model#partitioning|Partitioning attack]]//- modificiranje topologije mreže kako bi se žrtva izolirala tako da napadač kontrolira jedine žive poveznice sa žrtvom Možda najopasniji napad među spomenutima na //I2P// kao "interne mreže" je obitelj //[[https://geti2p.net/en/docs/how/threat-model#sybil|sybil]]//. //Sybil// su napadi gdje napadač pokušava preuzeti kontrolu nad što većim brojem čvorova mreže, kako bi ostvario "kontrolu" nad mrežom. Problem //sybil// napada je i najveća prijetnja svih //blockchain// implementacija, zato što integritet mreže //minera// ovisi dobroćudnosti većine, kako bi se ispravno gradio lanac. Jednom kada napadač potpuno preuzme 50% i jedan čvor, mreža je nepovratno kompromitirana. Od napada koji su specifičniji za //I2P//, važno je spomenuti slijedeće: * //[[https://geti2p.net/en/docs/how/threat-model#harvesting|Harvesting]]//- prikupljanje popisa svih korisnika koji koriste //I2P// i informacija o njima * //[[https://geti2p.net/en/docs/how/threat-model#traffic|Identification through traffic analysis]]//- analiza zloćudnog usmjernika ili sigurnosne stijene (engl. //firewall//) moguće je odrediti je li neko računalo, čiji promet prolazi kroz njega, dio //I2P// mreže. Nasreću mehanizmi poput nasumičnog odabira izlaznih vratiju (engl. //port//), //point-to-point// šifriranja znatno otežavaju ovaj napad ====== Usporedba Tora i I2P ====== //Tor// i //I2P// su slične usluge, uzevši u obzir da se radi o implementacijama //onion routinga//. Ipak, mreže se utoliko razlikuju u svojim osnovnim značajkama. Torova mreža je bazirana na direktorijima, gdje postoje centralni čvorovi koji sadrže ključne informacije o mreži, stoga je obveza čuvati integritet tih čvorova. S druge strane I2P je potpuno raspodijeljena mreža, što otežava zloćudno preuzimanje mreže, s obzirom da je potrebno kompromitirati većinu čvorova za preuzimanje kontrole nad mrežom. Također, valja spomenuti razlike u nazivlju pojedinih dijelova mreže koji obavljaju identične ili slične zadaće u mreži, što je prikazano na tablici. ^Tor^I2P| |Cell|Message| |Client|Router/Client| |Circuit|Tunnel| | \\ Directory| \\ NetDb| |Directory Server|Floodfill Router| |Entry Guards|Fast Peers| |Entry Node|InProxy| |Exit Node|OutProxy| |Hidden Service|Hidden Service/Eepsite/Destination| |HiddenService Descriptor|LeaseSet| |Introduction point|Inbound Gateway| |Node|Router| |Onion Proxy|I2P Tunnel Client (otprilike)| |Onion Service|Hidden Service/Eepsite/Destination| |Relay|Router| |Rendezvous Point|slično Inbound Gateway + Outbound Endpoint| |Router Descriptor|RouterInfo| |Server|Router| \\ ===== Prednosti Tora nad I2P ===== //Tor// je starija mreža, tj. dulje vremena je u pogonu, zbog čega ima više korisnika i prepoznat je u relevenatnim krugovima (akademici, „hakeri”, zviždači). Kao takav, //Tor// ima stabilno financiranje, što korisnicima daje osjećaj povjerenja u uslugu, tj. da će se nastaviti radovi na mreži, te da će mreža biti aktivna na duge staze. Povjerenje u mrežu je dodatno poduprto dobrom dokumentacijom, formalnim radovima i nacrtima, koji su prevedeni na više svjetskih jezika. Glede performansi, //Tor// trenutno ima bolju skalabilnost, učinkovitije koristi memoriju, a čvorovi koji su sačinjeni od moćnih računala omogućuju rad mreže s malim kašnjenima (engl. //latency//) i visokim izlaznim kapacitetom. Centraliziranost direktorijskih čvorova omogućuje jednostavniju implementaciju drugih čvorova, te se tako mreža štiti od //[[https://web.archive.org/web/20170129094347/https://gnunet.org/sites/default/files/Tech Report - A Survey of Solutions to the Sybil Attack.pdf|sybil]]// napada, gdje napadač stvara nekoliko lažnih čvorova kojima bi ciljnom čvoru podigao reputaciju i tako postupno preuzeo kontrolu nad mrežom. ===== Prednosti I2P nad Torom ===== //I2P// ne uživa povjerenje i popularnost kao //Tor//, ali u svom dizajnu ima neke inherentne prednosti u odnosu na njega. //I2P// je mreža koja nikako ne komunicira s "vanjskim svijetom”, tj. čvorovi u mreži ne mogu pristupiti uslugama koje nisu dio //I2P// mreže, niti autsajderi mogu komuniciriati s aplikacijama koje su dostupne na //I2P// mreži. Također su te skrivene usluge i aplikacije, zbog zatvorenosti mreže, učinkovitije i brže nego kad se izvode u //Tor// mreži. Ranije je spomenuto da je //I2P// potpuno raspodijeljena mreža, što daje slijedeća svojstva: * Samoorganizirajuća mreža * Čvorovi-susjedi se kontinuirano nanovo biraju profiliranjem i mjerenjem perfomansi * //Floodfill// čvorovi se redovito mijenjaju, i nemaju 100-postotno povjerenje od drugih članova mreže * Mreža je optimizirana za komunikaciju s kraja na kraj (engl. //peer-to-peer//) Vrijedi spomuenuti još nekoliko svojstava koja //I2P//-u daju prednost nad //Torom//. S obzirom da se komunikacija u //I2P//-u odvija preko jednosmjernih tunela, za kompromitiranje komunikacije između dva čvora uvijek je potrebno preuzeti sve čvorove u oba tunela, za razliku od //Tora// gdje je dovoljno preuzeti jedan //circuit//. Tunelima se prenose heterogene poruke (konkretni podaci, //netDb// upiti, upravljanje i testiranje tunela), čime se otežava analiza aktivnosti čvora u mreži. Osim toga, napadač ima jako malo vremena za analizu i napad na tunel, zato što svi //I2P// tuneli imaju vijek trajanja od samo 10 minuta, za razliku od //circuita//, koji su dugotrajniji i koriste se za više TCP veza. ====== Zaključak ====== Ovaj seminar predstavio je dva vrlo poznata skrivena servisa: //Tor// i //I2P//. Ukratko je objašnjen njihov nastanak, te su obrađeni koncepti //onion routinga//, koji stoji iza //Tora//, i //garlic ////routinga//, koji stoji iza //I2P//-a. Usporedba između ova dva servisa pokazala je da je //Tor// trenutno dominantnija opcija, ponajviše zbog baze korisnika i stabilnog financiranja, dok //I2P// pokazuje veliki potencijal koji tek treba ispuniti. Arhitektura obaju skrivenih servisa, njihov dizajn, te problemi daju naslutiti da anonimnost na mreži ne ovisi o jednom paranoičnom pojedincu, nego je potrebna jedna cijela zajednica kako bi sustav funkcioniraju. Također, ne postoji jedno rješenje, tzv. //silver bullet syndrome//, za sve probleme skrivenih servisa. ====== Izvori ====== [1] [[https://www.theguardian.com/technology/2013/nov/05/tor-beginners-guide-nsa-browser|https://www.theguardian.com/technology/2013/nov/05/tor-beginners-guide-nsa-browser]]\\ [2] [[https://www.zerohedge.com/news/2018-03-02/tor-project-almost-100-funded-us-government-report|https://www.zerohedge.com/news/2018-03-02/tor-project-almost-100-funded-us-government-report]]\\ [3] [[https://svn-archive.torproject.org/svn/projects/design-paper/tor-design.pdf|https://svn-archive.torproject.org/svn/projects/design-paper/tor-design.pdf]]\\ [4] [[https://www.torproject.org/|https://www.torproject.org/]]\\ [5] [[https://svn-archive.torproject.org/svn/projects/presentations/slides-stanford10.pdf|https://svn-archive.torproject.org/svn/projects/presentations/slides-stanford10.pdf]]\\ [6] [[https://2019.www.torproject.org/docs/documentation|https://2019.www.torproject.org/docs/documentation]]\\ [7] [[https://geti2p.net/en/|https://geti2p.net/en/]]\\ [8] [[https://geti2p.net/en/docs/|https://geti2p.net/en/docs/]]\\ [9] [[https://geti2p.net/en/docs/how/garlic-routing|https://geti2p.net/en/docs/how/garlic-routing]]\\ [10] [[https://www.freehaven.net/doc/freehaven.pdf|https://www.freehaven.net/doc/freehaven.pdf]]\\