Post on 20-Jan-2021
SVEUČILIŠTE U ZAGREBU
FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA
SEMINARSKI RAD U SKLOPU KOLEGIJA „RAČUNALNA
FORENZIKA“
PROTOKOL DHCP
Luka Čubelić
Zagreb, siječanj 2018.
Sadržaj
Uvod ...................................................................................................................................... 1
1. Pregled protokola DHCP ............................................................................................... 2
2. Faze protokola DHCP .................................................................................................... 3
2.1. Otkrivanje poslužitelja ........................................................................................... 4
2.2. Ponuda najma IP adrese ......................................................................................... 5
2.3. Traženje najma IP adrese ....................................................................................... 6
2.4. Potvrda najma IP adrese ........................................................................................ 7
2.5. Posebne okolnosti .................................................................................................. 8
3. Sigurnost protokola DHCP ............................................................................................ 9
3.1. Zloćudni DHCP poslužitelj ................................................................................... 9
3.2. Zloćudni klijent ..................................................................................................... 9
Zaključak ............................................................................................................................. 10
Literatura ............................................................................................................................. 11
1
Uvod
Kako bi korisnik uspostavio vezu s nekom internetskom mrežom i mogao slobodno slati i
primati podatke preko iste, potrebno je dodijeliti mu IP (Internet Protocol) adresu. Adresu je
moguće dodijeliti statički ili dinamički. Statičko dodjeljivanje IP adrese podrazumijeva da
će svaki uređaj pri bilo kojem korištenju iste mreže upotrebljavati istu IP adresu, dok
dinamičko dodjeljivanje podrazumijeva da će svaki uređaj pri svakom uspostavljanju veze
dobiti novu IP adresu. Iako postoje slučajevi kada je statičko dodjeljivanje korisnije, unutar
mreža koje uglavnom ne koriste napredni korisnici (npr. besplatne pristupne točke unutar
raznih institucija, kućna mreža) u većini slučajeva koristi se dinamičko dodjeljivanje.
Svrha ovog seminarskog rada je upoznavanje čitatelja s najčešće korištenim protokolom
dinamičkog dodjeljivanja IP adresa, DHCP protokolom.
2
1. Pregled protokola DHCP
DHCP (engl. Dynamic Host Configuration Protocol) mrežni je protokol aplikacijskog sloja.
Koristi se u trenutcima kada novi uređaj (kojem još nije dodijeljena IP adresa) pokušava
uspostaviti vezu s mrežom. IP adresa koja je dodijeljena uređaju vrijedi određeni vremenski
period, nakon kojega uređaj ponovno mora zatražiti IP adresu.
DHCP funkcionira prema modelu „klijent-poslužitelj“. Uređaj koji pokušava uspostaviti
vezu s mrežom ponaša se kao klijent, dok poslove DHCP poslužitelja može obavljati
usmjernik ili se (u većim mrežama) u tu svrhu mogu koristiti dodatni uređaji. DHCP
poslužitelj raspolaže s određenim brojem IP adresa te jednu od njih može dodijeliti uređaju
koji ju zatraži. Osim same IP adrese, uređaju se šalju i neki dodatni parametri, npr. zadani
pristupnik (engl. default gateway), DNS poslužitelji, vremenski poslužitelji itd.
U većim mrežama uz DHCP poslužitelj koriste se i agenti prijenosa (engl. relay agents) koji
prenose poruke između klijenata i DHCP poslužitelja.
Ovisno o implementaciji, DHCP poslužitelj može dodijeljivati IP adrese na tri različita
načina:
1. Dinamičko dodjeljivanje
Poslužitelj svakom klijentu dodjeljuje neku od slobodnih IP adresa na
određeni vremenski period. U slučaju da se dodijeljena adresa ne obnovi
(pomoću koncepata koji će biti opisani u daljnjem tijeku ovog rada) ona
postaje slobodna za dodjelu bilo kojem drugom klijentu [1].
2. Automatsko dodjeljivanje
Klijent i dodijeljena mu IP adresa pamte se u internoj tablici poslužitelja kako
bi istom klijentu pri budućim pokušajima spajanja bila dodijeljena ista IP
adresa [1].
3. Ručno dodjeljivanje
Prije puštanja u rad samog DHCP poslužitelja u internoj se tablici zapisuju
parovi MAC i IP adresa za svaki uređaj te DHCP poslužitelj dodjeljuje IP
adrese samo uređajima koji su navedeni u tablici. U slučaju zahtjeva od
uređaja koje nema u tablici, poslužitelj može ili ne mora, ovisno o svojim
internim postavkama, tim uređajima dodijeliti neke slobodne IP adrese putem
dinamičkog ili automatskog dodjeljivanja [1].
3
2. Faze protokola DHCP
Protokol DHCP koristi protokol UDP (engl. User Datagram Protocol) za prijenos
informacija, točnije dva njegova priključka (engl. port), priključak broj 67 koji koristi
poslužitelj i priključak broj 68 koji koristi klijent [5].
Protokol DHCP ima 4 faze [1]:
1. Otkrivanje poslužitelja (engl. server discovery)
2. Ponuda najma IP adrese (engl. IP lease offer)
3. Traženje najma IP adrese (engl. IP lease request)
4. Potvrda najma IP adrese (engl. IP lease acknowledgement)
U svakoj fazi klijent ili šalje poruku poslužitelju ili prima poruku od poslužitelja. Sve su
poruke istog formata, koji je prikazan u tablici 2.1. Svaki red u tablici prikazuje 4 okteta,
osim ako nije drugačije navedeno unutar samog reda. Naslovi polja prikazani su podebljano.
OP HTYPE HLEN HOPS
Šifra operacije Tip veze Duljina adrese ur. Broj skokova
XID
Nasumična 4 okteta (jednaka za sve operacije jednog procesa)
SECS FLAGS
Broj sekundi od početka DHCP procesa 0x8000 ili 0x0000
CIADDR
IP adresa klijenta (ako je već poznata)
YIADDR
IP adresa koju poslužitelj nudi klijentu
SIADDR
IP adresa poslužitelja
GIADDR
IP adresa agenta prijenosa
CHADDR
Hardverska adresa klijentskog uređaja (16 okteta)
Čarobni kolačić (engl. Magic cookie)
Uvijek 0x63825363 za DHCP operacije
DHCP opcije
Proizvoljan broj redova sa opcijama (broj okteta je višekratnik broja 4)
0xFF000000 (oznaka za kraj)
Tablica 2.1 Format DHCP poruka
4
Vrijednost polja „OP“ je 1 ako se radi o zahtjevu, a 2 ako se radi o odgovoru. Vrijednost
polja „XID“ nasumično se kreira na klijentu prije početka prve operacije te ona ostaje ista
za sve operacije unutar jednog procesa. Vrijednost polja FLAGS može biti 0x8000 ili
0x0000 ovisno o svojstvima klijenta, o čemu neće biti riječi u ovom radu.
2.1. Otkrivanje poslužitelja
Klijent šalje DHCPDISCOVER poruku na adresu 255.255.255.255 ili neku drugu specifičnu
adresu za slanje poruke svim uređajima u mreži (engl. broadcast). U tablici 2.2 može se
vidjeti primjer tipične DHCPDISCOVER poruke.
Tablica 2.2 Primjer DHCPDISCOVER poruke
U DHCPDISCOVER poruci polja s adresom koju nudi poslužitelj, adresom poslužitelja i
adresom agenta prijenosa uvijek imaju vrijednost nula. Polje s adresom klijenta nije nula
samo kada klijent već ima dodijeljenu IP adresu i traži produženje valjanosti iste. U primjeru
iz tablice 2.2 klijent, koji nema dodijeljenu IP adresu traži istu, sa sljedećim opcijama [4]:
0x35010100 – opcija 53 (heksadekadski 35) – vrsta operacije, duljina 1, vrsta
operacije 1 – DHCPDISCOVER, ostatak je punjenje nulama do višekratnika broja 4
(koje u se daljnjem tekstu više neće navoditi)
0x3204C0A80162 – opcija 50 (heksadekadski 32) – traži se IP adresa, duljina 4, IP
adresa: 192.168.1.98
0x3703010306 – opcija 55 (heksadekadski 37) – lista parametara zahtjeva, duljina 3:
OP HTYPE HLEN HOPS
0x01 0x01 0x06 0x00
XID
0x9330EF4A
SECS FLAGS
0x00 0x8000
CIADDR
0x00000000
YIADDR
0x00000000
SIADDR
0x00000000
GIADDR
0x00000000
CHADDR
0x1E226A9B
0x24540000
0x00000000
0x00000000
Čarobni kolačić (engl. Magic cookie)
0x63825363
DHCP opcije
0x35010100
0x3204C0A8
0x01620000
0x37040103
0x06000000
0xFF000000
5
o parametar 1 – traži se maska podmreže
o parametar 3 – traži se adresa poslužitelja
o parametar 6 – traži se DNS poslužitelj
0xFF – opcija 255 – kraj
2.2. Ponuda najma IP adrese
Nakon što klijent pošalje DHCPDISCOVER broadcast poruku tu poruku prime neki DHCP
poslužitelji. DHCP poslužitelj koji primi poruku rezervira IP adresu za za taj uređaj te šalje
DHCPPOFFER poruku. DHCPPOFFER poruku se može slati ili jednom uređaju (u slučaju
kada uređaj već ima IP adresu koju želi produžiti) ili kao broadcast poruku. U tablici 2.3
može se vidjeti primjer tipične DHCPOFFER poruke.
Tablica 2.3 Primjer DHCPOFFER poruke
U DHCPOFFER poruci popunjena su polja YIADRR (sa prijedlogom IP adrese za klijenta,
192.168.1.98) i SIADDR (sa IP adresom DHCP poslužitelja koji šalje prijedlog,
192.168.1.1). Poruka je poslana sa sljedećim opcijama [4]:
OP HTYPE HLEN HOPS
0x02 0x01 0x06 0x00
XID
0x9330EF4A
SECS FLAGS
0x00 0x8000
CIADDR
0x00000000
YIADDR
0xC0A80162
SIADDR
0xC0A80101
GIADDR
0x00000000
CHADDR
0x1E226A9B
0x24540000
0x00000000
0x00000000
Čarobni kolačić (engl. Magic cookie)
0x63825363
DHCP opcije
0x35010200
0x0104FFFF
0xFF000000
0x0304C0A8
0x01010000
0x33040001
0x51800000
0x3604C0A8
0x01010000
0x060C0907
0x0A0F0907
0x0A100907
0x0A120000
0xFF000000
6
0x35010200 – opcija 53 (heksadekadski 35) – vrsta operacije, duljina 1, vrsta
operacije 2 – DHCPOFFER
0x0104FFFFFF00 – opcija 1 – maska podmreže, duljina 4, 255.255.255.0
0x0304C0A80101 – opcija 3 – adresa poslužitelja, duljina 4, 192.168.1.1
0x330400015180 – opcija 51 – vrijeme najma adrese, 86400 sekundi/1 dan – u
formatu 32-bitnog pozitivnog cijelog broja (engl. unsigned integer)
0x3604C0A80101 – opcija 54 – DHCP server, duljina 4, 192.168.1.1
0x060C09070A0F09070A1009070x0A12 – opcija 6 – DNS serveri, duljina 12:
o 9.7.10.15
o 9.7.10.16
o 9.7.10.18
0xFF – opcija 255 – kraj
2.3. Traženje najma IP adrese
Nakon što primi ponudu, klijent na nju odgovara, ponovno sa broadcast porukom (osim u
slučaju obnavljanja IP adrese). Ta poruka zove se DHCPREQUEST. Klijent je mogao
primiti više DHCPOFFER poruka od različitih poslužitelja, ali može prihvatiti samo jednu
ponudu te će u ovoj poruci biti jasno označeno čiju ponudu prihvaća. Kada ostali poslužitelji
prime ovu poruku oni će IP adresu koju su rezervirali za klijenta ponovno vratiti u skupinu
dostupnih IP adresa. U tablici 2.4 može se vidjeti primjer tipične DHCPREQUEST poruke.
Tablica 2.4 Primjer DHCPREQUEST poruke
OP HTYPE HLEN HOPS
0x01 0x01 0x06 0x00
XID
0x9330EF4A
SECS FLAGS
0x00 0x8000
CIADDR
0x00000000
YIADDR
0x00000000
SIADDR
0xC0A80101
GIADDR
0x00000000
CHADDR
0x1E226A9B
0x24540000
0x00000000
0x00000000
Čarobni kolačić (engl. Magic cookie)
0x63825363
DHCP opcije
0x35010300
0x3204C0A8
0x01620000
0x3604C0A8
0x01010000
0xFF000000
7
U ovoj poruci sadržane su sljedeće opcije [4]:
0x35010200 – opcija 53 (heksadekadski 35) – vrsta operacije, duljina 1, vrsta
operacije 3 – DHCPREQUEST
0x3204C0A80162 – opcija 50 – zatražena IP adresa, 192.168.1.98.
0x3604C0A80101 – opcija 54 – DHCP poslužitelj čije se ponuda prihvaća,
192.168.1.1
0xFF – opcija 255 – kraj
2.4. Potvrda najma IP adrese
Nakon što je DHCP poslužitelj dobio potvrdu da klijent prihvaća baš njegovu ponudu, on će
mu broadcast porukom DHCPACK priopćiti da je proces uspješno završen. U toj će poruci
također biti ponovljene sve opcije koje je klijent zatražio. U tablici 2.5 može se vidjeti tipičan
primjer DHCPACK poruke.
Tablica 2.5 Primjer DHCPACK poruke
OP HTYPE HLEN HOPS
0x02 0x01 0x06 0x00
XID
0x9330EF4A
SECS FLAGS
0x00 0x8000
CIADDR
0x00000000
YIADDR
0xC0A80162
SIADDR
0xC0A80101
GIADDR
0x00000000
CHADDR
0x1E226A9B
0x24540000
0x00000000
0x00000000
Čarobni kolačić (engl. Magic cookie)
0x63825363
DHCP opcije
0x35010500
0x0104FFFF
0xFF000000
0x0304C0A8
0x01010000
0x33040001
0x51800000
0x3604C0A8
0x01010000
0x060C0907
0x0A0F0907
0x0A100907
0x0A120000
0xFF000000
8
DHCPACK poruka sadrži sve opcije kao i DHCPOFFER poruka, osim što je vrsta operacije
DHCPACK (kôd 5) umjesto DHCPOFFER (kôd 2).
Nakon što klijent dobije DHCPACK poruku njegova je zadaća ispravno konfigurirati sve
svoje postavke kako bi bio spreman koristiti navedenu IP adresu.
2.5. Posebne okolnosti
Protokol DHCP može završiti i neuspješno, zbog raznih okolnosti. Ako klijent otkrije da se
IP adresa koju mu nudi DHCP poslužitelj već koristi, šalje mu DHCPDECLINE poruku,
koja upućuje na neki problem u konfiguraciji DHCP poslužitelja. U slučaju da klijent ode iz
dijela mreže za koji je zadužen DHCP poslužitelj ili je u međuvremenu neki drugi klijent
prihvatio istu IP adresu, DHCP poslužitelj će poslati DHCPNAK poruku. U slučaju da klijent
sa sigurnošću zna da mu IP adresa više neće trebati, može DHCP poslužitelju poslati
DHCPRELEASE poruku. Međutim, budući da većina uređaja ne može sa sigurnošću znati
kad će se isključiti iz mreže, slanje DHCPRELEASE poruke nije obvezan dio protokola [3].
9
3. Sigurnost protokola DHCP
Osnovni protokol DHCP nema nikakve mehanizme autentikacije te stoga nije otporan na
napade. Napade možemo svesti u 2 osnovne kategorije:
3.1. Zloćudni DHCP poslužitelj
Budući da klijent nema načina za ustanoviti autentičnost DHCP poslužitelja napadač može
u mrežu uključiti svoj DHCP poslužitelj. On može klijentu dojaviti neispravne podatke te
mu tako onemogućiti pristup mreži (engl. denial of service) ili natjerati klijenta da koristi
napadačev DNS poslužitelj, kojim napadač može preusmjeriti promet na sebe te prisluškivati
klijenta (engl. man-in-the-middle) [2].
3.2. Zloćudni klijent
DCHP poslužitelj također nema načina za ustanoviti autentičnost klijenta pa tako napadač
može (ako posjeduje određene vjerodajnice) neovlašteno pristupiti IP adresama koje
pripadaju nekom drugom klijentu. Napadač također može u kratkim vremenskim intervalima
nebrojeno mnogo puta zatražiti IP adresu te tako iscrpiti sve adrese koje DHCP poslužitelj
ima na raspolaganju [2].
Zbog svih ovih sigurnosnih rizika protokol DHCP i danas je u razvoju te se konstantno
pokušavaju naći novi načini za poboljšanje njegove sigurnosti.
10
Zaključak
Protokol DHCP je, unatoč svojoj starosti i manama, nešto bez čega moderne mreže vrlo
teško funkcioniraju. Uz pravilnu konfiguraciju omogućuje dodjeljivanje i kontrolu nad
velikim brojem IP adresa u kratkom vremenu zbog svoje iznimne jednostavnosti (samo četiri
koraka). Najveća njegova mana je nedostatak autentikacije, zbog koga ga je moguće
iskorištavati u zloćudne svrhe. Na uklanjanju ovih opasnosti još uvijek se radi.
11
Literatura
[1] NEPOZNATI AUTOR, Dynamic Host Configuration Protocol.
https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol, 20.1.2018.
[2] TIMOTHY STAPKO, Practical Embedded Security. Burlington, SAD: Elsevier Inc.,
2008.
[3] GRUPA AUTORA, RFC 2131 Dynamic Host Configuration Protocol,
https://www.ietf.org/rfc/rfc2131.txt, ožujak 1997.
[4] GRUPA AUTORA, RFC 2132 DHCP Options and BOOTP Vendor Extensions,
http://www.networksorcery.com/enp/rfc/rfc2132.txt, ožujak 1997.
[5] GRUPA AUTORA, RFC 1700 Assigned Numbers, https://tools.ietf.org/html/rfc1700,
listopad 1994.