Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
Prijevodi ove stranice:

Ovo je stara izmjena dokumenta!


Wireguard protokol

Uredi

Uredi

Sažetak

The fact that we could even recover data from a formatted Hard Drive is kind of amazing. You choose (or not) to delete data, but it is still there, even if it is not that easy to read.

The purpose of this paper is to understand how data recovery works. To do so, we explain the steps and some technics. We will go through how a sinister leading to a try for data recovery can occur. Then, we will see a method that could have been used by computer forensics experts in order to find traces. To finish, we will mention methods to definitely erase data from Hard Drives to avoid leaving traces.

The reasons for those sinisters are numerous, but human mistakes are majorly involved. Peter Gutmann proposed through his papers an explanation of how this data could still be read on Hard Drives at that time, but also some advices to securely erase data.

This paper is some kind of a warning to all those selling Hard Drives via eBay that once contained personal data.

Keywords: recovery; data; traces

Uredi

Uredi

Uvod

Data recovery consists of finding lost digital information. This loss may have various causes such as human mistake or material failure. The difficulty of the recovery of this data varies, but it may be a challenge.

What is at stake depends on the case. If we are dealing with a private person, the reasons for the willing of retrieving these data are mainly personal attachment to the files (holiday photos and videos). However, if we are talking of a company, then this seems much more important since data loss is the second threat to cloud security and 60% of companies that lose their data shut down within 6 months of this disaster.

In case of an accidentally deleted file, this file is not really removed from the guilty computer. What is really deleted is the path useful to grant access to the file. The space is now available again to re-write on it. But the data corresponding to this file is still stored, until something is stored at the same place. This means that you may be able to restore this data, even months later if no other file overwrote it.

Uredi

Uredi

Što je VPN

VPN (engl. Virtual private network) proširuje privatnu mrežu preko javne mreže i omogućuje korisnicima slanje ili primanje podataka preko dijeljene ili javne mreže kao da su spojeni direktno na privatnu mrežu. VPN tehnologija je razvijena kako bi se udaljenim radnicima ili uredima omogućio pristup poslovnim aplikacijama i resursima. Kako bi se osigurala sigurnost privatna mreža uspostavljena je koristeći enkriptirani mrežni tunel i VPN korisnici koriste metode autentifikacije kao što su lozinke ili certifikati kako bi dobili pristup virtualnoj privatnoj mreži. U nekim drugim okolnostima obični korisnici interneta mogu koristiti VPN kako pristupili sadržaju koji je ograničen na neku geografsku lokaciju ili koji je cenzuriran u njihovoj državi ili da se spoje na proxy poslužitelj radi zaštite osobnog identiteta i lokacije te da ostanu anonimni na internetu. Način na koji VPN funkcionira grafički je prikazan na slici ispod.

Uredi

Uredi

Postojeći VPN protokoli

Trenutno postoji nekoliko različitih mrežnih protokola koji se koriste za ostvarivanje VPN-a. Najrašireniji su OpenVPN i IPSec.

OpenVPN

OpenVPN je najpopularniji VPN protokol danas. Zbog velikog broja korisnika i otvorenosti koda, a i zbog toga jer je prošao razne nezavisne sigurnosne provjere mnogi ga smatraju i najsigurnijim VPN protokolom.

Ovaj protokol nema nativnu podršku od operacijskih sustava pa je potrebno koristiti posebne aplikacije (OpenVPN klijente) za spajanje na mrežu. Davatelji VPN usluga većinom imaju svoje aplikacije koje se jednostavno instaliraju i koriste na svim popularnim operacijskim sustavima.

Sigurnost i performanse:

  • koristi OpenSSL biblioteku (podržava razne algoritme i šifrate kao što su: AES, Blowfish, Camellia, ChaCha20) i TLS protokol za enkripciju.
  • može koristiti TCP ili UDP s time da je brzina veća ako se koristi UDP, a pouzdanost veća ako se koristi TCP zbog načina na koji ti protokoli funkcioniraju.
  • može se koristiti na bilo kojem TCP ili UDP portu.

IPSec (Internet Protocol Security)

IPSec je sigurni mrežni protokol koji autentificira i enkriptira pakete poslane preko mreže. IPSec radi u potpunosti na mrežnom sloju za razliku od OpenVPN-a koji za enkripciju koristi TLS koji radi na sloju iznad transportnog. Osim toga, IPSec je podržan nativno na većini operacijskih sustava i može se koristiti bez dodatnih VPN klijent aplikacija što je još jedna prednost u odnosu na OpenVPN.

IPSec enkriptira cijeli IP paket koristeći:

  • AH (engl. Authentication Header) koji osigurava autentičnost izvora podataka i integritet niza IP datagrama te onemogućuje napade izvedene ponovljenim slanjem snimljenog prometa.
  • ESP (engl. Encapsulating Security Protocol) koji prvenstveno osigurava povjerljivost komunikacije (povjerljivost ovisi o izboru algoritma šifriranja)

Kada se koristi za ostvarivanje VPN-a IPSec se uparuje s protokolima za tuneliranje (IKEv2 i L2TP). Važno je napomenuti da je IPSec protokol navodno kompromitiran od stane NSA (engl. National Security Agency) što dovodi u pitanje njegovu sigurnost. Više o tome se može pročitati na poveznici: https://en.wikipedia.org/wiki/IPsec#Alleged_NSA_interference

IPSec / IKEv2

IKEv2 (engl. Internet Key Exchange) su razvili Cisco i Microsoft i zatvorenog je koda (iako postoje neke verzije otvorenog koda). Nativno ga podržavaju Windows, MacOS i iOS. Najpopularniji je na mobilnim uređajima jer je nativno podržan na iOS-u i efikasniji je od OpenVPN-a po pitanju iskorištavanja CPU-a što dovodi do duljeg trajanja baterije, a ima i mogućnost ponovnog uspostavljanja konekcije.

Sigurnost i performanse:

  • podržava različite kriptografske algoritme za enkripciju, a neki od njih su AES, Blowfish, Camellia i 3DES.
  • smatra se da ima bolje performanse od OpenVPN-a zbog bolje iskorištavanja CPU-a
  • koristi UDP port 500 za početnu razmjenu ključeva i UDP port 4500 za prolazak kroz NAT (engl. Network Address Translation) pa ga je lakše blokirati od primjerice OpenVPN-a koji ne koristi fiksne port-ove.

IPSec / L2TP

L2TP (engl. Layer 2 Tunneling Protocol) su također razvili Cisco i Microsoft i nativno je podržan na Windows-u i MacOS-u.

Sigurnost i performanse:

  • za enkripciju koristi AES ili 3DES
  • enkapsulira podatke dva puta, ali enkripcija i dekripcija se odvija u kernel-u pa je i dalje relativno brz
  • podržava višedretvenost
  • koristi UDP port 500 za početnu razmjenu ključeva, UDP port 1701 za početnu L2TP konfiguraciju i UDP port 4500 za prolazak kroz NAT. Zbog korištenja fiksnih port-ova lakše ga je blokirati od protokola koji ne koriste fiksne port-ove.

Uredi

Uredi

Wireguard

Wireguard je sigurni mrežni tunel koji radi na mrežnom sloju. Implementiran je kao virtualno mrežno sučelje u Linux-u.Trenutno je u fazi razvoja, ali već se može koristiti, a plan je da bude prihvaćen u mainline Linux početkom 2020. godine. Wireguard koristi UDP protokol i može koristiti bilo koji port, a razmjena ključeva najsličnija je razmjeni ključeva koju koristi ssh. (ovo možda dopuniti)

Neki od ciljeva ovog protokola su:

  • biti brži i jednostavniji za konfiguriranje od IPSec-a i OpenVPN-a.
  • biti jednostavan za održavanje i recenziranje (trenutna implementacija ima oko 4000 linija koda)
  • biti VPN koji se može koristiti na svim platformama (trenutno su podržane: GNU/Linux, Android, macOS, iOS, BSD, Windows)

Wireguard kao mrežno sučelje

Wireguard radi tako da se doda kao mrežno sučelje (isto kao i mrežno sučelje za LAN (eth0) ili WLAN (wlan0)) naziva wg* pri čemu * označava broj. Nakon toga mrežno sučelje se može konfigurirati standardnim alatima kao što su ifconfig ili ip-address, a rute se mijenjaju koristeći route ili ip-route alate. Oni dijelovi sučelja koji su specifični za Wireguard se konfiguriraju koristeći wg alat.

Wireguard povezuje IP adrese tunela s javnim ključevima i udaljenim krajnjim točkama. Kada sučelje šalje paket svom peer-u događa se sljedeće:

  1. Ovaj paket je namijenjen za 192.168.30.8, to je peerABCDEFGH (ako peer nije konfiguriran onda se paket odbacuje)
  2. Enkriptira se cijeli IP paket koristeći javni ključ od peer-a ABCDEFGH
  3. Koja je udaljena krajnja točka peer-a ABCDEFGH? To je UDP port 53133 na poslužitelju 216.58.211.110
  4. Šalju se enkriptirani bajtovi iz koraka 2 preko interneta na 216.58.211.110:53133 koristeći UDP.

Kada sučelje primi paket onda se radi sljedeće:

  1. Došao je paket s UDP port-a 7361 na poslužitelju 98.139.183.24, treba ga dekriptirati.
  2. Dekriptirani paket autentificira peer-a LMNOPQRS, zapamti da je njegova posljednja krajnja točka: 98.139.183.24:7361 i koristi UDP.
  3. Jednom kada je dekriptiran, vidimo da je plain-text paket došao s 192.168.43.89. Smije li peerLMNOPQRS slati podatke prema nama kao 192.168.43.89?
  4. Ako smije, prihvaća se paket na sučelju, ako ne paket se odbacuje.

Upravljanje ključevima i IP adresama

U WIreguard-u se koristi koncept naziva Cryptokey Routing koji radi na način da povezuje javne ključeve s listom IP adresa koje su dozvoljene unutar tunela. Svako mrežno sučelje ima privatni ključ i listu peer-ova. Svaki peer ima javni ključ. Javni ključevi su kratki i jednostavni i njih koriste peer-ovi kako bi se međusobno autentificirali. Mogu se prenositi preko konfiguracijskih datoteka bilo kojom metodom slično kako se prenose i SSH javni ključevi.

Primjerice, poslužitelj može imati ovakvu konfiguraciju:

[Interface]
PrivateKey = yAnz5TF+lXXJte14tji3zlMNq+hd2rYUIgJBgB3fBmk=
ListenPort = 51820

[Peer]
PublicKey = xTIBA5rboUvnH4htodjb6e697QjLERt1NAB4mZqp8Dg=
AllowedIPs = 10.192.122.3/32, 10.192.124.1/24

[Peer]
PublicKey = TrMvSoP4jYQlY6RIzBgbssQqY3vxI2Pi+y71lOWWXX0=
AllowedIPs = 10.192.122.4/32, 192.168.0.0/16

[Peer]
PublicKey = gN65BkIKy1eCE9pP1wdc8ROUtkHLF2PfAqYdyYBz6EA=
AllowedIPs = 10.10.10.230/32

Klijent može imati ovakvu konfiguraciju:

[Interface]
PrivateKey = gI6EdUSYvn8ugXOt8QQD6Yc+JyiZxIhp3GInSWRfWGE=
ListenPort = 21841

[Peer]
PublicKey = HIgo9xNzJMWLKASShiTqIybxZ0U3wGLiUeJ1PKf8ykw=
Endpoint = 192.95.5.69:51820
AllowedIPs = 0.0.0.0/0

U konfiguraciji poslužitelja svaki peer (klijent) će moći slati pakete onom mrežnom sučelju čija se izvorišna IP adresa nalazi u listi dozvoljenih IP adresa. Na primjer, kada poslužitelj dobije paket od peer-a gN65BkIK…, nakon dekripcije i autentifikacije, ako je izvorišna IP adresa paketa 10.10.10.230 on se prihvaća, a inače se odbacuje.

Nadalje, u konfiguraciji poslužitelja, ako mrežno sučelje želi poslati paket peer-u (klijentu) ono gleda odredišnu IP adresu i uspoređuje ju s listom dozvoljenih IP adresa svakog peer-a da vidi kojem peer-u ga treba poslati. Primjerice, ako mrežno sučelje želi poslati paket s odredišnom IP adresom 10.10.10.230, ono taj paket enkriptira koristeći javni ključ od peer-a gN65BkIK… te ga šalje prema zadnjoj korištenoj krajnjoj točki tog peer-a.

U klijentskoj konfiguraciji njegov jedini peer (poslužitelj) može slati pakete mrežnom sučelju s bilo koje izvorišne IP adrese jer se sve prihvaćaju (u pravilima stoji 0.0.0.0/0 što znači da se prihvaćaju sve IP adrese). Primjerice, kada se primi paket od peer-a HIgo9xNz…, ako se točno dekriptira i autentificira s bilo koje izvorišne IP adrese, onda se prihvaća, a inače se odbacuje.

Ako mrežno sučelje klijenta želi poslati paket svom jedinom peer-u (poslužitelju), ono će enkriptirati pakete za svog jedinog peer-a s bilo kojom odredišnom IP adresom (0.0.0.0/0). Na primjer, ako mrežno sučelje treba poslati paket s bilo kojom odredišnom IP adresom, ono će ga enkriptirati koristeći javni ključ od svog peer-a HIgo9xNz… i zatim ga poslati prema zadnjoj korištenoj krajnjoj točki tog peer-a.

Drugim riječima, kada se paketi šalju lista dozvoljenih IP adresa služi kao routing tablica, a kada se paketi primaju lista dozvoljenih IP adresa se koristi za kontrolu pristupa.

Može se koristiti bilo koja kombinacija IPv4 i IPv6 adresa za bilo koje od polja u konfiguraciji. Wireguard može i enkapsulirati jednu adresu unutar druge ako je to potrebno.

Budući da su svi paketi poslani kroz Wireguard mrežno sučelje enkriptirani i autentificirani te zbog bliske povezanosti između identiteta peer-a i dozvoljenih IP adresa peer-a, administratori ne moraju pisati komplicirane konfiguracije firewall-a, kao što je recimo slučaj kod IPSec-a. Jednostavno se može napraviti provjera s koje je IP adrese paket došao i s kojeg mrežnog sučelja jer Wireguard garantira da je paket siguran i autentificiran.

Performanse

Kada govorimo o performansama Wireguard-a najzanimljivija nam je usporedba s popularnijim VPN protokolima (IPSec-om i OpenVPN-om). U Wireguard-ovoj bijeloj knjizi (engl. white paper) navedena ja takva usporedba performansi.

Podaci su dobiveni korištenjem programa iperf3 između računala s procesorom Intel Core i7-3820QM i mrežnom karticom Intel 82579LM te računala s procesorom i7-5200U i mrežnom karticom Intel I218LM. Izračunat je prosjek u periodu od 30 minuta, a rezultati su prikazani na slici ispod:

Još je važno napomenuti da je CPU bio na 100% iskorištenja tijekom throughput testova OpenVPN-a i IPSec-a, a nije bio na 100% iskorištenja tijekom testa Wireguard-a što upućuje na to da je Wireguard uspio u potpunosti zasititi gigabitnu Ethernet vezu.

Uredi

Uredi

Chapter 4

Uredi

Uredi

Chapter 5

Uredi

Uredi

Chapter 6

Uredi

Uredi

racfor_wiki/android/wireguard_protokol.1578593944.txt.gz · Zadnja izmjena: 2024/12/05 12:23 (vanjsko uređivanje)
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0