Onion Information
IPsec alat strongSwan - GASERI
IPSec je niz protokola za osiguravanje mrežnih veza, s velikim brojim detalja i varijacija koje vrlo brzo postanu enormne. Ovo je posebice slučaj prilikom međusobne suradnje, odn. funkcioniranja različitih sustava. U nastavku će se obraditi...
Onion Details
Page Clicks: 1
First Seen: 03/15/2024
Last Indexed: 10/23/2024
Onion Content
Preskoči na sadržaj IPsec alat strongSwan Todo Ovaj dio treba pročistiti i vidjeti gdje dopuniti slikama/tablicama. IPSec je niz protokola za osiguravanje mrežnih veza, s velikim brojim detalja i varijacija koje vrlo brzo postanu enormne. Ovo je posebice slučaj prilikom međusobne suradnje, odn. funkcioniranja različitih sustava. U nastavku će se obraditi protokoli niže razine koji se koriste u IPv4 kontekstu (bez IPv6 konteksta), iz perspektive "bottom-up" (od dna prema gore). Problematika IPSec-a će se teoretski obraditi prvo, a zatim će ukratko biti popisane mogućnosti jedan od alata otvorenog koda koji implementira IPSec svitu protokola za operacijski sustav GNU/Linux. Jedna od prvih stvari koja "upada u oko" prilikom podešavanja IPSec-a jest pregršt postavki i mogućnosti koje nudi: čak i par protokola koji potpuno konformiraju standardima, odn. njhove analogne implementacije "osiguravaju" zastrašujući broj načina za onemogućavanje uspješnog uspostavljanja sigurne veze. Jednostavno je posrijedi nevjerovatno kompleksan skup protokola. Jedan od razloga takve kompleksnosti jest činjenica da IPSec omogućava mehanizme, ne pravila: umjesto striktne definicije određenog enkripcijskog algoritma ili određene autentifikacijske funkcije, omogućava okvir (engl. framework ) koji osigurava implementaciji pružanje bilo kakvog oblika usluge oko koje se usaglase oba kraja koja uspostavljaju sigurnu vezu. U ovom dijelu pobliže ću objasniti uobičajenu terminologiju i njihov međusobni odnos u kontekstu IPSec tehnologije, uz opasku da je skup tehnologija u toj domeni preopširan da bi se obradio u detaljima. Protokol AH naspram ESP-a. AH ("Authentification Header") i ESP ("Encapsulating Security Payload") su 2 glavna protokola na "razini žice" koja upošljava IPSec usvom radi, a njihova funkcija je omogućavanje uspješne autentifikacije (AH) i enkripcije + autentifikacije (ESP) podataka koji se razmjenjuju putem takve sigurnosne veze. Uobičajeno se koriste zasebno, no moguće je (iako neučestalo) koristiti ih oboje istovremeno. Režim tuneliranja naspram transportnog režima. Transportni režim osigurava sigurnu vezu između 2 čvora budući da enkapsulira sadržaj IP paketa (engl. payload ), dok režim enkapsulira čitav IP paket ne bi li omogućio virtualni "sigurni skok" između 2 usmjerivača. Potonje se koristi za kreiranje tradicionalnog VPN-a, gdje uloga tunela je, generalno, stvaranje sigurnog tunela kroz nesigurni i nepovjerljivi Internet. IPSec kriptografski algoritmi. Podešavanje IPSec veze uključuje različita kriptografska rješenja, no, taj postupak je značajno pojednostavljen činjenicom da bilo koja proizvoljna IPSec veza može istovremeno koristiti samo kombinaciju 2 (odn. 3 u nekim okolnostima) takva algoritma. Autentifikacijski proces se svodi na izračun ICV ("Integrity Check Value") vrijednosti nad sadržajem paketa, te se obično temelji na kriptografskom "hashu", poput MD5, odn. SHA-1. Sadržava tajni ključ, poznat objema krajevima, čime se omogućuje primatelju izračun ICV vrijednost na istovjetan način. Ukoliko primatelj dobije izračuna istu vrijednost, pošaljitelj je učinkovito se autentificirao (oslanjajući se na svojstvo da kriptografske "hasheve" praktički nije moguće preokrenuti. AH uvijek omogućava autentifikaciju, dok ESP opcionalno nudi tu mogućnost. U procesu enkripcija, koristi se tajni ključ za potrebe enkriptiranja podataka prije odašiljanja, čime se zaštićuje sadržaj paketa od mogućih presretača podataka, odn. prisluškivanja. Postoji niz izbora za kriptografski algoritam, od kojih su DES, 3DES, Blowfish i AES najčešće korišteni u praksi, no moguće je koristiti i druge. IKE naspram ručnih ključeva. Obzirom da obje strane konverzacije moraju znati tajne vrijednosti korištene u procesu "hashiranja" i enkripcije, postavlja se logično pitanje: kako se ovi podaci razmjenjuju. Ručni ključevi zahtjevaju ručni unos tajnih vrijednosti na oba kraja, s pretpostavkom da se dostavljaju nekakvim izvanpojasnim (engl. out-of-band ) mehanizmom, a IKE ("Internet Key Exchange") je sofisticirani mehanizam za taj proces online načinom. Glavni režim naspram agresivnog režima. Ovi režimi kontroliraju kompromis između učinkovitosti naspram sigurnosti tijekom inicijalne IKE razmjene ključeva. "Glavni režim" zahtijeva 6 paketa u oba smjera, no garantira potpunu sigurnost tijekom uspostave IPSec veze, dok "agresivni režim" koristi upola manje izmjena, čime se gubi na sigurnosti izmjene, budući da neki od podataka u procesu izmjene se prenose u čistom (engl. cleartext ) obliku. IP paket ("datagram") Obzirom na "bottom-up" aspekt pregleda IPSec tehnologije u ovom radu, potrebno je napraviti mali obilazak IPv4 tehnologije i opisati zaglavlje samog IPv4 pekta, koji sadrži sve podatke, tj. promet od značaja. Ovime se neće dati jezgroviti opis i podrobna analiza samog zaglavlja IP paketa, no poslužit će se potrebe bolje ilustracije određenih IPSec mehanizama koje nas zanimaju. Opis pojedinih dijelova zaglavlja, odn. polja u zaglavlju i ostatka paketa: ver: Ovo je verzija IP protokola, koja je u ovom slučaju 4 = IPv4 hlen: Duljina IP zaglavlja, predstavljena kao 4-bitni broj koji enkodira 32-bitne riječi, raspona od 0 do 15. Standardno IPv4 zaglavlje je uvijek duljine 20 bajtova (5 riječi), a IP opcije, ukoliko su definirane, se indiciraju većom veličinom hlen polja, do maksimalno 60 bajtova. Veličina ovog polja nikad ne uključuje veličinu korisnog dijela paketa (engl. "payload"), ili drugih polja koja slijede. TOS: "Type of Service". Ovo polje je bit-maska koja daje neke naznake o tipu usluge koji bi dani paket trebao biti dostavljen: optimizirati za propusnost ? Latenciju ? Pouzdanost ? pkt len: Ukupna duljina paketa u bajtovima, do maksimalne veličine od 65535. Ovaj brojač uključuje i veličinu zaglavlja, stoga to praktično znači da je maksimalna veličina korisnog dijela paketa barem 20 bajtova manja od definirane maksimalne veličine, zbog veličine zaglavlja. Velika većina IP paketa su puno, puno manji. ID: ID polje je koristi za povezivanje srodnih paketa koji su fragmentirani (veliki paketi podijeljeni u manje) flgs: Ovo su male "zastavice" koje uglavnom kontroliraju proces fragmentacije: jedna označava paket nepoželjnim za fragmentaciju, druga označava da slijedi pošiljka ostatka fragmenata. frag offset: Kada je paket fragmentiran, ova vrijednost pokazuje kojem dijelu u ukupnom "virtualnom" paketu dotični fragment pripada. TTL: Ovo je tzv. "Time to Live" vrijednost, koju umanjuje svaki usmjerivač koji zaprimi paket za 1. Kada ova vrijednost padne na nulu, sugerira obično na neku pogrešku u procesu usmeravanja (najčešće nekakvu petlju), stoga takav paket biva odbačen posljedično, ne bi li se sprječilo njegovo beskonačno usmjeravanje kroz Internet. proto: Ovo polje predstavlja protokol koji se sadržan u paketu, koji je vrlo bitan za potrebe diskusije o IPSecu budući da ćemo se često referirati na njega. Iako samim paketom upravlja IP ("Internet Protocol"), IP paket uvijek enkapsulira neki pomoćni protokol (TCP, UDP, ICMP, itd.) u sebi. Možemo ga smatrati kao oznaka tipa zaglavlja koji slijedi dalje u IP paketu. header cksum: Ova vrijednost sadrži kontrolni zbroj (engl. "checksum") čitavog IP zaglavlja, koji je dizajniran s ciljem detektiranja grešaka u procesu prijenosa paketa. Ovo nije kriptografski kontrolni zbroj, te ne uključuje nijedan dio paketa koji slijedi nakon IP zaglavlja. src IP address: Izvorna 32-bitna IP adresa, koju primatelj koristi za odgovor na odaslani IP paket. Općenito uzevši, moguće je zamaskirati ove adrese (npr. lagati o pravoj adresi s koje se šalje IP datagram). dst IP address: Odredišna 32-bitna IP adresa na koju je adresiran IP paket pošiljatelja. IP Options: Ovo su opcionalni dijelovi IP zaglavlja koji sadrže aplikacijsko-specifične informacije, iako obično se ne koristi za usmjeravanje paketa. Prisutnost IP opcija je indicirano veličinom hlen polja većim od 5; uključene su u kontrolni zbroj zaglavlja paketa. Payload: Svaki tip protokola podrazumijeva svoj format za ono što slijedi nakon IP zaglavlja; koristili smo TCP samo za potrebe davanja primjera. Slijedeći proto kodovi su definirani od strane IANA ("Internet Assigned Numbers Authority") organizacije, iako ovo svakako nije ekstenzivna i kompletna lista, no za većinu potreba, ovo su svakako najčešće korišteni. 1: ICMP -- Internet Control Message Protocol 2: IGMP -- Internet Group Management Protocol 4: IP within IP (a kind of encapsulation) 6: TCP -- Transmission Control Protocol 17: UDP -- User Datagram Protocol 41: IPv6 -- next-generation TCP/IP 47: GRE -- Generic Router Encapsulation (used by PPTP) 50: IPSec: ESP -- Encapsulationg Security Payload 51: IPSec: AH -- Authentication Header AH: Samo autentifikacija AH se koristi za autentifikaciju, ali ne i enkripciju, IP prometa, čija je svrha osiguravanje autentičnosti primatelja kojem šaljemo poruke, te detekciju izmjena podataka u procesu slanja, te (opcionalno) radi zaštite od "napada ponavljanjem" od strane napadača koji prikupljaju podatke "s žice", te pokušavaju ga injektirati ponovno u medij kasnije. Autentifikacija se obavlja izračunom kriptografskog "hash"-zasnovanog autentifikacijskog koda za poruke nad skoro svim poljima IP paketa (isključujući one koji se mogu modificirati u prijenosu, poput TTL-a ili kontrolne sume), te pohranom toga u novo-dodano AH zaglavlje, nakon čega se takav paket šalje primatelju. Ovo AH zaglavlje sadrži samo 5 polja od interesa, koji su umetnuti između izvornog IP zaglavlja, te korisnog dijela IP paketa ("payload"). Polja u AH zaglavlju: next hdr: Ovime se ustanovljuje tip protokola za korisni dio koji slijedi, te je izvorni tip paketa koji se enkapsulira: na ovaj način su IPSec zaglavlja međusobno povezana. AH len: Ovo polje definira duljinu, u 32-bitnim rječima, čitavog AH zaglavlja, umanjenog za 2 rječi (ova klauzula umanjivanja za 2 kodne rječi slijedi iz formata "IPv6 RFC 1883 Extension Headers" specifikacije, od kojih je AH jedan od. Reserved: Ovo polje je rezervirano za buduće upotrebe, te mora biti 0. Security Parameters Index (SPI): Ovo je 32-bitni identifikator koji pomaže primatelju odabrati kojim od mnogim tekućim "razgovorima" paket pripada. Svaka AH-zaštićena veza sadrži "hash" algoritam (MD5, SHA-1, itd.), nekakav tip tajnih podataka, te niz drugih parametara. SPI možemo smatrati kao indeks u tablicu ovih postavki, koja omogućuje lagano povezivanja paketa s određenim parametrom. Sequence Number: Monotono-povećavajući identifikator koji se koristi u asistenciju sprječavanja "napada ponavljanjem". Ova vrijednost se uključuje u autentifikacijske podatke, stoga svaka modifikacija time (namjerna ili slučajna) biva detektirana. Authentication Data: ICV ("Integrity Check Value") izračunat pomoću čitavog sadržaja paketa -- uklj...