===== Sažetak =====
Jedinstvena značajka Tor mreže su Tor skrivene usluge koje omogućuju korisnicima objavljivanje web usluga i anonimni pristup što se postiže korištenjem posebne onion adrese poznate samo davatelju usluge i njegovim korisnicima, umjesto javne IP adrese. Tor skrivene usluge pružaju anoniman pristup svom sadržaju i štite privatnost svojih korisnika, ali postavljanje skrivene usluge može biti kompliciranije od korištenja tradicionalnih usluga dostupnih na javnim IP adresama. U ovom radu dan je kratki pregled u Tor skrivene usluge. Također, na primjeru postojeće dockerizirane usluge prikazan je proces objavljivanja skrivene usluge na Tor mrežu. Na kraju, donosi se zaključak o kompleksnosti postavljanja skrivene usluge u odnosu na postavljanje klasičnih usluga te se propitkuje potreba za korištenjem Tor skrivenih usluga.
===== Uvod =====
Tor skrivene usluge (engl. Tor hidden services) jedinstvena su značajka Tor mreže koja korisnicima omogućuje objavljivanje web usluga i anonimni pristup. Za razliku od tradicionalnih web usluga, kojima se može pristupiti putem javne IP adrese, skrivenim uslugama moguće je pristupiti samo putem posebne onion adrese, koja je poznata samo davatelju usluga i njegovim korisnicima. Ovo može biti posebno korisno za pojedince ili organizacije koje žele objaviti sadržaj ili usluge bez otkrivanja svog identiteta ili lokacije. Navedeno omogućuje skrivenim uslugama da ponude anoniman pristup svom sadržaju i zaštite privatnost i svojih korisnika bez otkrivanja njihove IP adrese i praćenja njihovih online aktivnosti. Također, unatoč ovim prednostima, postoje i neki potencijalni nedostaci korištenja Tor skrivenih usluga kao što je kompliciranije postavljanje skrivene usluge u usporedbi s tradicionalnim uslugama dostupnim na javnim IP adresama.
===== Pregled procesa objavljivanja skrivene usluge =====
Na slici 1.1 prikazan je proces objavljivanja skrivene usluge i raščlamba načina funkcioniranja protokola usmjeravanja luka (engl. onion routing protocol).
{{https://www.researchgate.net/profile/Dominik-Herrmann-2/publication/283376301/figure/fig1/AS:332997913006081@1456404297713/Tor-hidden-service-protocol-overview.png?650x400}}
Slika 1.1 - prikaz procesa objavljivanja skrivene usluge
Proces postavljanja skrivene usluge na Tor mreži koja koristi točku susreta (engl. Rendezvous Point), uvodnu točku (engl. Introduction Point) i imenički poslužitelj (engl. Directory Server) uključuje nekoliko koraka. Prvo, skrivena usluga mora biti kreirana na Tor klijentu. Nakon što se stvori skrivena usluga, privatni ključevi za uslugu koriste se za generiranje deskriptora - potpisani dokument koji sadrži informacije o skrivenoj usluzi i njezinoj lokaciji na mreži. Ovaj se deskriptor zatim šalje jednoj ili više uvodnih točaka, koje su odgovorne za prosljeđivanje zahtjeva za povezivanje skrivenoj usluzi. Kada se korisnik na Tor mreži želi spojiti na skrivenu uslugu, prvo šalje zahtjev imeničkom poslužitelju koji održava popis svih aktivnih skrivenih usluga na mreži. Imenički poslužitelj odgovara s popisom uvodnih točaka za traženu skrivenu uslugu. Korisnikov Tor klijent zatim uspostavlja vezu s jednom od uvodnih točaka i šalje zahtjev za povezivanje sa skrivenom uslugom. Uvodna točka tada uspostavlja vezu sa skrivenom uslugom i djeluje kao proxy, prosljeđujući promet između korisnika i skrivene usluge. Nakon što je veza uspostavljena, korisnik i skrivena usluga mogu komunicirati izravno putem uvodne točke, bez otkrivanja svoje prave IP adrese jedan drugome. Uvodna točka i imenički poslužitelj nemaju pristup sadržaju komunikacije, ali mogu vidjeti IP adrese korisnika i skrivene usluge te vrijeme i trajanje veze.
Postavljanje skrivene usluge na Tor mreži s točkom susreta, uvodnom točkom i imeničkim poslužiteljem može biti složen proces i važno je razumjeti potencijalne rizike i ograničenja ovog pristupa. Na primjer, korištenje uvodnih točaka i direktorijskih poslužitelja može napadaču olakšati lociranje i napad na skrivenu uslugu, a upotreba jedne točke susreta može stvoriti usko grlo koje ograničava performanse skrivene usluge.
Važno je napomenuti da postavljanje skrivene usluge neće automatski učiniti sigurnom ili anonimnom. Potrebno je poduzeti dodatne korake kako bi se osigurala skrivena usluga i zaštitila anonimnost njezinih korisnika, kao što su: korištenje jakih, jedinstvenih lozinki za sve račune na skrivenoj usluzi i korištenje enkripcije za zaštitu prometa prema i od skrivene usluge. [1]
===== Priprema =====
Za postavljanje Tor skrivene usluge bit će potrebno napraviti nekoliko instalacija. Za potrebe demonstracije postavljanja tor skrivenog servisa koristit će se Linux Ubuntu distribucija i Tor preglednik, te Docker i proizvoljni Docker image.
Instalacija Dockera može se jednostavno učiniti izvršavanjem naredbe u terminalu:
~$ sudo apt-get install docker-ce docker-ce-cli containerd.io
Za više informacija o Dockeru i instalaciji pogledati dokumentaciju [2].
Također, potrebno je instalirati i Tor preglednik što se također može jednostavno učiniti izvršavanjem naredbi u terminalu:
~$ sudo add-apt-repository ppa:micahflee/ppa
~$ sudo apt install torbrowser-launcher
Ako je instalacija uspješna, preko novonastale ikone otvara se Tor preglednik kao na slici 2.1:
{{https://www.tecmint.com/wp-content/uploads/2018/12/Tor-Browser-Welcome-Page.png?650x500}}
Slika 2.1 - početna stranica Tor preglednika
Za više informacija o Tor pregledniku i instalaciji pogledati dokumentaciju [3].
==== Priprema docker slike ====
Za potrebe demonstracije može se preuzeti i proizvoljna docker slika (engl. Docker image) sa službenih stranica [4].
~$ curl -sSL https://raw.githubusercontent.com/bitnami/containers/main/bitnami/dokuwiki/docker-compose.yml > docker-compose.yml
~$ docker-compose up -d
U docker-compose.yml potrebno je promijeniti port na 8080.
==== Priprema lokalnog poslužitelja ====
Potrebno je postaviti način posluživanja HTTP sadržaja. U konkretnom slučaju koristi se Python modul i http.server kako bi se poslužitelj pokrenuo na izlazu 8080, na sljedeći način:
~/tor_service$ python3 -m http.server --bind 127.0.0.1 8080
Serving HTTP on 127.0.0.1 port 8080 (http://127.0.0.1:8080/)...
===== Postavljanje Tor skrivenog servisa =====
Nakon pripreme, sljedeći korak je uređivanje torrc datoteke. Kako bismo pronašli torrc datoteku koristimo sljedeću naredbu:
~ $ whereis tor
tor: /usr/bin/tor /usr/sbin/tor /etc/tor /usr/share/tor /usr/share/man/man1/tor.1.gz
Datoteka bi se trebala nalaziti u /etc/tor direktoriju što potvrđujemo sljedećim naredbama:
~$ cd /etc/tor/
~/etc/tor$
~/etc/tor$ ls
torrc torsocks.conf
Nakon što smo utvrdili postojanje i locirali datoteku torrc, potrebno je promijeniti njen sadržaj kako bismo Tor usmjerili na našu skrivenu uslugu. Datoteku uređujemo proizvoljno, npr. korištenjem sljedeće naredbe:
~/etc/tor$ sudo nano torrc
Da bismo usmjerili Tor na našu skrivenu uslugu, moramo otkomentirati sljedeća dva retka:
#HiddenServiceDir /var/lib/tor/hidden_service/
#HiddenServicePort 80 127.0.0.1:80
Također, potrebno je i podesiti vrata (engl. port) na kojem Tor traži naš poslužitelj, u ovom slučaju 8080.
Datoteka sa svim izmjenama treba izgledati ovako:
…
############### This section is just for location-hidden services ###
## Once you have configured a hidden service, you can look at the
## contents of the file ".../hidden_service/hostname" for the address
## to tell people.
##
## HiddenServicePort x y:z says to redirect requests on port x to the
## address y:z.
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:8080
#HiddenServiceDir /var/lib/tor/other_hidden_service/
#HiddenServicePort 80 127.0.0.1:80
#HiddenServicePort 22 127.0.0.1:22
Kako bismo učinili naš poslužitelj dostupnim preko Tor-a potrebno je izvršiti sljedeću naredbu:
~/etc/tor$ sudo tor
Nakon pokretanja Tor-a po prvi put s konfiguracijom, automatski će se generirati .onion adresa u direktoriju /var/lib/tor/hidden_service ili u nekom drugom direktoriju ako je naveden u torrc konfiguracijskoj datoteci.
~$ sudo cd /var/lib/tor/hidden_service
~$ root:/# cd /var/lib/tor/hidden_service
~$ root:/var/lib/tor/hidden_service# cat hostname
tfxkl2g4nrhl53yhgwib4piystswsvxengtzo6orpri3hheoyrkqxbyd.onion
Možemo provjeriti je li naša usluga dostupna tako da je otvorimo u pregledniku Tor. Ako je Dokuwiki forum ili naša kreirana index html stranica sa natpisom vidljiva, uspješno smo pokrenuli tor skrivenu uslugu.[5]
{{:racfor_wiki:mrezna_forenzika:screenshot_2023-01-10_at_19.01.38.png?650x400}}
Napomena: Usluga je vidljiva samo kada je pokrenut naš lokalni poslužitelj.
Video prezentacija seminara dostupna je na: https://ferhr-my.sharepoint.com/:v:/g/personal/db50330_fer_hr/EdiD8-dzNwNFg4xm_JVYms0BM6AoBWFEI4vG4eYZAanVWg?e=4Tn4to
Prezentacija seminara: https://ferhr-my.sharepoint.com/:b:/g/personal/db50330_fer_hr/ESRivxqkF79Gjao9Mm00xvEBSr0qvNjhd0S4kTWh5dd4BA?e=Xa77QI
===== Zaključak =====
Tor skrivene usluge jedinstvena su i moćna značajka Tor mreže koja može ponuditi anonimni pristup sadržaju i uslugama, zaštititi privatnost korisnika i pružatelja usluga te pružiti dodatnu sigurnost i privatnost. Međutim, oni također dolaze s nekim potencijalnim nedostacima i ograničenjima i možda nisu prikladni za sve vrste sadržaja ili usluga. U ovom radu prikazan je jedan od mnogobrojnih načina postavljanja skrivene usluge u kojem se može prepoznati složenost ovog procesa.
===== Literatura =====
[1] Powered by privacy: (no date) Tor Project | How do Onion Services work? [online] Available at: [[https://community.torproject.org/onion-services/overview/]] [Accessed: December 11, 2022].
[2] Install Docker engine on ubuntu (2022) Docker Documentation. [online] Available at: [[https://docs.docker.com/engine/install/ubuntu/]] [Accessed: December 12, 2022].
[3] Linuxize (2020) How to install tor browser on ubuntu 18.04, Linuxize. Linuxize. [online] Available at: [[https://linuxize.com/post/how-to-install-tor-browser-on-ubuntu-18-04/ ]] [Accessed: December 12, 2022].
[4] Docker Hub. [online] Available at:[[ https://hub.docker.com/r/bitnami/dokuwiki ]] [Accessed: December 12, 2022]..
[5] TheHiddenWiki (2019) Hidden services- tor hidden services, BitcoinWiki. BitcoinWiki. [online] Available at: [[https://en.bitcoinwiki.org/wiki/Hidden_Service]] [Accessed: December 10, 2022].
[6] Takhion et al. (2020) How to host your own tor hidden service with a custom onion address, WonderHowTo. WonderHowTo. [online] Aclanthology.org. Available at: [[https://null-byte.wonderhowto.com/how-to/host-your-own-tor-hidden-service-with-custom-onion-address-0180159/ ]] [Accessed: December 10, 2022].
[6] Tyagi, A. (2020) Setting up a tor hidden service [a how-to guide], HackerNoon [online] Available at: [[https://hackernoon.com/setting-up-a-tor-hidden-service-a-how-to-guide-zs1s3yoy]] [Accessed: December 11, 2022].
[7] Hosting onion services (no date) Hosting Onion Services. [online] Available at: [[https://riseup.net/en/security/network-security/tor/onionservices-best-practices]] [Accessed: December 11, 2022].
[8] List of tor onion services (2022) Wikipedia. Wikimedia Foundation [online] Available at:
[[https://en.wikipedia.org/wiki/List_of_Tor_onion_services]] [Accessed: December 10, 2022].