66
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522 SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM KOMUNIKACIJAMA Saša Ilić Zagreb, ožujak 2005.

SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

  • Upload
    others

  • View
    7

  • Download
    1

Embed Size (px)

Citation preview

Page 1: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

DIPLOMSKI RAD br. 1522

SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM KOMUNIKACIJAMA

Saša Ilić

Zagreb, ožujak 2005.

Page 2: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

1. Uvod................................................................................................................................ 1 2. Simetrični algoritmi kriptiranja....................................................................................... 2

2.1. Usporedba simetričnih algoritama ........................................................................... 2 2.2. Sigurnost algoritama ................................................................................................ 3 2.3. Pregled simetričnih algoritama ................................................................................ 5

3. Algoritmi kriptiranja toka podataka ............................................................................... 6 3.1. Keystream generator ................................................................................................ 8

3.1.1. Operacija XOR.................................................................................................. 8 3.1.2. Beskonačni niz slučajnih znakova .................................................................... 9 3.1.3. Generatori slučajnih nizova ............................................................................ 10 3.1.4. Generatori psudo-slučajnih nizova ................................................................. 11

3.2. Pristup dizajniranju algoritma................................................................................ 12 3.3. Posmični registar s povratnom funkcijom ............................................................. 13

3.3.1. Način rada ....................................................................................................... 13 3.3.2. Posmični registar s linearnom povratnom funkcijom ..................................... 14 3.3.3. Posmični registar kao građevni element algoritma......................................... 14 3.3.4. Posmični registar s povratnim carry registrom............................................... 15 3.3.5. Posmični registar s nelinearnom povratnom funkcijom ................................. 16

3.4. Tipovi algoritama................................................................................................... 17 3.4.1. Samo-sinkronizirajući algoritam..................................................................... 17 3.4.2. Sinkroni algoritam .......................................................................................... 18

3.5. Načini rada blok algoritama................................................................................... 19 3.5.1. ECB način rada ............................................................................................... 19 3.5.2. CBC način rada ............................................................................................... 20 3.5.3. CFB način rada ............................................................................................... 22 3.5.4. OFB način rada ............................................................................................... 23

4. Pregled algoritama kriptiranja toka podataka ............................................................... 26 4.1. SEAL...................................................................................................................... 26 4.2. WAKE.................................................................................................................... 29 4.3. RC4 ........................................................................................................................ 32 4.4. Solitaire .................................................................................................................. 33 4.5. A5........................................................................................................................... 35 4.6. KASUMI................................................................................................................ 38

5. Programsko ostvarenje algoritama................................................................................ 40 5.1. Programsko ostvarenje RC4 algoritma .................................................................. 40 5.2. Programsko ostvarenje Solitaire algoritma............................................................ 41 5.3. Programsko ostvarenje A5 algoritma..................................................................... 41 5.4. Testiranje................................................................................................................ 42

6. Mobilne komunikacije .................................................................................................. 44 6.1. Arhitektura GSM mreže......................................................................................... 44

6.1.1. Pokretna stanica .............................................................................................. 45 6.1.2. Sustav baznih stanica ...................................................................................... 45 6.1.3. Mrežni i komutacijski sustav .......................................................................... 46

6.2. Ostvarivanje usluga unutar GSM mreže ................................................................ 46 6.2.1. Pretplata .......................................................................................................... 46

Page 3: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

6.2.2. Uključivanje.................................................................................................... 47 6.2.3. Kretanje korisnika........................................................................................... 47 6.2.4. Odlazni i dolazni pozivi .................................................................................. 47

6.3. GSM radio sučelje.................................................................................................. 47 6.3.1. Frekvencijsko područje................................................................................... 48 6.3.2. Pristup višestrukoj podjeli............................................................................... 48 6.3.3. Pretvaranje informacije u radio valove ........................................................... 49

6.4. Sigurnost GSM sustava.......................................................................................... 50 6.4.1. Autentifikacija................................................................................................. 51 6.4.2. Zaštita signala i podataka................................................................................ 53 6.4.3. Anonimnost..................................................................................................... 54 6.4.4. Ostvarenja A3 i A8 algoritama u GSM sustavu.............................................. 54 6.4.5. Propusti ........................................................................................................... 54

6.5. Mjere poduzete za poboljšanje sigurnosti.............................................................. 55 6.5.1. Novije ostvarenja A3/A8 algoritama .............................................................. 56 6.5.2. A5/3 kriptiranje............................................................................................... 56 6.5.3. UMTS/GPRS kriptiranje prije zaštite od pogreške......................................... 56 6.5.4. UMTS mreža se autentificira korisniku.......................................................... 56 6.5.5. UMTS sigurniji algoritmi u autentifikaciji ..................................................... 56

7. Simulacija sigurnosnog sustava .................................................................................... 58 8. Zaključak....................................................................................................................... 62 9. Literatura....................................................................................................................... 63

Page 4: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

1. Uvod Cilj mobilnih komunikacija je komunikacija govorom i podacima za

stacionarne i pokretne korisnike bez vremenskih i prostornih ograničenja uporabom jedne adrese - pozivnog broja. Pretpostavke pod kojima je bilo nužno ostvariti ovaj cilj je pokretljivost terminala i osoba, te pokretljivost, prenosivost i transparentnost usluga.

Za ostvarivanje pokretljivosti u javnoj mreži najvažniji su današnji opći pokretni komunikacijski sustav GSM (engl. Global System for Mobile communications), njegovo proširenje općim paketskim radijskim uslugama GPRS (engl. General Packet Radio Services) te općim pokretnim telekomunikacijskim sustavom UMTS (engl. Universal Mobile Telecommunication System) kao predstavnikom nove generacije pokretnih mreža.

Bez obzira na brzo širenje UMTS tržišta, u Europi je i dalje trenutno najrašireniji sustav GSM, te će još neko vrijeme držati najvažniju poziciju među normama za mobilne komunikacije. Iz tog razloga ovaj rad se uglavnom orijentirati upravo na taj sustav.

Sve usluge u mobilnim komunikacijama nude se uz povjerljivost podataka i anonimnost korisnika. Upravo taj dio mobilnih sustava je predmet posebnog interesa u ovom radu. U svrhu boljeg upoznavanja sigurnosti koje pružaju mobilne komunikacije, u okviru rada priložena je i simulacija sigurnosnog sustava mobilnih mreža, točnije GSM mreže.

Anonimnost i povjerljivost podataka koje osiguravaju mobilni sustavi se postiže raznim protokolima i algoritmima. Za njihovo bolje razumijevanje potrebno je poznavanje temelja i osnovnih modela kriptografije. Upravo iz tog razloga u radu se govori i o kriptografskim algoritmima, te je dan njihov pregled i načini rada.

U drugom poglavlju dan je kratki pregled simetričnih algoritama kriptiranja. U trećem poglavlju opisani su algoritmi kriptiranja toka podataka. U četvrtom poglavlju predstavljeni su neki od algoritama kriptiranja toka podataka, te je opisan njihov način rada. U petom poglavlju opisana su programska ostvarenja algoritama, te su predstavljeni rezultati njihove međusobne usporedbe. U šestom poglavlju se govori o mobilnim komunikacijama, detaljnije o GSM sustavu, posebno s motrišta sigurnosti. U sedmom poglavlju je opisana svrha i opseg simulacije, kao i njen način rada. Osmo poglavlje sadrži zaključak, dok je u devetom poglavlju popis literature.

1

Page 5: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

2. Simetrični algoritmi kriptiranja Postoje dvije vrste kriptografskih algoritama koji se baziraju na korištenju

ključa: simetrični algoritmi i asimetrični algoritmi. Kako se radi o dvije različite vrste kriptografije, ove algoritme nije moguće usporediti da bi se ustanovilo koji su bolji. Svaki od ovih algoritama rješava različite vrste problema. Predmet interesa ovog rada su simetrični algoritmi, točnije algoritmi kriptiranja toka podataka, kao podvrsta simetričnih algoritama. U ovom je poglavlju moguće upoznati se sa simetričnim algoritmima i njihovim podvrstama. Predstavljeni su i tipovi napada koji prijete sigurnosnim sustavima koji koriste ove algoritme za svoju zaštitu.

Simetrični algoritmi kriptiranja su algoritmi koji koriste jednake ključeve za kriptiranje i dekriptiranje. Svi sudionici u komunikaciji moraju posjedovati tajni ključ kao bi se komunikacija uspješno odvijala. Dok god postoji potreba za komunikacijom, ključ se mora držati u tajnosti. Sigurnost simetričnih algoritama počiva u tajnom ključu. Njegova objava ili gubitak bi značile gubitak tajnosti komunikacijskog kanala, jer svatko tko posjeduje ključ je u mogućnosti kriptirati i dekriptirati poruke. Posebnu pažnju treba posvetiti rukovanju ključem (engl. Key Managment), jer se u kriptografiji dobar sustav odlikuje činjenicom da se sva sigurnost temelji na poznavanju ključa, a ne na poznavanju algoritma.

Simetrični algoritmi služe za kriptiranje podataka, te na taj način pružaju povjerljivost podataka. Jedna od glavnih odlika ovih algoritama je brzina rada.

Simetrični algoritmi se dijele na dvije vrste: algoritme toka podataka (engl. Stream Ciphers), i blok algoritme (engl. Block Ciphers). Algoritmi toka podataka kriptiraju bit po bit, ili oktet po oktet (engl. Byte) izvornog teksta u vremenskoj jedinici. Blok algoritmi kriptiraju blokove bitova. Veličina blokova varira od algoritma do algoritma.

2.1. Usporedba simetričnih algoritama Blok algoritmi kriptiraju podatke pomoću fiksne transformacije koja se odvija

nad blokom podataka izvornog teksta. Algoritmi kriptiranja toka podataka kriptiraju zasebne jedinice izvornog teksta pomoću transformacije koja se mijenja s vremenom. Iz ovih definicija vidi se da se radi o različitim algoritmima, međutim, blok algoritmi mogu biti implementirani kao algoritmi toka podataka i obrnuto.

Blok algoritmi mogu raditi na više načina, dok algoritmi toka podataka predstavljaju lakši materijal za matematičku analizu. U poglavlju 3.5. su predstavljeni načini rada blok algoritama koji su ostvareni kao algoritmi toka podataka.

Postoji mnogo radova na temu analize i dizajna algoritma toka podataka. Sve je više i teoretskih radova koji se koncentriraju na dizajn blok algoritama, te će možda uskoro dostupna dokumentacija o blok algoritmima dostići trenutnu teoriju o algoritmima kriptiranja toka podataka.

2

Page 6: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

Jedna od najvažnijih razlika blok algoritama i algoritama kriptiranja toka podataka je način implementacije. Blok algoritmi su pogodniji za programska ostvarenja. Time se izbjegava vremenski vrlo skupa manipulacija nad pojedinim bitovima, te se podaci kriptiraju i dekriptiraju u blokovima koji su pogodni za računalnu obradu. Algoritmi toka podataka, zbog kriptiranja i dekriptiranja svakog bita zasebno, nisu idealni za programska ostvarenja. Pogodniji su za sklopovska ostvarenja. Ovo je i vrlo važna činjenica prilikom odabira algoritma koji će biti korišten u nekom sigurnosnom sustavu. Za kriptografski uređaj koji bi trebao osigurati komunikacijski kanal, savršeno je rješenje kriptiranje bitova kako oni prolaze. S druge strane, za programsko ostvarenje vrlo često nema smisla kriptiranje svakog bita zasebno. Ovo ne znači da su blok algoritmi ograničeni samo na programska rješenja, a algoritmi toka podatak na sklopovska ostvarenja. Kao primjer vrlo efikasnog programskog ostvarenja algoritma kriptiranja toka podataka može se navesti SEAL, poglavlje 4.1. Ovaj algoritam postiže sjajne rezultate upravo programski ostvaren. U pravilu blok algoritmi i dalje imaju prednost u programskim aplikacijama, dok će algoritmi kriptiranja toka podataka češće biti ostvarivani u sklopovlju.

2.2. Sigurnost algoritama Sigurnost nekog sustava ne ovisi u cijelosti samo o sigurnosti algoritma i

njegovoj neprobojnosti. Prilikom dizajniranja sigurnosnih sustava potrebno je obratiti pozornost na svaki njegov dio: algoritme za kriptiranje, protokole te načine rukovanja ključem. Napadaču je dovoljan samo jedan propust, i to u samo jednom segmentu sustava kako bi došao do povjerljivih informacija. Neophodno je obratiti pažnju na implementaciju sigurnosnih metoda, jer vrlo često je upravo ona glavni krivac slabosti sustava.

Uspješan napad je ponekad rezultat propusta u dizajnu algoritma. Prilikom razmatranja koliko je neki algoritam siguran u obzir se uzima kompleksnost napada:

kompleksnost podataka, odnosno koliko je podataka potrebno za napad,

vremenska kompleksnost, odnosno koliko je vremena potrebno da bi napad bio završen,

zahtjevi za pohranom podataka, odnosno koliko je memorije potrebno da bi se napad obavio.

Kompleksnost napada se uzima kao minimum ova tri faktora. Iako je kompleksnost napada konstantna, računalni resursi se stalno povećavaju. Svaki algoritam je moguće probiti uz beskonačne resurse, ali glavni interes je da li je algoritam siguran u okvirima dostupnih resursa, bilo sadašnjih bilo u skoroj budućnosti. Moguće je povesti raspravu o dostupnim resursima, te se stoga dobrim kriptosustavima nazivaju oni sustavi koji su osmišljeni tako da ne mogu biti probijeni čak i sa računalnom snagom za koju se tek očekuje da će se pojaviti godinama unaprijed.

3

Page 7: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

Postoje slučajevi kada se bez obzira na ostale faktore može ustvrditi da je algoritam siguran:

Cijena napada na algoritam je znatno veća od vrijednosti kriptiranih podataka,

Vrijeme potrebno da se napad izvrši je dulje od vremena koliko podaci moraju ostati skriveni,

Količina podataka kriptiranih jednim ključem je manja od minimalne količine podataka potrebnih za izvršenje napada.

Prilikom ovakvih okolnosti, sustav koji se bazira na upravo navedenim pretpostavkama smatra se sigurnim.

Znanost koja se bavi otkrivanjem izvornog teksta bez poznavanja ključa naziva se kriptoanaliza. Uspješnom kriptoanalizom može se doći do izvornog teksta ili ključa, a također služi za otkrivanje slabosti kriptografskih algoritma. Glavna pretpostavka kriptoanalize je da je algoritam poznat. Komunikacijski kanal je najčešće u potpunosti dostupan svima, tako da nije teško nabaviti kriptirane poruke.

Postoji više osnovnih vrsta napada. Napadi se dijele s obzirom što je napadaču poznato i koji mu je cilj:

Napad pomoću kriptiranog teksta Napadaču je dostupno nekoliko kriptiranih poruka, te je njegov zadatak otkriti izvorni tekst tih poruka, ili otkriti ključ kojim su kriptirane poruke. Napad pomoću poznatog izvornog teksta

Napadaču su dostupne kriptirane poruke i njihovi pripadajući izvorni tekstovi. Zadatak je otkriti tajni ključ pomoću kojeg su poruke kriptirane. Napad pomoću odabranog izvornog teksta

Uz činjenicu da su dostupne kriptirane poruke i njihovi pripadajući izvorni tekstovi, napadač je u mogućnosti odabrati koji dio izvornog teksta će biti kriptiran. Ovakav napad je lakše izvesti od napada pomoću poznatog izvornog teksta iz razloga što napadač može odabrati one dijelove poruke koje mogu nositi više korisnih informacija o ključu. Zadatak je otkriti ključ pomoću kojeg su poruke kriptirane. Napad pomoću odabranog izvornog teksta uz mogućnost promjene

izbora Ovaj napad je specijalni oblik prethodno navedenog napada. Napadač odabire dio izvornog teksta koji će biti kriptiran s obzirom na rezultate dobivene u prethodnim koracima.

Poznavanje izvornog teksta od strane napadača i nije tako rijetko kao što bi se moglo pretpostaviti. Mnoge poruke imaju iste standardne početke i krajeve koji mogu biti dobro poznati napadaču. Kriptirani programski kôd je također vrlo ranjiv upravo zbog česte pojave ključnih riječi kao što su: #define, else, return itd.

4

Page 8: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

Ovim poglavljem pokušalo se samo ukratko predstaviti osnovne tipove prijetnji kriptografskim algoritmima. Postoje razni oblici kriptoanalize, te je o njima nešto više moguće saznati iz [2].

2.3. Pregled simetričnih algoritama Na slijedećoj slici je predstavljen dio simetričnih algoritama zajedno sa

duljinom ključa, te veličinom bloka u slučaju blok algoritama.

Simetricni algoritmi

Blok algoritmi Algoritmi toka podataka

Naziv Kljuc Blok

Blow fish

DES

AES

Lucifer

RC2

RC5

CAST

GOST

IDEA

Safer

3-WAY

16, 24, 32, Byte

56 bit

56 bit

0 - max string

varijabilno

128 bit

256 bit

0 - 448 bit

64 bit

64 bit

96 bit

16, 24, 32, Byte

64 bit

128 bit

64 bit

varijabilno

64 bit

64 bit

64 bit

64 bit

64 bit

96 bit

Naziv Kljuc

Nanoteq

A5

Rambutan

Gifford

RC4

WAKE

SEAL

64 bit

127 bit

112 bit

64 bit

varijabilno

160 bit

32 bit

Slika 2.1. Pregled simetričnih algoritama

5

Page 9: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

3. Algoritmi kriptiranja toka podataka

Algoritam kriptiranja toka podataka (engl. Stream Cipher) je simetrični algoritam. Ovi algoritmi rade uglavnom vrlo brzo, te su najčešće brži od bilo kojeg blok algoritma za kriptiranje podataka. Dok blok algoritmi rade na većim dijelovima, blokovima podataka, algoritmi kriptiranja tijeka podataka djeluju nad puno manjim jedinicama izvornog teksta. Najčešće se konvertira po jedan bit izvornog teksta u jedan bit kriptiranog teksta.

Svaki algoritam kriptiranja toka podataka koristi niz slučajnih bitova koji su potrebni da bi se izvorni tekst mogao kriptirati, taj niz se naziva keystream. Da bi se keystream proizveo potreban je generator koji na svojem izlazu daje niz bitova: k1, k2, k3, ..., ki. Niz takvih bitova se pomoću operacije XOR i niza bitova izvornog teksta, p1, p2, p3, ..., pi, prevodi u niz bitova kriptiranog teksta.

ci = pi XOR ki

Obrnuti postupak služi da bi se iz kriptiranog teksta dobio izvorni tekst. XOR operacija se vrši nad kriptiranim nizom i identičnim keystream-om:

pi = ci XOR ki Ovo vrijedi jer:

pi XOR ki XOR ki = pi Najjednostavnija implementacija algoritma kriptiranja toka podataka

prikazana je na slici 3.1.

Generatorkeystream-a

Ki

Pi Ci

Slika 3.1. Algoritam kriptiranja toka podataka

Jasno je da sigurnost cijelog sustava u potpunosti ovisi o generatoru keystream-a. Ukoliko generator na svom izlazu daje neprekinuti niz nula, kriptirani tekst će biti identičan izvornom tekstu i cijela operacija će biti bezvrijedna. Ako generator proizvodi 16 bitni uzorak koji se ponavlja, algoritam će biti jednostavni XOR koji daje zanemarivu sigurnost. Savršena sigurnost se jedino može postići uz beskonačan niz uistinu slučajnih (ne pseudo-slučajnih) bitova. Takav slučaj poznat je pod nazivom one-time pad simetrični kriptosustav.

Sigurnost algoritama kriptiranja toka podataka leži negdje između jednostavne XOR operacije i beskonačnog niza slučajnih brojeva. Generatori keystream-a generiraju nizove koji se čine slučajnim, ali se zapravo radi o determinističkom nizu koji se prilikom dekriptiranja može reproducirati bez

6

Page 10: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

pogreške. Što je keystream koji generator stvara bliži slučajnom nizu, to će algoritam s takvim generatorom biti bolji.

Bitno je da generatori keystream-a ne smiju stvarati uvijek isti niz. Ukoliko se napadač domogne kriptiranog teksta uz pripadni izvorni tekst, vrlo jednostavno može doći do keystream-a. Ukoliko se napadač domogne dvije različite kriptirane poruke na kojima je korišten isti keystream, uz pomoć XOR operacije dolazi se do dvije izvorne jasne poruke koje su pomiješane. Njih je jednostavno odvojiti, te uz pomoć kriptirane i izvorne poruke ponovno doći do uvijek istog keystream-a. Na taj način se napadaču omogućuje da otkrije sve ubuduće presretnute kriptirane poruke od istog sustava.

Iz ovih razloga izlaz generatora ovisi o vrijednosti ključa. Posjedovanje para kriptirane i pripadajuće izvorne poruke omogućava napadaču otkrivanje poruka kriptirane samo s istim ključem. Promjena ključa vraća napadača na početak.

Generator keystream-a se sastoji od 3 osnovna dijela: trenutno stanje – opisuje trenutno stanje u kojem se generator nalazi, izlazna funkcija – u ovisnosti o trenutnom stanju generira izlazni bit, funkcija sljedećeg stanja – na temelju trenutnog stanja određuje novo

trenutno stanje. Unutrašnjost generatora keystream-a, sa svim pripadnim dijelovima

prikazana je na slici 3.2.

trenutno stanje

funkcija slijedecegstanja

izlazna funkcijaKljuc K Ki

Slika 3.2. Unutrašnjost generatora keystream-a

7

Page 11: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

3.1. Keystream generator Pri razvoju ideje, te ostvarenju algoritma kriptiranja toka podataka, bitno je biti

upoznat sa osnovama na kojima se temelji dizajn gotovo svakog generatora keystream-a. U nastavku poglavlja raspravlja se o XOR operaciji, odnosno XOR algoritmu, beskonačnom nizu slučajnih brojeva, te o generatorima slučajnih i pseudo-slučajnih nizova.

3.1.1. Operacija XOR XOR, operacija "ekskluzivnog ili" je standardna operacija nad bitovima:

0 XOR 0 = 0 0 XOR 1 = 1 1 XOR 0 = 1 1 XOR 1 = 0

Vrijede sljedeće zakonitosti: A XOR A = 0

A XOR B XOR B = A Unutar nekih programskih paketa kao sigurnosna zaštita koriste se varijacije

jednostavnog XOR algoritma. Takav algoritam je zapravo predstavnik polialfabetnog algoritma kriptiranja: postoji više jednostavnih zamjena znakova, te koja zamjena će se upotrijebiti ovisi o poziciji znakova izvornog teksta.

XOR algoritam je simetrični algoritam. Između izvornog teksta P i ključa K se provodi XOR operacija da bi se generirao kriptirani tekst C. Ista procedura se koristi za dekriptiranje:

P XOR K = C K XOR C = P

Ovakav tip kriptiranja je trivijalan za probiti, čak i bez računala. Uz pomoć računala do izvornog teksta moguće je doći u svega nekoliko sekundi. Način na koji je najlakše doći do izvornog teksta bez poznavanja ključa je slijedeći:

1. Uz pomoć procedure zvane prebrojavanje podudarnosti (engl. Counting Coincidences) [2] otkriva se duljina ključ. Kriptirani tekst se podvrgava operaciji XOR sam sa sobom, ali s jednom instancom teksta pomaknutom u jednu stranu za određeni broj okteta. Postupak se ponavlja sa pomicanjem jedne kopije za različiti broj okteta. Prebrojavaju se okteti koji su jednaki. Ako je pomak djeljiv sa veličinom ključa, nešto više od 6% okteta (vjerojatnost za englesku abecedu) će se podudarati. Ako pomak nije djeljiv sa veličinom ključa tada će svega oko 0.4% okteta biti jednako. Ovo se naziva indeks podudaranja. Najmanji pomak koji je djeljiv s veličinom ključa je ujedno i veličina ključa.

8

Page 12: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

2. Kriptirani tekst se pomakne za duljinu ključa i izvrši se XOR između te instance i originala kriptiranog teksta. Ovime se ključ uklanja iz poruke i ostaje samo kombinacija izvornog teksta i izvornog teksta pomaknutog za duljinu ključa međusobno odvojenih XOR operacijom.

XOR algoritam je vrlo loš izbor za zaštitu povjerljivih informacija. Iako će zaustaviti amatera, ovakvo osiguranje ozbiljnom napadaču predstavlja gotovo da i ne predstavlja prepreku.

3.1.2. Beskonačni niz slučajnih znakova Beskonačni niz slučajnih znakova (engl. One-time Pad) predstavlja savršeni

kriptografski model. Radi se o beskonačnom neponavljajućem nizu uistinu slučajnih znakova koji predstavljaju ključ. Na strani na kojoj se poruka kriptira, jedan znak iz tog niza služi za enkripciju samo jednog znaka poruke. Kriptiranje je operacija zbrajanja po modulu 26 (ako se radi o engleskoj abecedi) između znaka izvorne poruke i znaka ključa.

Svaki znak ključa se koristi samo jednom i samo za jednu poruku. Nakon što je poruka kriptirana ključ se uništava. Primatelj poruke ima identični ključ pomoću kojeg dekriptira poruku znak po znak. Nakon što je poruka dekriptirana, ključ se uništava. Za novu poruku potreban je novi niz znakova ključa. Primjer kriptiranja prikazan je na slici 3.3.

SIGURNOST

Izvorni tekst Kljuc

NUHANJFPF

S + G mod 30 = GI + U mod 30 = FG + H mod 30 = T

...

GFTVBCATD

Kriptirani tekst

Slika 3.3. Primjer kriptiranja pomoću beskonačnog slučajnog niza

Uz pretpostavku da uljez ne može doći do beskonačnog niza koji je poslužio kao ključ prilikom kriptiranja, ovakav model je savršeno siguran. Na ovaj način kriptirana poruka može odgovarati bilo kojem jasnom tekstu iste duljine. Kako je podjednako moguće da svaki niz odgovara ključu, napadač nema apsolutno nikakve informacije na temelju koje bi mogao izvršiti kriptoanalizu. Slučajan niz znakova nadodan izvornoj poruci daje u potpunosti slučajan tekst kriptirane poruke. Bez obzira na računalnu snagu nemoguće je odrediti izvornu poruku bez ključa.

9

Page 13: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

Ideja beskonačnog niza se može proširiti na binarne podatke. Umjesto niza koji se sastoji od znakova, u ovom slučaju taj niz se sastoji od bitova. Za kriptiranje se umjesto zbrajanja koristi XOR operacija.

Bitno je da se sekvence koje se pojavljuju u ključu nikada ponovno ne koriste. Ukoliko napadač posjeduje kriptirane tekstove čiji se ključevi preklapaju, u mogućnosti je rekonstruirati izvorni tekst. Uspoređuju se verzije kriptiranih tekstova te se prebrojavaju podudaranja na svakoj poziciji. Ukoliko se tekstovi u jednom trenutku pravilno postave, iznos broja podudaranja naglo se povećava. Točan postotak ovisi o jeziku u kojem je izvorna poruka pisana. Od tog koraka nadalje kriptoanaliza je jednostavna.

Ovakav model se uspješno ostvaruje samo kada je niz znakova potreban za ključ generiran slučajno. Svi napadi se koncentriraju upravo na metodu koja je korištena za generiranje niza ključa. Korištenje generatora pseudo-slučajnih brojeva ne zadovoljava ovu ideju, jer oni uvijek posjeduju svojstva koja nisu slučajna. Sustav je siguran samo ako se koristi zaista slučajan izvor (više o toj temi moguće je pronaći u poglavlju 3.1.3.).

Problem veličine ključa se javlja jer ključ mora biti slučajan i nikada se ista sekvenca ne smije pojaviti više puta. Za kratke poruke ovo ne predstavlja problem. Za kriptiranje komunikacijskog kanala koji je stalno otvoren ovakva ideja neće nikada raditi. Osim problema vezanih uz distribuciju i pohranu ključa, potrebno je i savršeno sinkronizirati obje strane koje sudjeluju u komunikaciji. Ostvarenje sustava pomoću beskonačnog niza slučajnih znakova pruža savršenu sigurnost, ali zbog gubitka bitova ili gubitka sinkronizacije, ne može obećati autentičnost.

3.1.3. Generatori slučajnih nizova Pri korištenju algoritama kriptiranja toka podataka, vrlo je važno osigurati

kvalitetne slučajne nizove koji će služiti za kriptiranje izvornog teksta. Sigurnost cijelog sustava upravo ovisi o načinu na koji način pojedini algoritam generira niz keystream-a. Kriptografski sigurni pseudo-slučajni nizovi ponekad nisu dovoljno dobri. U nekim situacijama potrebni su uistinu slučajni brojevi. U ovom poglavlju su predstavljeni neki načini generiranja niza brojeva koje je nemoguće reproducirati. Prilikom generiranja slučajnog ključa pomoću pseudo-slučajnog generatora, dolazi do opasnosti da se uljez domogne kopije generatora i na taj način dođe do glavnog ključa. Kod sljedećih generatora, čak i kreator niza nije u mogućnosti ponovno dobiti identični niz.

Za bilo koju od ovih tehnika vrlo je teško dokazati da one generiraju uistinu slučajne brojeve, iako postoje razni testovi koji testiraju slučajnost. Većina tih testova proizlazi iz pokušaja da se generirana sekvenca sažme. Najvažnija činjenica kod tehnika generiranja slučajnih brojeva je da posjeduju statistička svojsta slučajnih bitova, te da ih nije moguće reproducirati.

10

Page 14: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

RAND tablice

1955. godine, prije naglog razvoja računalne industrije, Rand Corporation izdao je knjigu koja sadrži milijun slučajnih brojeva [2]. U knjizi je moguće pročitati koja je metoda korištena za generiranje tih brojeva, te također raspravu o rezultatima koji su dobiveni iz raznih testova slučajnosti. Čak je i predložena procedura kojom bi se trebali odabirati brojevi iz knjige. Glavni sadržaj knjige je upravo tablica slučajnih brojeva u kojoj su brojevi grupirani u peteroznamenkaste grupe.

Slučajan šum Veliki uzorak slučajnih bitova moguće je prikupiti koristeći prirodnu

slučajnost stvarnog svijeta. Za ovu metodu najčešće je potrebna specijalizirana oprema, međutim i uz pomoć računala moguće je dobiti zadovoljavajuće rezultate.

Potrebno je pronaći događaj koji se ponavlja u slučajnim intervalima. Mjeri se vrijeme između svaka dva događaja, te se ta vremena uspoređuju jedna s drugima i u ovisnosti o tome koje je interval duži, odlučuje se da li će bit biti 1 ili 0.

Postoji velik broj generatora slučajnih brojeva koji su ostvareni na ovom principu, i svi uspješno obavljaju svoj posao. Neki od njih su: generator slučajnih brojeva čiji je izlaz funkcija razlika naboja između dva elektronička elementa smještena neposredno blizu jedan od drugog, generiranje slučajnog niza koji se bazira na nestabilnosti frekvencije oscilatora, generator koji slučajni niz stvara u ovisnosti o termalnom šumu diode.

Ideja kako ostvariti generator slučajnih brojeva pomoću pojava u stvarnom svijetu je mnogo, ali postoje već gotovi komercijalni čipovi koji se služe ovim metodama.

3.1.4. Generatori psudo-slučajnih nizova Jedno od svojstava koje opisuje računalo je determinizam. Računalo može

biti samo u konačnom broju stanja. Taj broj je uistinu velik, ali je još uvijek konačan. Za svaki ulaz, izlaz koje daje računalo je deterministička funkcija ulaza i trenutnog stanja računala. Svaki generator slučajnih brojeva koji se odvija na računalu ne proizvodi uistinu slučajan niz, već je zbog konačnog stanja u kojem se računalo može nalaziti, taj niz periodičan. Periodičnost označava ujedno i predvidljivost, a po definiciji slučajnost ne smije biti predvidljiva. Izvori koji su sposobni generirati pravu slučajnost su vrlo često nepraktični, te se računalo mora upotrijebiti u svrhu generiranja slučajnih nizova. Takvi nizovi se nazivaju pseudo-slučajnima. Čak i u pseudo-slučajnim nizovima postoji razlika u kvaliteti. Mnoge aplikacije i kompajleri nude već ugrađene generatore slučajnih brojeva koji su na raspolaganju kroz jednostavne sistemske pozive. Takvi generatori nisu niti približno dobro rješenje na području kriptografije. Oni možda i zadovoljavaju

11

Page 15: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

potrebe aplikacija u kojima su ugrađene, ali kako sigurnost cijelog sustava algoritama za kriptiranje toka podataka ovisi o kvaliteti generiranih slučajnih brojeva, zadnje što korisnik takvog algoritma želi je pojava neobičnih rezultata i korelacija. Napadači će vrlo vješto znati iskoristit sve takve slabosti i s lakoćom doći do izvornog teksta.

Pseudo-slučajan niz uvijek posjeduje periodu. Treba obratiti pozornost na činjenicu da perioda mora biti tolika da se u konačnom nizu određene duljine, koji će biti korišten u neke svrhe, perioda ne pojavi. Pseudo-slučajan niz je bolji ako zadovoljava neka očekivana svojstva slučajnih nizova, kao što su distribucija nula i jedinica, te učestalost pojavljivanja nizova istog bita.

Generator nizova je pseudo-slučajan ako zadovoljava sve statističke testove koji testiraju slučajnost. Generator je kriptografski siguran ako uz statističku slučajnost, zadovoljava i svojstvo nepredvidivosti. Sljedeći bit niza mora biti nemoguće predvidjeti, čak i uz poznavanje algoritma i svih do tad generiranih bitova. Generator je tek tada dobar za upotrebu u kriptografskim aplikacijama.

Svi dostupni generatori pseudo-slučajnih nizova su periodički. Njihove periode su vrlo velike duljine tako da se generatori mogu koristiti i u najvećim aplikacijama. Kvalitete pojedinih generatora se naravno razlikuju i svi su oni podložni napadima. To je ujedno i jedno od najbitnijih svojstava algoritama kriptiranja, naročito algoritama kriptiranja toka podataka: koliko je dobar generator slučajnog niza, odnosno keystreama-a, i koliko ga je teško probiti. Brzina algoritma ima ulogu u međusobnim usporedbama algoritama, međutim, ona je vrlo često manje bitna u odnosu na otpornost algoritma, odnosno generatora, na napad.

3.2. Pristup dizajniranju algoritma Velik dio istraživanja na području dizajniranja algoritama toka podataka je

samo teoretske prirode. Bez obzira na ovu činjenicu postoji dosta vrlo uspješnih algoritama kriptiranja toka podataka. Dizajn algoritma se predlaže i tek potom analizira.

Koristeći temeljne principe dizajniranja pokušava se osmisliti težak i kriptoanalitičaru nepoznat problem. Ovo je osnovni pristup koji se koristi, i koji je korišten za većinu postojećih algoritama. Stvara se generator keystream-a sa svojstvima koja je moguće testirati: perioda, linearna kompleksnost, distribucija bitova itd. Nakon toga se koriste razne kriptoanalitičke metode nad generatorom da bi se ustvrdilo da li je generator otporan na ove napade.

Kriptosustavi se mogu bazirati i na nekim poznatim i teškim problemima kao što su diskretni algoritmi. Pristup može biti i takav da za cilj ima natjerati napadača da proučava ogromne količine beskorisnih podataka prilikom pokušaja napada.

Lista kriterija koje algoritam mora zadovoljiti ne vrijedi samo za sve algoritme kriptiranja toka podataka, već vrijedi i za blok algoritme. Prilikom dizajniranja pokušavaju se zadovoljiti sljedeći kriteriji [2]:

12

Page 16: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

duga perioda bez ponavljanja, statistički kriteriji, svaki keystream mora biti kompleksna transformacija svih bitova

ključa, velika linearna kompleksnost, nepostojanje redundancije u podstrukturama.

Bez obzira što kriptosustavi imaju jasno postavljene ciljeve, ne može se dokazati da li su ovi kriteriji dovoljni i uopće potrebni da bi neki sustav bio siguran. Moguće je da generator keystream-a zadovoljava sve ove zahtjeve, a da se radi o nesigurnom algoritmu.

3.3. Posmični registar s povratnom funkcijom Vrlo velik broj algoritama kriptiranja podataka se bazira na uporabi posmičnih

registara s povratnom funkcijom (engl. Feedback Shift Register). Prvenstveno se misli na one s linearnom povratnom funkcijom. Osim posmičnog registra s linearnom povratnom funkcijom, pri ostvarenju algoritma toka podataka moguće je koristiti i proširenje s dodatnim registrom za carry vrijednost. Povratnu funkciju moguće je ostvariti i na nelinearan način. Posmični registar s povratnom funkcijom, sa svojim varijacijama, bit će opisan u nastavku poglavlja.

3.3.1. Način rada posmični registar s povratnom funkcijom se sastoji od dva dijela:

posmičnog registra, povratne funkcije.

Posmični registar je niz bitova, te mu se duljina i označava u bitovima. Za registar duljine n bitova, kaže se da je n-bitni registar. Kada je na izlazu potreban bit, registar, odnosno svi bitovi u njemu, se pomiču za jedno mjesto u desno. Krajnji desni bit prije posmaka postaje izlaz, dok krajnje lijevo mjesto nakon posmaka ostaje prazno. To mjesto se popunjava bitom koji se izračunava kao funkcija točno određenih bitova unutar registra. Posmični registar s povratnom funkcijom prikazan je na slici 3.4.

a1a2a3an-1an ...

povratna funkcija

Slika 3.4. Posmični registar s povratnom funkcijom

13

Page 17: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

Perioda posmičnog registra je duljina izlaznog niza prije nego što se niz počne ponavljati. Perioda posmičnog registra mora biti što je moguće dulja, kako bi posmični registar bio što efektivniji za upotrebu u kriptografiji.

3.3.2. Posmični registar s linearnom povratnom funkcijom Posmični registar s linearnom povratnom funkcijom je najjednostavniji oblik

posmičnog registra s povratnom funkcijom. Povratna funkcija je XOR operacija određenih bitova registra. Ovakav registar prikazan je na slici 3.5.

a1a2a3an-1an ...

Slika 3.5. Posmični registar s linearnom povratnom funkcijom

Posmični registar s linearnom povratnom funkcijom duljine n može biti u jednom od 2n-1 mogućih stanja. Maksimalni broj stanja nije 2n jer registar popunjen sa nulama može generirati samo neprekidni niz nula. Kako postoji 2n-1 stanja, registar može generirati maksimalni pseudo-slučajni niz upravo te duljine. Samo registri s posebnim bitovima spojenim u povratnu funkciju mogu proći kroz svih 2n-1 stanja. U tom slučaju radi se o posmičnom registru s linearnom povratnom funkcijom maksimalne periode. Registar postiže maksimalnu periodu ako je polinom koji se formira pomoću spojenih bitova i konstante 1 primitivni polinom po modulu 2. Stupanj tako formiranog polinoma je upravo duljina posmičnog registra. Polinom je primitivan sa stupnjem n ako je to minimalni polinom koji dijeli x 2^(n-1) + 1, ali ne dijeli xd + 1, pri čemu vrijedi da d dijeli 2n-1. Za primjer se može prikazati formiranje polinoma iz registra kojem su na povratnu funkciju spojeni bitovi 3, 5, 6, 10 i 17. Polinom ovog registra je:

x17 + x10 + x6 + x5 + x3 + 1 Generiranje primitivnih polinome po modulu 2 nije jednostavno. U praksi se

koriste slučajni polinomi koji se potom pomoću postojećih matematičkih paketa testiraju da bi se provjerilo da li se uistinu radi o primitivnom polinomu po modulu 2.

3.3.3. Posmični registar kao građevni element algoritma Kod posmičnog registra s linearnom povratnom funkcijom treba obratiti

pozornost na broj koeficijenta pripadajućeg polinoma. Što je broj koeficijenata manji algoritam će brže raditi. Manji polinomi su međutim podložni napadima koji se baziraju na korelaciji bitova. Što je koeficijenata više to bi algoritam trebao biti sigurniji, međutim guste primitivne polinome po modulu 2 je vrlo teško generirati.

14

Page 18: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

Posmični registri s linearnom povratnom funkcijom su već sami po sebi generatori pseudo-slučajnih nizova, međutim, posjeduju neke odlike koje se ne mogu nazvati slučajnima. Važna mjera kojom se analiziraju generatori bazirani na posmičnim registrima s linearnom povratnom funkcijom je linearna kompleksnost. Ona se definira kao duljina najmanjeg posmičnog registra s linearnom povratnom funkcijom koji će uspješno imitirati izlaz generatora. Berlekamp-Massey algoritam generira minimalne registre nakon što prouči samo 2n bitova izlaza generatora. Nakon što se uspješno pronađe minimalni posmični registar koji imitira izlaz generatora, algoritam kriptiranja je probijen.

Visoka linearna kompleksnost nužno ne garantira siguran generator slučajnog niza.

Postoji više vrsta napada kojima su algoritmi koji se baziraju na posmičnim registrima s linearnom povratnom funkcijom podložni, ali o njima ovdje neće biti riječi. Bez obzira na njih, posmični registri s linearnom povratnom funkcijom su vrlo često građevni elementi kriptografskih algoritama.

3.3.4. Posmični registar s povratnim carry registrom Posmični registri s povratnim carry registrom moraju imati dodatan registar za

povratnu carry funkciju. Za razliku od registra s linearnom povratnom funkcijom, u ovom slučaju svi odabrani bitovi se zbrajaju u sadržaj carry registra. Novi bit, kojim će se popuniti registar nakon posmaka, se dobije operacijom po modulu 2 sa sadržajem carry registra. Novi sadržaj carry registra je rezultat dijeljenja starog sadržaja s 2. Posmični registar s povratnim carry registrom je prikazan na slici 3.6.

a1a2a3an-1an ...

Zbroj

Zbroj mod 2 Zbroj / 2

Carry registar

Slika 3.6. Posmični registar s povratnim carry registrom

Veličina carry registra mora biti barem log2N, pri čemu je N broj bitova spojenih na carry registar.

Maksimalna perioda posmičnog registra s carry povratnom funkcijom iznosi q-1, gdje se q definira na sljedeći način:

q = 2q1 + 22q2 + 23q3 + ... + 2nqn – 1

15

Page 19: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

n je duljina registra, dok je qi 1 ukoliko je bit i registra spojen na carry registar, odnosno 0 ako nije. Ako su spojeni bitovi 3, 7, 9, 11, tada q iznosi:

q = 211 + 29 + 27 + 23 – 1 = 2695 što znači da bi maksimalna perioda ovako spojenog posmičnog registra

iznosila upravo 2695 bitova. Do maksimalne periode nije moguće doći iz svih početnih stanja. Također je

bitno spomenuti da prije nego što počne ponavljati, posmični registar će proći kroz inicijalne prijelaze koji se više neće ponoviti.

Svako početno stanje može rezultirati sljedećim: stanje je unutar maksimalne periode, nakon inicijalnih prijelaza započet će maksimalna perioda nakon inicijalnih prijelaza započet će beskonačni niz nula nakon inicijalnih prijelaza započet će beskonačni niz jedinica

Postoji matematička formula koja izračunava što će se dogoditi uz zadano početno stanje. U praksi se ipak češće koristi testiranje. Potreban je određeni broj koraka nakon kojih će biti moguće utvrditi da li je inicijalno stanje pogodno za korištenje. Kako je početno stanje direktno ovisno o ključu, algoritam kriptiranja toka podataka koji bi svoj generator keystream-a bazirao na posmičnom registru s carry registrom, posjedovao bi skup slabih ključeva.

Teorija korištenja posmičnih registara s carry registrom u kriptografiji relativno nova. Još uvijek ne postoje algoritmi kriptiranja toka podataka koji koriste ovu ideju, ali se područje istražuje.

3.3.5. Posmični registar s nelinearnom povratnom funkcijom Posmični registar s nelinearnom povratnom funkcijom se ne koristi na

području kriptografije iz jednostavnog razloga: ne postoji matematička teorija kojom bi se ovakvi registri mogli analizirati. Iako je ovo nedostatak, u isto vrijeme to je i prednost posmičnog registra s nelinearnom povratnom funkcijom. Njegovu sigurnost nije moguće analizirati, te je isto tako vrlo teško izvršiti kriptoanalizu nad algoritmom kriptiranja podataka koji se oslanja na ovaj tip posmičnog registra.

Kao nelinearna povratna funkcija može poslužiti bilo koja kombinacija operacija. Primjer je na slici 3.7.

16

Page 20: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

a1a2a3an-1an ...

*+

+

Slika 3.7. Primjer posmičnog registra s nelinearnom povratnom funkcijom

Konkretni problemi koji se mogu pojaviti uzrokovani nelinearnom funkcijom su sljedeći:

maksimalna perioda generiranog niza može biti mnogo kraća od očekivane,

moguća su loša statistička svojstva, kao što je češće pojavljivanje jedinica nego nula, ili obrnuto,

perioda se može razlikovati s obzirom na početno stanje, generirani niz može naglo završiti s nizom jedne vrijednosti bita.

Iz svega navedenog može se zaključiti da je moguće koristiti posmični registar s nelinearnom povratnom funkcijom za ostvarenje algoritma kriptiranja toka podataka, ali je potreban izniman oprez prilikom stvaranja povratne funkcije.

3.4. Tipovi algoritama Algoritmi kriptiranja toka podataka se mogu podijeliti na sinkrone i samo-

sinkornizirajuće algoritme kriptiranja toka podataka. Podjela nastaje s obzirom da li kriptirani tekst utječe na keystream ili ne.

3.4.1. Samo-sinkronizirajući algoritam Kod samo-sinkronizirajućih algoritama toka podataka svaki bit keystream-a je

funkcija točno zadanog broja bitova prethodno generiranog kriptiranog teksta. U vojnim krugovima ova metoda je poznata pod nazivom auto ključ kriptiranog teksta (engl. Ciphertext Auto Key).

Na slici 3.8. je prikazan osnovni model samo-sinkronizirajućeg algoritma kriptiranja toka podataka. Iz slike je vidljivo da trenutno stanje ovisi n prethodnih bitova kriptiranog teksta.

17

Page 21: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

trenutno stanje

izlazna funkcija

Ki

Pi Ci

K

Slika 3.8. Samo-sinkronizirajući algoritam

Trenutno stanje ovisi samo o prethodnih n bitova kriptiranog teksta. Generator keystream-a za dekriptiranje će se automatski sinkronizirati sa generatorom keystream-a za kriptiranje nakon što primi n kriptiranih bitova. U nekim ostvarenjima svaka poruka na svom početku ima n slučajnih bitova. Taj dio se kriptira, prenosi i dekriptira. Dekripcija će biti kriva, ali je bitno da će se oba generatora keystream-a nakon tih n bitova sinkronizirati.

Samo-sinkronizirajući algoritmi kriptiranja tijeka podataka su ranjivi na playback napad. Nakon što napadač snimi određeni niz bitova kriptiranog teksta, on je u mogućnosti ponovno pustiti taj prethodno snimljeni niz u aktualni promet. Nakon što se kraj koji prima kriptirane poruke resinkronizira, stari kriptirani tekst će se dekriptirati normalno. Strana koja prima kriptirani tekst ne može znati da se radi o ponovljenim starim podacima. U nekim radovima [2] se ističe da je ovakav model algoritma također ranjiv u slučajevima česte resinkronizacije.

Osim sigurnosnih problema, još jedna loša strana samo-sinkronizirajućih algoritama je i propagacija pogreške. Za svaki krivo preneseni kriptirani bit, generator keystream-a za dekriptiranje će proizvesti n neispravnih bitova keystream-a. Za svaku grešku u kriptiranom tekstu, doći će do n grešaka u izvornom tekstu prilikom dekriptiranja. Razlog tome je jasan, greške u dekriptiranju će se pojavljivati sve dok krivo prenesni bit ne napusti trenutno stanje, a to se može dogoditi tek nakon n koraka.

3.4.2. Sinkroni algoritam Kod sinkronih algoritama kriptiranja tijeka podataka keystream se generira

neovisno o izvornoj ili kriptiranoj poruci. I na strani gdje se kriptira i na strani gdje se dekriptira potrebno je proizvoditi identične nizove bitova. Dok su oba generatora keystream-a sinkronizirana sve radi savršeno. Problemi nastaju kada jedan od generatora preskoči jedan korak ili se proizvedeni bit izgubi tijekom prijenosa. Svaki naredno kriptirani znak bit će dekriptiran krivo. U tom slučaju oba generatora se moraju resinkronizirati prije nastavka rada. Resetiranje generatora na prethodno stanje neće raditi, jer je nužno osigurati da se niti jedan dio keystream-a ne ponovi. Sinkroni algoritmi su ipak kod pojave pogreške u prednosti pred samo-sinkronizirajućim generatorima. Naime, kod sinkronih algoritama propagacije pogreške nema. Ukoliko se neki bit keystream-a krivo

18

Page 22: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

generira ili promijeni prilikom prijenosa, samo će jedan bit biti krivo dekriptiran. Na sve prethodne i naredne bitove neće biti utjecaja.

Iz činjenice da oba generatora keystream-a moraju imati isti izlaz, jasno je da ovi generatori moraju biti deterministički. Generirani niz se u jednom trenutku mora ponoviti, jer se generatori ostvaruju kao konačni automati. Iz tog razloga se za generatore keystream-a kaže da su periodički. Jedini izuzetak je generator koji generira beskonačan niz slučajnih brojeva. Perioda generatora mora biti vrlo velika, puno duža od broja bitova koji će biti generirani između dvije izmjene ključa. Koliko velik period je dovoljno velik ovisi o aplikaciji koja koristi algoritam. Veliki problem, što se tiče sigurnosti sustava, nastaje ako je period manji od ukupne duljine izvorne poruke koju je potrebno kriptirati. U takvom slučaju različiti dijelovi poruke biti će kriptirani na isti način. Poznavanjem dijela izvornog teksta, napadač je u mogućnosti rekonstruirati dio keystream-a i njega iskoristiti da otkrije još dio izvorne poruke. Uz dostupnost samo kriptiranog teksta, napadač može obaviti XOR operaciju nad dijelovima poruke koji su kriptirani istim keystream-om i kao rezultat dobiti dijelove poruka međusobno odvojene XOR operacijom. U stvarnosti se radi o jednostavnoj XOR operaciji sa vrlo dugim ključem.

Sinkroni algoritmi kriptiranja toka podataka su ranjivi na napade ubacivanjem u kriptirani tekst, odnosno napade brisanjem iz kriptiranog teksta. Ovi napadi dovode do gubitka sinkronizacije te će vrlo često biti instantno primijećeni. Problemi također mogu nastati ako napadač pokuša zamijeniti zasebne bitove u nizu. Poznavanjem izvornog teksta, napadač može učiniti da se ti bitovi dekriptiraju u što god on poželi. Ovakav napad neće uvijek uspjeti, ali može dovesti do štete u određenim aplikacijama.

U tablici 3.1. je prikazana slabost na određene tipove napada u ovisnosti da li je algoritam sinkroni ili samo-sinkronizirajući.

Tip algoritma Tip napada

sinkroni playback napad

samo-sinkronizirajući napad ubacivanjem teksta (engl. Insertion)

Tablica 3.1. Pregled ranjivosti u ovisnosti o tipu algoritma

3.5. Načini rada blok algoritama Blok algoritmi mogu raditi u više načina rada. Dva načina rada su posebno

zanimljiva jer se u njima blok algoritmi ostvaruju kao algoritmi kriptiranja toka podataka. U nastavku je dan kratak osvrt na ova načine rada blok algoritama.

3.5.1. ECB način rada ECB način rada (engl. Electronic Codebook) je osnovni način rada svakog

blok algoritma kriptiranja podataka. Blok izvornih podataka se kriptira u blok iste

19

Page 23: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

veličine kriptiranih podataka. Korištenjem istog ključa, blok izvornih podataka će se uvijek kriptirati u isti blok kriptiranih podataka. Teoretski je moguće za svaki ključ ostvariti kodnu knjigu, knjigu koja će sadržavati sve moguće blokove izvornih podataka i njima odgovarajuće kriptirane blokove. Za algoritme bloka veličine x bitova, kodna knjiga će sadržavati 2x parova blokova.

Kriptiranje svakog bloka u ECB načinu rada se odvija neovisno o ostalim blokovima. Ovo nudi mogućnost paralelnog obrađivanja podataka. Ovaj način rada je pogodno koristiti pri kriptiranju podataka kojima se pristupa neovisno o ostalim dijelovima neke cjeline, kao što su npr. baze podataka.

Sigurnosni problem koji se javlja kod ovog načina rada je mogućnost izrade dijela kodne knjige bez poznavanja ključa, već samo uz posjedovanje blokova izvornog teksta uz odgovarajuće blokove kriptiranog teksta iz nekoliko poruka. Dijelovi poruka se vrlo često ponavljaju, ovo je posebno izraženo kod početaka i završetaka poruka. Ako napadač otkrije da se neki blok jasnog teksta kriptira u određeni blok kriptiranog teksta, svako slijedeće pojavljivanje takvog kriptiranog bloka će biti moguće dekriptirati.

Pogreške na razini bita će prilikom dekriptiranja uzrokovati krivo dekriptirani cijeli blok podataka. Ovo ipak nema nikakvog utjecaja na sve ostale blokove. Nehotičnim dodavanjem ili oduzimanjem bita, sav naredno kriptirani tekst će biti krivo dekriptiran, osim ako ne postoji neka vrsta strukture koja služi kao granica među blokovima. Do ovakvog problema može doći onda kada se dekriptiranje blokova odvija slijedno, međutim, kako je već prije spomenuto blokove je moguće obrađivati zasebno, neovisno jedan od drugoga. U takvom slučaju neće doći do propagirajućih pogrešaka, osim onih u bloku u kojem je nastupilo ispadanje ili dodavanje bita.

Vrlo rijetko se poruke, koje je potrebno kriptirati, mogu uredno podijeliti u blokove određene veličine. Gotovo uvijek zadnji blok neće biti dovoljno velik. U ECB načinu rada nužno je da svi blokovi budu isti, zato se pristupa popunjavanju bloka do zadane veličine. Popunjavanje je moguće izvršiti nizom nula, nizom jedinica, ili nizom alternirajućih nula i jedinica. Ako je pri kriptiranju potrebno izbrisati nadodane oktete, tada je moguće u zadnjem oktetu navesti broj okteta koje je počevši odzada potrebno izbrisati.

3.5.2. CBC način rada U CBC načinu rada (engl. Cipher Block Chaining) kriptirani blokovi služe kao

povratna funkcija blokovima koji tek trebaju biti kriptirani. CBC način rada je vrlo sličan ECB načinu, uz dodatak povratne informacije. Između jasnog teksta i prethodno kriptiranog bloka se vrši XOR operacija prije nego što se pristupi kriptiranju svakog pojedinog bloka. Svaki blok se koristi za modifikaciju enkripcije slijedećeg bloka. Svaki kriptirani blok na taj način postaje ovisan ne samo o bloku jasnog teksta iz kojeg je nastao, već i o svim prethodnim blokovima jasnog teksta. Kriptiranje u CBC načinu rada je prikazano na slici 3.9.

20

Page 24: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

Ci-1

Pi-1

E

Ci

Pi

E

Slika 3.9. Algoritam u CBC načinu rada

Na slici 3.9. je moguće vidjeti da se kriptirani blok pohranjuje u povratni registar. Prije kriptiranja novog bloka jasnog teksta, potrebno je između njega i pohranjene vrijednosti izvršiti XOR operaciju. Dekripcija se obavlja na isti način u suprotnome smjeru. Nakon dekripcije bloka, rezultat se pohranjuje da bi se između njega slijedećeg dekriptiranog bloka obavila XOR operacija. Operacije koje se obavljaju je moguće opisati na slijedeći način:

ci = E (pi XOR ci-1) pi = ci-1 XOR D (ci)

U ECB načinu rada se prilikom kriptiranja bloka jasnog teksta uvijek kriptira u isti kriptirani blok, podrazumijevajući isti ključ. CBC načinom rada se ovakva pojava izbjegava upravo povratnim mehanizmom. Iste poruke će se međutim i u CBC načinu rada prevoditi u jednaki kriptirani tekst sve do pojave prve razlike između te dvije poruke. Kako mnoge poruke imaju standardne, identične početke, napadač može doći do korisnih informacija. Ovome se staje na kraj tako da se za prvi blok kriptiraju nasumično odabrani podaci. Taj blok postaje inicijalizacijski vektor. On sam po sebi nema nikakvog značenja, već služi samo da bi svaku poruku učinio jedinstvenom. S ovim dodatkom identični jasni tekstovi se kriptiraju u različite kriptirane tekstove.

Kao i kod ECB načina rada, i ovdje je neophodno izvršiti popunjavanje zadnjeg bloka jasnog teksta. To se izvršava na isti način kao i kod ECB načina rada.

Pogreška u jednom bitu jasnog teksta će utjecati na taj i sve slijedeće blokove kriptiranog teksta. Ovo nije toliko važno jer će tijekom dekriptiranja učinak tog bita imati suprotan efekt, te će dekriptirani tekst imati samo tu jednu pogrešku. Pogreška u jednom bitu kriptiranog teksta, koja može nastati zbog problema u komunikacijskom kanalu, utječe na jedan blok i jedan bit dekriptiranog teksta. Blok koji sadrži pogrešku je u potpunosti nerazumljiv, dok se u slijedećem bloku pojavljuje grešaka u jednom bitu na istoj poziciji gdje je pogreška i nastupila. Ovdje je moguće primijetiti dva svojstva CBC načina rada: ekstenziju pogreške, te sposobnost oporavka od pogreške. Dva bloka su poremećena pogreškom, ali nakon njih se dekripcija nastavlja normalno.

21

Page 25: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

CBC način rada se oporavlja od grešaka na razini bita, međutim, oporavak od sinkronizacijskih pogrešaka nije moguć. Pri dodavanju ili oduzimanju bita iz niza kriptiranog teksta, svi slijedeći blokovi su pomaknuti iz svoje prave pozicije i dekripcija će dovesti do nerazumljivog teksta sve do kraja poruke.

3.5.3. CFB način rada Ponekad se u nekim okruženjima i aplikacijama javlja potreba kriptiranja i

odašiljanja podataka kako se oni pojavljuju na ulazu. Jasno je da takav problem upravo rješava algoritam kriptiranja toka podataka, međutim, u nekim slučajevima može biti neophodno ili poželjno kriptirati podatke blok algoritmom. Tada je moguće ostvariti blok algoritam kao samo-sinkronizirajući algoritam kriptiranja toka podataka. To se naziva CFB načinom rada (engl. Cipher-feedback Mode). U ovakvom načinu rada algoritam kriptira jedinice veličine n bita, pri čemu je n manji ili jednak veličini bloka. Kriptiranjem jednog po jednog bit, treba razmotriti upotrebu pravog algoritma toka podataka, jer će se svakim korakom blok algoritma kriptirati tek jedan bit, što je preveliki gubitak vremena.

Blok algoritmom koji radi s veličinom bloka od N bitova se želi ostvariti kriptiranje u koracima od n bitova. Postupak je sljedeći:

1. Niz (registar) veličine N bitova popuniti inicijalizacijskim vektorom. Za svaku poruku potrebno je koristiti novi inicijalizacijski vektor.

2. Kriptirati niz standardnim korakom blok algoritma. 3. Izvršiti XOR operaciju između prvih n bitova (na krajnjoj lijevoj poziciji

u nizu) i prvih n bitova izvornog teksta. 4. Tako dobiveni blok od n bitova je kriptiran i spreman za prijenos. 5. Niz se pomiče za n bitova u lijevo i prvih n bitova (već iskorištenih za

XOR operaciju) se odbacuje. 6. Kriptirani blok od n bitova se pohranjuje na slobodna mjesta u nizu

(krajnja pozicija na desno u nizu). 7. Postupak se nastavlja dok se ne kriptira cijeli izvorni tekst.

Postupak dekriptiranja je obrnut postupku kriptiranja. Na slici 3.10. je prikazan algoritam u CFB načinu rada.

22

Page 26: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

...

Ki

Pi Ci

KriptiranjeK

Ci-1

Pi-1

E

Ci

Pi

n krajnjelijevih bitova

Ci = Pi XOR E(Ci-1)

Slika 3.10. Algoritam u CFB načinu rada

U CFB načinu rada kriptirani tekst je povezan sa prethodnim izvornim tekstom. Zbog ove činjenice blok algoritam radi kao samo-sinkronizirajući algoritam kriptiranja toka podataka.

Greška u izvornom tekstu utjecat će na sav naredni kriptirani tekst. Dekriptiranjem će se dobiti izvorni tekst sa samo pripadajućom pogreškom. Pogreškom u kriptiranom tekstu, bit koji je krivo prenesen uzrokovat će jednu grešku u izvornom tekstu prilikom dekriptiranja. Nakon toga, greška ulazi u registar i uzrokuju krivo dekriptiranje sve dok ne izađe iz registra. Nakon što pogrešni bit napusti registar, dekriptiranje se oporavlja i sav naredni tekst se ispravno dekriptira. Algoritam koji kriptira n-bitne dijelove teksta će uz jednu pogrešku u kriptiranom tekstu, dovesti do krivog dekriptiranja trenutnog bloka i N/n-1 sljedećih blokova. Algoritam će se sam oporaviti od pogreške, ali ovakva propagacija pogreške može pomoći napadaču da uz pomoć malverzacije bitova u jednom bloku i poznatog mu izvornog teksta, dekriptira blok u što god poželi. Iako će sljedeći blok biti besmislen, šteta već može biti nanesena.

3.5.4. OFB način rada OFB način rada je metoda u kojoj se blok algoritam kriptiranja implementira

kao sinkroni algoritam kriptiranja toka podataka. Za algoritam kriptiranja toka podataka ne vrijedi da sam po sebi radi u OFB načinu. Tek uz neke modifikacije generatora keystream-a algoritma kriptiranja toka podataka, algoritam će biti ostvaren u OFB načinu rada. Ključ naime ne utječe na izlaznu funkciju, već samo na funkciju sljedećeg stanja. Upravo u funkciji sljedećeg stanja je pohranjena sva kompleksnost cijelog sustava, jer je samo ona ovisna o ključu. Izlazna funkcija je vrlo često ostvarena na jednostavan način. Jedna od varijacija je i da ključ utječe samo na početno stanje generatora keystream-a. Za algoritam kriptiranja toka podataka se kaže da radi u OFB načinu rada samo ako ključ ne utječe direktno na izlaznu funkciju generatora.

Način rada se razlikuje od CFB načina rada samo po načinu popunjavanja registra nakon svakog koraka kriptiranja/dekriptiranja:

23

Page 27: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

1. Niz (registar) veličine N bitova popuniti inicijalizacijskim vektorom. Za svaku poruku potrebno je koristiti novi inicijalizacijski vektor.

2. Kriptirati niz standardnim korakom blok algoritma. 3. Izvršiti XOR operaciju između prvih n bitova (na krajnjoj lijevoj poziciji

u nizu) i prvih n bitova izvornog teksta. 4. Tako dobiveni blok od n bitova je kriptiran i spreman za prijenos. 5. Niz se pomiče za n bitova u lijevo i prvih n bitova (već iskorištenih za

XOR operaciju) se odbacuje. 6. Zadnjih n bitova izlaza iz enkripcije se pohranjuje na slobodna mjesta

u nizu (krajnja pozicija na desno u nizu). 7. Postupak se nastavlja dok se ne kriptira cijeli izvorni tekst.

Postupak dekriptiranja je obrnut postupku kriptiranja. Na slici 3.11. je moguće vidjeti postupak kojim se kriptira u OFB načinu rada.

Stanje Xi nije ovisno niti o kriptiranom tekstu, niti o izvornom tekstu.

...

Ki

Pi Ci

KriptiranjeK

Ci-1

Pi-1

E

Ci

Pi

n krajnjelijevih bitova

Ci = Pi XOR Xi; Xi = E(Xi-1)

Slika 3.11. Algoritam u OFB načinu rada

Povratni mehanizam je u potpunosti neovisan o izvornom i kriptiranom tekstu. Dio posla je zato moguće obaviti čak i kada izvorni tekst nije još dostupan. Takvim pristupom moguće je dobiti keystream unaprijed. Tek kada izvorni tekst postane dostupan ili spreman za kriptiranje, obavi se XOR između izlaza algoritma, odnosno keystream-a, i izvornog teksta.

U OFB načinu rada ne postoji propagacija pogreške, odnosno jedna greška u kriptiranom tekstu dati će samo jednu grešku u dekriptiranom tekstu. Iako propagacija pogreške nije prisutna, moguć je gubitak sinkronizacije. Gubitak sinkronizacije će prouzročiti da dekriptirani tekst bude u potpunosti nerazumljiv od trenutka desinkronizacije na dalje. U sustave koji koriste OFB način rada je zato potrebno je ugraditi mehanizam detektiranja gubitka sinkronizacije kao i mehanizam oporavka. To se postiže postavljanjem inicijalizacijskog vektora na iste vrijednosti na obje strane.

24

Page 28: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

Pri OFB načinu rada javlja se sigurnosni problem ponavljanja keystream-a. Analize [2] pokazuju da ako je povratni dio jednak veličini bloka N koji algoritam inače koristi, može se očekivati da prosječni ciklus ponavljanja keystreama iznosi 2N-1. Ako je n manji od veličine bloka N, tada je prosječni ciklus duljine 2N/2. To nije dovoljno da se pruži zadovoljavajuća sigurnost. OFB načina rada je zato preporučljivo koristiti samo na taj način da je povratni dio jednak veličini bloka.

25

Page 29: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

4. Pregled algoritama kriptiranja toka podataka

4.1. SEAL Algoritam SEAL su osmislili Phil Rogaway i Don Coppersmith za IBM. Radi

se o algoritmu koji je namijenjen pogramskom ostvarenju, te je optimiziran za 32-bitne procesore. U svom radu SEAL koristi prethodno generirane tablice koje potom služe za ubrzanje kriptiranja i dekriptiranja.

Novost koju je donio svojom pojavom je ta što se ne radi o tradicionalnom algoritmu kriptiranja toka podataka, već algoritam spada u porodicu pseudo-slučajnih funkcija. 32-bitnu vrijednost n, SEAL će pomoću 160-bitnog ključa razvući u L-bitni string k(n), pri čemu L može poprimiti bilo koju vrijednost do 64 kilobyte-a. Tako generirani pseudoslučajni stringovi k(n) služe kao ključevi za kriptiranje i dekriptiranje podataka.

Činjenica da SEAL spada u porodicu pseudo-slučajnih funkcija omogućuje mu da bude koristan u aplikacijama u kojima se tradicionalni algoritmi kriptiranja toka podataka ne mogu koristiti. Kod većine algoritama generira se niz bitova u jednom smjeru, te da bi se uz poznavanje ključa mogao odrediti i-ti bit, potrebno je generirati sve bitove prije njega. Kod pseudo-slučajnih funkcija omogućen je jednostavan pristup bilo kojoj poziciji u nizu keystreama.

Pseudo-slučajne funkcije također olakšavaju sinkronizacijske probleme koji se mogu susresti kod nekih algoritama kriptiranja toka podataka. Radi se o slučaju kada se šalje niz kriptiranih poruka preko kanala u kojem može doći do gubitka paketa. Sa pseudo-slučajnom funkcijom, n-tu poruka koja se odašilje, xn, moguće je kriptirati ključem k kao rezultat operacije XOR između xn i k(n). Primatelj poruka ne mora pohraniti niti jedno stanje koje prethodi poruci xn, niti će izgubljene poruke utjecati na proces dekriptiranja.

Algoritam se bazira na upotrebi triju tablica: R, S i T. One sadrže 32-bitne vrijednosti, te se inicijalno popunjavaju uz pomoć 160 bitnog ključa K. Uz ključ potrebno je i odabrati vrijednost varijable x koja može biti u rasponu od 0 do 232-1. Da bi se tablice popunile pomoću ovih vrijednosti koristi se procedura iz algoritma SHA. U nastavku je detaljno opisan postupak generiranja tablica:

1. Odabrati vrijednost ulazne varijable x, 0 ≤ x < 232 2. Inicijalizacija 80 32-bitnih vrijednosti:

W = x 0

za i = 0 do 15: Wi = 0x00000000

za i = 17 do 79: Wi = ((Wi-3 XOR Wi-8 XOR Wi-14 XOR Wi-16)<< 1)

3. Inicijalizacija 5 radnih varijabli A, B, C, D, E. Ključ K se razbije u 5 32-bitnih dijelova: K = a1a2a3a4a5, A = a1, B = a2, C = a3, D = a4, E = a5.

26

Page 30: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

4. Definiraj nelinearne funkcije ft(X,Y,Z) i konstante Kt za u ovisnosti o koraku algoritma t: za t = 0 do 19: ft(X,Y,Z) = (X AND Y) OR (¬X AND Z), Kt = 21/2/4*232 = 0x5a827999 za t = 20 do 39: ft(X,Y,Z) = X OR Y OR Z, Kt = 31/2/4*232 = 0x6ed9eba1 za t = 40 do 59: ft(X,Y,Z) = (X AND Y) OR (X AND Z) OR (Y AND Z), Kt = 51/2/4*232 = 0x8f1bbcdc za t = 60 do 79: ft(X,Y,Z) = X OR Y OR Z, Kt = 101/2/4*232 = 0xca62c1d6

5. Pokreni algoritam: za t = 0 do 79:

TEMP = (A << 5) + ft(B,C,D) + E + Wt + KtE = D D = C C = B << 30 B = A A = TEMP

6. Izlaz je konkatenacija varijabli A, B, C, D i E, što je 160 bitni string: SHA(x) = A || B || C || D || E

7. Kako su za R, S i T tablice potrebne 32-bitne vrijednosti, definira se funkcija koja 160 bitni string prevodi u 32-bitne riječi: GAMMA(x) = Hii mod 5gdje je H

, 5j0 || H5j+11 | |H5j+22 || H5j+33 || H5j+44 = SHA(j),

za j = x/5 zaokružen na sljedeći cijeli broj.

8. Odrediti vrijednost L, koja predstavlja očekivanu duljinu ključnog niza. 9. Popuni tablice:

za i = 0 do 511: T[i] = F(i) za j = 0 do 255: S[j] = F(0x00001000 + j) Za m = 0 do 4*[(L-1)/8192]-1 : R[k] = F(0x00002000 + m).

Popunjavanje tablica je gotovo, te je sad moguće i pokrenuti proceduru za dobivanje keystream-a. Koriste se 4 32-bitna registra A, B, C i D, te 4 32-bitne vrijednosti n1, n2, n3 i n4. Vrijednost L je već zadan i predstavlja očekivanu duljinu keystream-a, odnosno označava trenutak kada će procedura završiti s radom, jer kada izlazna vrijednost, odnosno keystream k(n), dosegne duljinu L, procedura je obavila svoj posao.

1. Inicijalizacija: k(n) = prazan string, i = 0.

27

Page 31: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

2. Ponavljaj dok je k(n) < L : Inicijaliziraj A, B, C, D, n1, n2, n3, n4 u ovisnosti o vrijednostima n, i :

A = n XOR R[4i], B = (n >> 8) XOR R[4i+1], C = (n >> 16) XOR R[4i+2], D = (n >> 24) XOR R[4i+3]. temp = A AND 0x000007FC, B = B + T[temp/4], A = (A >> 9), temp = B AND 0x000007FC, C = C + T[temp/4], B = (B >> 9), temp = C AND 0x000007FC, D = D + T[temp/4], C = (C >> 9), temp = D AND 0x000007FC, A = A + T[temp/4], D = (D >> 9) n1 = D, n2 = B, n3 = A, n4 = C. temp = A AND 0x000007FC, B = B + T[temp/4], A = (A >> 9), temp = B AND 0x000007FC, C = C + T[temp/4], B = (B >> 9), temp = C AND 0x000007FC, D = D + T[temp/4], C = (C >> 9), temp = D AND 0x000007FC, A = A + T[temp/4], D = (D >> 9)

za t = 0 do 64:

temp = A AND 0x000007FC, B = B + T[temp/4], A = (A >> 9), B = B XOR A, temp2 = B AND 0x000007FC, C = C + T[temp/4], B = (B >> 9), C = C + B, temp = (temp + C) AND 0x000007FC, D = D + T[temp/4], C = (C >> 9),

28

Page 32: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

D = D XOR C, temp2 = (temp2 + D) AND 0x000007FC, A = A XOR T[temp2/4], D = (D >> 9), A = A + D, temp = (temp + A) AND 0x000007FC, B = B XOR T[temp/4], A = (A >> 9), temp2 = (temp2 + B) AND 0x000007FC, C = C + T[temp2/4], B = (B >> 9), temp = (temp + C) AND 0x000007FC, D = D XOR T[temp/4], C = (C >> 9), temp2 = (temp2 + D) AND 0x000007FC, A = A + T[temp2/4], D = (D >> 9), k(n) = k(n) || (B + S[4t-4]) || (C XOR S[4t-3]) || (D + S[4t-2]) || (A XOR S[4t-1]). ako je t neparan, tada: A = A + n1, C = C + n2 inače: A = A + n3, C = C + n4

Povećaj brojač: i = i + 1.

Prilikom osmišljavanja SEAL algoritma očito su važne ideje bile:

korištenje velikih, tajnih S kutija, alterniranje nekomutativnih aritmetičkih operacija, kao što su zbrajanje

i XOR, korištenje internog stanja koje se ne očitava u toku podataka

(zbrajanje registara A i C sa vrijednostima ni) korištenje različitih funkcija u ovisnosti o iteraciji

SEAL je jedan od najbržih programskih algoritama. Treba uzeti u obzir činjenicu da obrada ključa, odnosno popunjavanje S kutija (R, S i T) zahtjeva dosta vremena i memorije za pohranu.

4.2. WAKE WAKE (Word Auto Key Encryption) algoritam je razvio David Wheeler.

Algoritam kreira niz 32-bitnih riječi nad kojima se skupa s nizom izvornog teksta provodi operacija XOR da bi se dobio kriptirani tekst. U suprotnom smjeru, XOR

29

Page 33: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

operacije se vrši nad istim tokom generiranih riječi i kriptiranog teksta da bi se dobio originalni, izvorni tekst. U stvarnosti se radi o blok algoritmu koji djeluje u CFB načinu rada, odnosno blok algoritmu koji se ostvaruje kao samo-sinkronizirajući algoritam toka podataka. Da bi se generirala slijedeća riječ (32 bita) keystream-a koristi se prethodno generirana riječ kriptiranog teksta.

Algoritam koristi S kutije od 256 32-bitnih vrijednosti (256 riječi). Iako se radi o vrlo brzom algoritmu, bitno je znati da je potrebno utrošiti nešto vremena na kreiranje S kutija. S kutije su u ovisnosti o ključu, te je za svaki novi ključ potrebno ponovno generirati S kutije. S kutije posjeduju jedno karakteristično svojstvo: okteti sa najvišim indeksom su permutacije svih mogućih okteta, dok su tri posljednja okteta slučajne vrijednosti. Autor algoritma daje nepotpunu proceduru za popunjavanje S kutije, međutim svaki algoritam za kreiranje slučajnih vrijednosti i slučajnih permutacija može poslužiti.

Za kriptiranje/dekriptiranje potrebna su i 4 registra koja se inicijaliziraju pomoću ključa: a0, b0, c0, d0.

32 bitna riječ keystream-a Ki (i je redni korak algoritma) se generira na sljedeći način:

Ki = di

Kriptirana riječ Ci se dobije XOR operacijom između Ki i jasne riječi Pi: Ci = Ki XOR Pi

Nakon kreiranje jedne kriptirane riječi slijedi osvježavanje registara: ai+1 = M(ai, di)

bi+1 = M(bi, ai+1) ci+1 = M(ci, bi+1) di+1 = M(di, ci+1)

Funkcija M: M(x,y) = ((x + y) >> 8) XOR S(x+y) AND 255,

pri čemu je >> operacija logičkog posmaka u desno, a ne operacija rotacije. Najnižih 8 bitova x+y su ulaz u S kutiju.

Ostvarenje funkcije M je prikazana na slici 4.1., dok je cijeli proces kriptiranja prikazan na slici 4.2.

30

Page 34: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

+

+

+

+

8 bita (byte)

X4

Y4

X3

Y3

X2

Y2

X1

Y1

x, y

S box

8 bita (byte)

Z4

Z3

Z2

Z1

M(X,Y)

Slika 4.1. Unutrašnjost M funkcije WAKE algoritma

D

B

C

A

M

M

M

M

P C

K

Slika 4.2. Kriptiranje WAKE algoritmom.

31

Page 35: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

4.3. RC4 RC4 je algoritam za kriptiranje tijeka podataka koji koristi varijabilnu duljinu

ključa (1 – 256 bita). Razvio ga je Ron Rivest (RSA Date Security Inc.) 1987. godine.

Rad algoritma je jednostavan, dok se istovremeno postižu vrlo velike brzine kriptiranja. Algoritam koristi S kutiju od 256 polja, gdje je svako polje veliko 8 bita. Sadržaj S kutije su permutacije od 0 do 255, dok su permutacije funkcije varijabilnog ključa. Pripremanje S kutije se može prikazati sljedećim koracima:

1. Svaki element polja S se inicijalizira svojim indeksom: S[0] = 0, S[1] = 1, ..., S[254] = 254, S[255] = 255

2. Stvori se pomoćno polje S2 iste veličine te se popuni vrijednostima ključa K: S2[0] = K[0 % duljina_K] , S2[1] = K[1 % duljina_K], ..., S2[255] = K[255 % duljina_K]

3. S kutija poprima svoj konačni izgled na sljedeći način: za i = 0 , i < 256 , i++

j = ( j + S[i] + S2[i] ) % 255 ; temp = S[i] ; S[i] = S[j] ; S[j] = temp ;

S kutija će poslužiti za generiranje pseudoslučajnih brojeva, koji su neophodni za kriptiranje podataka:

i = j = 0; i = ( i + 1 ) % 256 ; j = ( j + S[i] ) % 256 ; temp = S[i] ; S[i] = S[j] ; S[j] = temp t = ( S[i] + S[j] ) % 256 ; K = S[t] ;

Za svaki ulazni znak koji se želi kriptirati potrebno je generirati novi pseudoslučajni broj. Kriptirani tekst se dobiva operacijom XOR između uvijek novo generiranog broja K i svakog ulaznog znaka. Dekriptiranje se obavlja inverznom procedurom, odnosno izvođenjem XOR operacije između generiranog broja K i kriptiranog teksta.

Organizacija za koju je algoritam osmišljen tvrdi da je RC4 otporan na diferencijalnu i lineranu kriptoanalizu, ne posjeduje kratke cikluse, te je u potpunosti nelinearan (RC4 se može nalaziti u jednom od 21700 mogućih stanja). S kutija se polako razvija sa upotrebom: varijabla i osigurava da se svaki element promijeni, dok varijabla j omogućuje da se elementi izmjenjuju pseudoslučajno.

32

Page 36: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

4.4. Solitaire Algoritam za kriptiranje Solitaire razvio je Bruce Schneier za potrebe knjige

"Cryptonomicon" Neala Stephensona. Radi se o prvom sigurnom ručnom algoritmu za kriptiranje. Algoritam može biti simuliran računalom, međutim dizajniran je tako da bude korišten ručno. Solitaire svoju sigurnost dobiva iz činjenice da promiješani špil karata nudi uvijek slučajno generirani niz karata. Upotrebom špila moguće je stvoriti niz slučajnih znakova koji se potom mogu kombinirati sa porukom koja se želi kriptirati. Iako je ostvarenje algoritma na vrlo niskom tehnološkom nivou, sigurnost koju pruža je na vrlo viskoj razini.

Solitaire je algoritam kriptiranja tijeka podataka koji radi u OFB načinu radu. Osnovna ideja je da Solitaire generira niz, keystream, brojeva od 1 do 26 (ako se radi o engleskoj abecedi). Za kriptiranje poruke potrebno je generirati niz iste duljine koliko poruka koja se želi kriptirati ima znakova. Kriptirana poruka se dobije zbrajanjem generiranog niza po modulu 26 sa izvornom porukom. Za dekriptiranje, isti generirani niz je potrebno oduzeti od kriptirane poruke znak po znak, ponovno po modulu 26.

Proces kriptiranja i dekriptiranja nije specifičan samo za Solitaire. Mnogi algoritmi tijeka podataka, a i blok algoritmi u OFB načinu rada kriptiraju i dekriptiraju na sličan način. Ono što je specifično samo za Solitaire, što je i slučaj kod većine algoritama, je način na koji se generira slučajan niz, odnosno keystream. Keystream se generira uz pomoć špila od 54 karte (52 karte i 2 jokera). Takav špil se može promatrati kao permutacija 54 elemenata. Nužno je da joker karte bude različite jedna od druge. Potrebno ih je označiti, jedan joker neka bude A, drugi B. Prvo što je potrebno učiniti je odrediti ključ. U solitaire-u ključ predstavlja inicijalni raspored karata u špilu. Kako je neophodno poznavati ključ, inicijalni raspored se mora učiniti ručno kartu po kartu. Sigurnost algoritma ovisi o sigurnosti ključa, i njegova kreacija je najvažnija operacija u cijelom postupku. Prilikom kreiranja ključa postoje detalji koji mogu olakšati i poboljšati postupak kreiranja ključa:

Nužno je koristiti identične špilove karata. Najbolji ključ je slučajno promiješani špil. Jedan od sudionika u razmjeni povjerljivih informacija slučajno generira inicijalni poredak miješajući špil, dok se drugi špil složi kartu po kartu kao prvi.

Ključ je moguće kreirati uz pomoć Bridge dijagrama, rasporeda karata u jednoj odigranoj partiji. Potrebno je samo dogovoriti kako bridge ruke iz dijagrama konvertirati u redoslijed karata, i nakon toga način smještanja jokera.

Inicijalni raspored karata moguće je odrediti korištenjem nekog izraza ili rečenice. I pošiljatelj i primatelj dijele isti izraz. Potrebno je započeti sa špilom sa redom poslaganim kartama, te započeti izvođenje koraka koji se koriste prilikom kriptiranja i dekriptiranja (koraci su navedeni u nastavku ovog poglavlja). Umjesto 5. koraka, ponovi se korak 4, ali ovaj put sa vrijednošću prvog slova tajnog izraza. Postupak se ponavlja dok se ne prođu sva slova tajnog izraza. Nakon što se

33

Page 37: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

provedu svi koraci karte će biti poredane kao ključ i kriptiranje/dekriptiranje može započeti. Bitno je napomenuti da izraz ne bi smio biti kraći od 64 znaka, dok je preporučljivo koristiti izraz od barem 80 znakova.

Prilikom generiranja niza potrebno je utvrditi neka pravila. Špil je okrenut prema gore, odnosno lica karata gledaju prema gore. Svaka karta ima jedinstvenu vrijednost s obzirom na svoju boju i broj. Uobičajeno je da se jačina boja slaže prema jačini boja u kartaškoj igri Bridge: tref, karo, herc, pik. Ukoliko je karta tref boje, njena vrijednost je upravo jednaka broju na karti, ukoliko je karta karo boje njena vrijednost je broj na karti uvećan za 13, kod herc boje vrijednost je broj na karti uvećan za 26, dok će kod pik boje vrijednost biti dobivena zbrajanjem sa 39. Oba jokera vrijede 53.

Proces dobivanja jednog znaka keystreama opisan je u sljedećim koracima: 1. Pronađi jokera A i premjesti ga jednu kartu prema dolje. Ukoliko je A

posljednja karta u špilu, premjesti je ispod prve karte od vrha. 2. Pronađi jokera B i premjesti ga dvije karte prema dolje. Ukoliko je B

posljednja karta u špilu, premjesti je ispod druge karte od vrha. Ukoliko je B pretposljednja karta u špilu, premjesti je ispod prve karte od vrha.

3. Izvedi trostruko presjecanje karata. Granice su upravo jokeri A i B. Karte iznad prvog jokera zamjeni sa kartama ispod drugog jokera. Karte između dva jokera ostaju u sredini, dok jokeri također ostaju na svojim mjestima.

4. Izvedi presjecanje špila na temelju vrijednosti posljednje karte poštujući prethodne napomene o vrijednosti pojedinih boja. Potrebno je od vrha izbrojati onoliko karata kolika je vrijednost posljednje karte. Sve odbrojane karte je sa vrha potrebno premjestiti na dno špila, ali ostaviti posljednju karta na posljednjem mjestu.

5. Pronađi izlaznu kartu koja će dati vrijednost jednog znaka keystreama. Potrebno je prebrojati onoliko karata kolika je vrijednost karte na vrhu. Zapiši kartu do koje se došlo nakon što se odbrojao određen broj karata. Nemoj ju ukloniti iz špila. To je jedna izlazna karta. Ukoliko je karta do koje se došlo odbrojavanjem joker, ne zapiši ništa i počni od prvog koraka. Bitno je napomenuti da ovaj korak ne mijenja stanje špila.

6. Pretvori izlaznu kartu u vrijednost. U ovom koraku nam nisu potrebne vrijednosti od 1 do 52 već samo od 1 do 26, stoga je način pretvaranja karte u vrijednost nešto drugačiji nego što je objašnjeno na početku. Poredak boja ostaje isti: tref, karo, herc, pik. Tref nosi vrijednosti od 1 do 13, karo od 14 do 26, herc ponovno od 1 do 13 i pik od 14 do 26.

7. Za svaki znak koji je potrebno kriptirati potrebno je izgenerirati jednu vrijednost u keystream-u. Ukoliko je keystram nije dovršen vrati se na prvi korak bez promjene redoslijeda karata (bez miješanja špila).

34

Page 38: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

Osnovno pravilo Solitaire-a, kao i svih algoritama koji djeluju u OFB načinu rada je da se dvije različite poruke ne smiju kriptirati istim ključem. Na taj način se ugrožava sigurnost sustava, jer ukoliko postoje dvije kriptirane poruke: A+K i B+K (gdje su A i B jasne poruke, dok je K keystream), oduzimanjem kriptiranih poruka istog ključa: (A+K) - (B+K) = A + K - B - K = A - B, dobije se poruka sa kombiniranim sadržajem originalnih nekriptiranih poruka bez učešća ključa. Kriptoanalitičarima je vrlo jednostavno odvojiti poruke A i B iz kombinirane poruke.

Kao i kod nekih algoritama toka podataka s OFB načinom rada, sustav se ne može oporaviti od pogreške. Ukoliko u jednoj operaciji dođe do pogreške, svi koraci nadalje, kao i svi znakovi koji tek trebaju biti kriptirani će biti kriptirani/dekriptirani krivo.

Iako Bruce Schneier tvrdi da je algoritam reverzibilan, neka istraživanja [13] tvrde da to nije slučaj, te da je izlaz algoritma pristran. Po provedenim istraživanjima isti izlaz se pojavljuje s učestalošću pojavljivanja 1/22.5, iako se očekuje da taj iznos bude oko 1/26.

4.5. A5 A5 je algoritam kriptiranja toka podataka namijenjen upotrebi u GSM

industriji. Izvan granica Sjedinjenih Američkih Država ovaj algoritam se smatra standardom za mobilne uređaje. Trenutno postoje tri inačice algoritma: A5/1, A5/2 i A5/3. A5/1 se originalnom i snažnijom verzijom u odnosu na A5/2. A5/2 je namjerno oslabljena inačica namijenjena upotrebi van Europe. A5/3 je najnovija inačica koja nije javno objavljena, ali je poznato da se bazira na KASUMI algoritmu (poglavlje 4.6).

Osnovna ideja algoritma se bazira na upotrebi tri posmična registra, R1, R2 i R3. Duljine tih registara su redom 19, 22 i 23. Iako se u stvarnosti radi o 32-bitnim registrima, koristi se samo pojedini dio svakog registra.

Algoritam u jednoj vremenskoj jedinici kriptira 8 bitova, odnosno jedan oktet, te je iz tog razloga nadolazeće podatke potrebno podijeliti u blokove odgovarajuće duljine. Ključ K koji služi za kriptiranje je duljine 64 bita, te je njegova vrijednost upravo jednaka zbroju duljina posmičnih registara. Rad algoritma i započinje upisom ključa u posmične registre. Upis počinje od najnižeg bita ključa na mjesto sa najvišim indeksom registra R1. Zbog lakše interpretacije moguće je ključ K podijeliti na 8 okteta: K0, K1, ..., K6, K7.

Rezultat ove procedure prikazan je slikom 4.3.

35

Page 39: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

19 bitova

8 bita 3 bita8 bita

K0 K1 K2

22 bita

8 bita 1 bit8 bita

K2 K3 K4

5 bitovaK5

8 bita 8 bita

K6 K7

23 bita

K5

7 bitova

R1

R2

R3

Slika 4.3. Popunjavanje registara ključem u A5 algoritmu

Nakon što je ključ upisan u registre može započeti kriptiranje podataka. Kriptirani oktet se ostvaruje XOR operacijom između okteta podataka i keystream-a čija je duljina također 8 bita.

Koraci kriptiranja su sljedeći: 1. Odredi 64 bitni ključ K 2. Zapiši ključ od najnižeg bita prema najvišem u registre R1, R2, R3

počevši od najviše pozicije 3. Za svaki oktet podataka :

ostvari keystream duljine jednog okteta, kriptirani oktet = ulazni oktet podataka XOR keystream oktet.

Glavni dio algoritma se odvija u procedurama koje ostvaruju keystream. Keystream se puni u osam koraka, pri čemu u svakom koraku dolazi do posmaka pomoćnog niza u lijevo i upisa jednog bita na najnižu poziciju. Nakon osam koraka oktet keystream-a je ostvaren, dok vrijednost pojedinog bita ovisi o trenutnom stanju posmičnih registara o čemu brine posebna procedura.

Važnu ulogu u proceduri imaju 9. bit registra R1, te 11. bitovi registra R2 i R3. Oni su označeni na slijedeći način: R1[9], R2[11], R3[11].

36

Page 40: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

Povratne funkcije svakog od registara su prikazane na slici 4.4.

XOR

R1

1318 17 16

XOR

1221 20 16

R2

XOR

182122 17

R3

Slika 4.4. Povratne funkcije posmičnih registara A5 algoritma

Na slici 4.4. je vidljivo da u povratnoj funkciji, koja je ostvarena XOR operacijom, u registru R1 sudjeluju 13, 16, 17 i 18 bit, kod R2 registra to su bitovi 12, 16, 20 i 21, dok u R3 registru u povratnoj funkciji sudjeluju bitovi 17, 18, 21 i 22.

Procedura koja određuje koji se bit upisuje na najnižu poziciju pomoćnog registra koji sadržava keystream je slijedeća:

1. Ako dva ili tri bita od R1[9], R2[11] i R3[11] imaju vrijednost 1, tada: kontrolni_bit = 1

2. ako kontrolni_bit == 1 ako R1[9] == 1 Y1 = R1[13] XOR R1[16] XOR R1[17] XOR R1[18] R1 << 1 R1[0] = Y1 ako R2[11] == 1 Y2 = R2[12] XOR R2[16] XOR R2[20] XOR R2[21] R2 << 1 R2[0] = Y2 ako R3[11] == 1 Y3 = R3[17] XOR R3[18] XOR R3[21] XOR R3[22] R3 << 1 R3[0] = Y3

inače ako R1[9] == 0

37

Page 41: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

Y1 = R1[13] XOR R1[16] XOR R1[17] XOR R1[18] R1 << 1 R1[0] = Y1

ako R2[11] == 0 Y2 = R2[12] XOR R2[16] XOR R2[20] XOR R2[21] R2 << 1 R2[0] = Y2

ako R3[11] == 0 Y3 = R3[17] XOR R3[18] XOR R3[21] XOR R3[22] R3 << 1 R3[0] = Y3

3. Izvrši XOR operaciju između sva tri registra Z = R1 XOR R2 XOR R3

4. Upiši bit na najnižoj poziciji Z[0] u pomoćni registar kao jedan bit keystream-a.

Za generiranje keystream-a koji je potreban za dekriptiranje, procedura je identična.

Više riječi o ovom algoritmu biti će u poglavlju koji se bavi sigurnošću u mobilnim komunikacijama.

4.6. KASUMI KASUMI je blok algoritam koji je usvojen od 3GPP udruženja (engl. 3rd

Generation Partnership Program) kao temelj nekoliko operacija u sigurnosnoj strukturi komunikacijskih mreža. U UMTS sustavima KASUMI je glavna komponenta f8 i f9 algoritama, koji služe za zaštitu povjerljivosti i provjeru integriteta. GEA3 (GPRS sustav) i A5/3 (GSM sustav) algoritmi imaju za svoju jezgru upravo KASUMI algoritam.

KASUMI posjeduje Feistel strukturu od osam koraka, radi s 64 bitnim blokovima podataka i 128 bitnim ključem K. Feistel struktura je struktura u kojoj se blok duljine n, dijeli na dva dijela duljine n/2: L i R. Definira se ponavljajući blok algoritam koji izlaz i koraka dobije kroz obradu izlaza i-1 koraka.

Li = Ri-1

Ri = Li-1 XOR f(Ri-1, Ki) Ki je ključ i koraka. U KASUMI algoritmu postoji više funkcija koje se koriste u koracima Feistel

strukture: FO, FL i FI. Funkcija FI je sastavni dio funkcije FO. Za svaku od ovih funkcija se iz ključa K generiraju posebni ključevi za svaku rundu: KOi, KIi, KLi.

Na slici 4.5. je prikazana struktura i komponente KASUMI blok algoritma.

38

Page 42: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

64

32 32

L0 R0

FOFL

KL1 KI1KO1

FOFL

KL2 KI2KO2

FOFL

KL8 KI8KO8

64

R8L8

32

16 16

KOi,1

FIi1 KIi,1

KOi,2

FIi2 KIi,2

KOi,3

FIi3 KIi,3

32

S9 S7

S9 S7

16

16

79

32

16

AND <<< 1

KLi1

<<< 1 OR

KLi2

32

Feistel struktura

Funkcija FO

Funkcija FI

Funkcija FL

KIij2

KIij1

Slika 4.5. Struktura KASUMI algoritma

KASUMI algoritam u neparnim koracima funkciju koraka računa koristeći FL funkciju, nakon koje slijedi FO funkcija. U parnim koracima FO funkcija prethodi FL funkciji. FL funkcija je 32 bitna funkcija koja koristi jednostavne operacije: logički AND, XOR i OR operaciju, te rotaciju u lijevo. FO funkcija je također 32 bitna funkcija koja ima Feistel strukturu od tri koraka. Svaki korak sadrži FI fukciju. FI funkcija je nelinearna funkcija koja sadrži dvije 9 bitne S kutije, i dvije 7 bitne S kutije. Nakon osam koraka, algoritam završava obradu jednog bloka, rezultirajući 64 bitnim kriptiranim blokom.

39

Page 43: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

5. Programsko ostvarenje algoritama Algoritmi A5, RC4 i Solitaire su ostvareni u programskom jeziku C. Sva tri

ostvarenja rade bez grafičkog sučelja te kao ulaz imaju dvije datoteke, a kao izlaz jednu datoteku. Za ulaz se koriste datoteku kljuc.dat koja sadrži zapis ključa, te ulaz.dat koja sadrži jasni tekst namijenjen kriptiranju.

To je ujedno i dio koji je zajednički za sva tri programa, učitavanje ulaznih podataka. Svaka program započinje čitanjem ključe, te potom jasnog teksta namijenjenog kriptiranju. Slijedi poziv samog algoritma te zapis rezultata, kriptiranog teksta u izlaznu datoteku izlaz.dat.

Sve implementacije su ostvarene kroz tri datoteke:

algoritam.h – definicije svih potrebnih funkcija, struktura i konstanti

algoritam.cpp – ostvarenje samog algoritma

main.cpp – učitavanje ulaznih podataka, poziv algoritma i zapis izlaza

U nastavku ovog poglavlja za svaki ostvareni algoritam su navedeni specifični detalji implementacije. U poglavlju 5.4. su prezentirani rezultati koje su implementacije algoritama ostvarile sa istim ulaznim podacima u svrhu međusobne usporedbe.

5.1. Programsko ostvarenje RC4 algoritma RC4 definira S kutiju sa 256 stanja. Iz tog razloga definirana je struktura

rc4_box, koja osim 256 stanja veličine jednog okteta (unsigned char), sadrži i dva okteta koji služe za pomoćno indeksiranje:

struct rc4_box { unsigned char stanje[256]; unsigned char x; unsigned char y; }

Kako inicijalno postavljanje S kutije ovisi o ključu, prije pokretanja algoritma, a nakon što se učita ključ, potrebno je pripremti S kutiju. U tu svrhu ostvarena je funkcija

prepare_box(unsigned char *, int, rc4_box *)

koja kao ulaz uzima ključ i njegovu duljine, dok je treći argument izlaz, a to pripremljena S kutija. U funkciji je ostvareno popunjavanje kutije na način opisan u poglavlju 4.3.

Nakon što je sve spremno, potrebno je pokrenuti algoritam kriptiranja, koji se pokreće pozivom funkcije

rc4(unsigned char *, int, rc4_box * )

Funkcija ima tri argumenta. Prvi argument je poruka koju je potrebno kriptirati, te je nakon završetka funkcije ovaj argument upravo i izlaz, odnosno

40

Page 44: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

kriptirani tekst. Drugi argument je veličina poruke, dok je treći argument prethodno pripremljena S kutija. Proces kriptiranja je ostvaren XOR operacijom između svakog ulaznog okteta sa slučajnim brojem dobivenim kroz rukovanje stanjima S kutije. Detalje kako se dolazi do slučajnog broja moguće je pronaći u poglavlju 4.3.

5.2. Programsko ostvarenje Solitaire algoritma Algoritam za kriptiranje koristi zbrajanje po modulu 26, a za dekriptiranje

oduzimanje po modulu 26. Program zato počinje s upitom korisniku da li se ulazni tekst kriptira ili dekriptira. To je učinjeno preko konzole i jednostavnog unosa slova 'k' za kriptiranje, odnosno 'd' za dekriptiranje. Također je u glavnom dijelu programa potrebno inicijalno rasporediti špil po učitanom ključu. Nakon što se obave pripreme, poziva se algoritam kroz modZbrajanje funkciju koja svaki ulazni znak zbraja ili oduzima sa slučajnim brojem koje algoritam generira u step funkciji:

for (i = 0; i < duljina_poruke; i++) izlazna_poruka[i] = (tip ? modZbrajanje(poruka[j], -step(deck)) : modZbrajanje(poruka[j], step(deck)))

modZbrajanje je funkcija u koja vraća zbroj po modulu 26, dok step funkcija vraća slučajno generirani broj, a ostvarenje je koraka detaljno opisanih u poglavlju. 4.4. U toj funkciji također se u koracima ostvaruju sve promjene u špilu koji se prenosi kao argument funkcije.

Osim upravo spomenute dvije funkcije, također postoji i pomoćna funkcija findit, koja vraća poziciju tražene karte u špilu.

5.3. Programsko ostvarenje A5 algoritma Za ostvarenje algoritma definirana je struktura koja sadrži sva tri registra, koji

su unsigned long tipa, što odgovara veličini od 32 bita. To je dovoljno za svaki od registara (najveći R3 je 23-bitni):

struct a5_regs { unsigned long r1, r2, r3; }

Kod ovog algoritma također je neophodno obaviti pripreme prije pokretanja kriptiranja. Pripreme se sastoje od zapisa ključa u registre algoritma. Ovaj dio posla se obavlja u funkciji a5_key

a5_key(a5_regs *, char *)

koja kao argumente uzima strukturu registara koji trebaju biti popunjeni, te ključ. Nakon što je ulazna poruka učitana, pokreće se kriptiranje:

a5(kljuc, poruka, duljina_poruke)

U funkciji se za svaki oktet poruke stvara oktet slučajnih brojeva, te se vrši XOR operacija. Drugi argument je ujedno i izlaz koji je potrebno upisati u izlaznu datoteku.

41

Page 45: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

for(i=0; i<duljina_poruke; i++) { for(j=0; j<8; j++) t = t<<1 | a5_step(a5_regs); poruka[i] ^= t;

Svaki oktet se popunjava bit po bit pozivom funkcije a5_step koja vraća bit dobiven izvršenjem svih koraka algoritma. Ti koraci su ostvareni na slijedeći način:

control=threshold(a5_regs->r1, a5_regs->r2, a5_regs->r3); a5_regs->r1=clock_r1(control, a5_regs->r1); a5_regs->r2=clock_r2(control, a5_regs->r2); a5_regs->r3=clock_r3(control, a5_regs->r3);

Threshold funkcija služi za računanje kontrolnog bita, dok su clock funkcije ostvarenje posmaka registara, ukoliko je to potrebno. Detalje je moguće pronaći u poglavlju 4.5. Konačno, bit koji je potreban za dobivanje slučajnog niza se ostvaruje XOR operacijom nad sva tri registra, te vraćanjem najmanje značajnog bita:

return((a5_regs ->r1 ^ a5_regs ->r2 ^ a5_regs ->r3) & 1)

5.4. Testiranje Testiranje je provedeno na dvije različite ulazne datoteke: veličine 100KB i

500KB. Mjereno je samo ono vrijeme koje je potrebno algoritmu da vrati kriptiranu poruku, odnosno bez zapisa u izlaznu datoteku.

Vrijeme se mjerilo pomoću poziva funkcije clock(), koja vraća broj otkucaja procesora. Preračunavanje u sekunde je obavljeno dijeljenjem dobivenog broja sa konstantom CLOCKS_PER_SEC. Konkretan dio kôda koji je zadužen za ovo je slijedeći:

lock_t start, finish; double duration; start = clock(); // pokretanje algoritma algoritam(...); finish = clock();

Za svaki algoritam i za svaku ulaznu datoteku mjerenje je pokrenuto 10 puta, te su prosječni rezultati prikazani u tablici 5.1.

42

Page 46: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

Algoritam / Ulaz 100 KB 500 KB

RC4 0.015 s 0.0406 s

A5 0.197 s 0.968 s

Solitaire 0.156 s 0.797 s

Tablica 5.1. Rezultati testiranja

Rezultati testiranja pokazuju donekle očekivane rezultate. Dok je brzina RC4 algoritma sasvim očekivana, ipak možda malo iznenađuje činjenica da je Solitaire odradio svoj posao brže od A5 algoritma. RC4 daje do 10 puta brže rezultate na manjoj datoteci, dok je na većoj datoteci ta brzina još izraženija. Opet je bitno podsjetiti da u testiranju RC4 algoritma nije uračunato vrijeme koje je potrebno da se popuni S kutija. Za isti ključ S kutija je uvijek ista, međutim, s promjenom ključa nužno je ponovno obraditi S kutiju, tako je potrebno uzeti u obzir da bi nešto vremena bilo potrošeno i na taj aspekt RC4 algoritma. Brzina RC4 algoritma je i jedna od njegovih najvećih kvaliteta, tako da ovi rezultati samo potvrđuju tu dobro poznatu odliku ovog algoritma.

43

Page 47: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

6. Mobilne komunikacije U mobilnim komunikacijama korisnik ostvaruje komunikaciju uporabom

pokretnog terminala bežičnim pristupom. Mreža se opisuje načinom transporta informacije, te inteligencijom obrade poziva i usluga. Poziv uključuje uspostavljanje, odvijanje i prekidanje veze između dvaju korisnika, ili korisnika i mreže. Usluge opisuju posebne i dodatne mogućnosti komuniciranja.

Za ostvarivanje pokretljivosti u javnoj mreži najvažniji je današnji opći pokretni komunikacijski sustav GSM (engl. Global System for Mobile Comunications), njegovo proširenje općim paketskim radijskim uslugama GPRS (engl. General Packet Radio Services ), te općim pokretnim telekomunikacijskim sustavom UMTS (engl. Universal Mobile Telecomunication System) koji je ujedno i predstavnik treće generacije pokretnih mreža. Posebna rješenja nude bežični aplikacijski protokol WAP (engl. Wireless Application Protocol) te Bluetooth norma.

Koncesije za UMTS sustave već su odavno prodane, ali konkretna rješenja se tek pojavljuju. Širom Europe GSM je prihvaćen kao norma i još neko vrijeme neće izaći iz upotrebe. Pod pojmom mobilnih komunikacija zapravo se još uvijek podrazumijeva GSM sustav. Stoga je razmatranje mobilnih komunikacija orijentirano uglavnom na GSM sustav.

6.1. Arhitektura GSM mreže GSM mreža pokriva područje radijskim signalom na ćelijskom načelu (engl.

Cellular). Ćelijom se naziva područje koje pokriva jedan radijski primopredajni sustav. Ovakva struktura je pogodna jer omogućuje dobru iskoristivost raspoloživih frekvencija. U susjednim ćelijama se koriste različite, a udaljenim ćelijama iste frekvencije. GSM je digitalni sustav u kojem se višestruki pristup ostvaruje u vremenskoj podjeli tako da je na svakoj od 124 frekvencija raspoloživo 8 kanala, ukupno 992. Korisnička informacija prenosi se prometnim kanalima, a upravljačka informacija posebnim kontrolnim kanalima.

GSM mreža se može podijeliti u 3 osnovna dijela: Korisnički terminal koji se uobičajeno naziva pokretnom stanicom

(engl. Mobile Station) – MS Sustav baznih stanica (engl. Base Station System) – BSS Mrežni i komutacijski sustav (engl. Network and Switching System) –

NSS Na slici 6.1. prikazana je osnovna struktura GSM mreže.

44

Page 48: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

ME

SIM

MS

BTS

BSC

MSCHLR

EIR AUC

VLR

GMSC

BSS

NSS

MS - pokretna stanica (Mobile Station)ME - pokretna oprema (Mobile Equipment)SIM - pametna kartica (Subscriber Identity Module)BSS - sustav baznih stanica (Base Station System)BTS - primopredajna bazna stanica (Base Transceiver Station)BSC - kontrolna bazna stanica (Base Station Controler)NSS - mrežni i komutacijski sustav (Network and Switching System )MSC - pokretni komutacijski centar (Mobile Switching Centre)GMSC - prilazni MSC (Gateway MSC)HLR - domaci lokacijski centar (Home Location Centre)VLR - gostujuci lokacijski centar (Visitor Location Centre)EIR - registar identifikacije opreme (Equipment Identity Register)AUC - centar za provjeru autenticnosti (Authentication Centre)

Slika 6.1. Arhitektura GSM mreže

6.1.1. Pokretna stanica Pokretna stanica, odnosno korisnički terminal, se sastoji od pokretne opreme

te pametne kartice nazvane SIM (engl. Subscriber Identity Module). Pametna kartica je ta koja omogućuje pokretljivost na korisničkom nivou. Korisnik ima pristup svim uslugama na koje se pretplatio bez obzira na opremu kojom se koristi.

Svaka pokretna operma posjeduje jedinstveni identifikacijski broj poznat pod nazivom IMEI (engl. International Mobile Equipment Identity). Radi se o broju od 15 znamenki koji služi za identifikaciju svakog pojedinog mobilnog uređaja unutar pojedine GSM mreže.

SIM kartice posjeduje također identifikacijski broj od 15 znamenki koja identificira korisnika unutar pojedine GSM mreže. Ovaj broj naziva se IMSI (engl. International Mobile Subscriber Identity). IMSI se sastoji od tri dijela:

kôd države (engl. Mobile Country Code) – MCC kôd mobilne mreže (engl. Mobile Network Code) – MNC identifikacijski broj pokretnog pretplatnika (engl. Mobile Subscriber

Identity Number) – MSIN Osim IMSI oznake, SIM kartica sadrži tajni ključ za enkripciju, implementacije

algoritma za autentifikaciju i algoritma za generiranje sjedničkih ključeva, te još neke dodatne informacije.

6.1.2. Sustav baznih stanica Sustav baznih stanica se sastoji od dva dijela, kontrolne bazne stanice, BSC

(engl. Base Station Controller) i primopredajne bazne stanice, BTS (engl. Base Transceiver Station). Jedan BSC upravlja s više BTS-ova koji sadrže antenski sustav. Područje pokrivanja radijskim signalom jednog BTS-a naziva se ćelija.

45

Page 49: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

Komunikacija se odvija preko standardiziranog sučelja koje omogućava operacije između komponenti različitih proizvođača.

6.1.3. Mrežni i komutacijski sustav GSM mreža sadrži prilazni pokretni komutacijski centar, GMSC (engl.

Gateway Mobile Switching Center), preko kojeg se povezuje s drugim mrežama i preko kojeg se pristupa GSM mreži. Tu su i pokretni komutacijski centri, MSC (engl. Mobile Switching Center). Oni povezuju GMSC i sustave baznih postaja.

Domaći lokacijski registar, HLR (engl. Home Location Register), sadrži sve podatke o domaćim, vlastitim, pretplatnicima i uslugama koje koriste te o njihovoj trenutnoj lokaciji, ukoliko je ona poznata. Po GSM mreži postoji jedan HLR, iako on može bit ostvaren kao distribuirana baza podataka.

Gostujući lokacijski registar (lokacijski registar posjetitelja), VLR (engl. Visitor Location Register), sadrži podatke o pretplatnicima koji su trenutno u lokacijskom području dotičnog MSC-a. Podatke o trenutnoj lokaciji pretplatnika VLR dojavljuje HLR-u njegove domaće mreže. Iako se ovaj entitet može ostvariti odvojeno, većina proizvođača komutacijske opreme implementira VLR zajedno s MSC-om.

HLR i VLR, uz MSC ostvaruju usmjeravanje poziva i roaming sposobnosti unutar GSM mreže.

Centar za provjeru autentičnosti, AUC (engl. Authentication Center), sadrži autentifikacijski ključ s kojim se provjerava pretplatnik pri svakom pozivu. Registar identifikacije opreme, EIR (engl. Equipment Identity Register), je baza podataka koja sadrži informaciju o cjelokupnoj valjanoj opremi unutar mreže, te da li se oprema zaista nalazi u vlasništvu pretplatnika.

6.2. Ostvarivanje usluga unutar GSM mreže

6.2.1. Pretplata Prigodom zasnivanja pretplatničkog odnosa u HLR se zapisuju međunarodna

identifikacija pokretnog pretplatnika, IMSI, pozivni broj pokretne postaje, MSISDN, autentifikacijski ključ, Ki te popis usluga i mogućnosti kojim raspolaže pretplatnik (uslužni profil). Autentifikacijski ključ Ki je 128-bitni broj koji služi kao tajni ključ koji se dijeli između MS-a i HLR-a. Radi se o jednoznačnom autentifikacijskom ključu koji omogućuje provjeru pretplatnika prije poziva. Ukoliko se ključevi ne podudaraju poziv se odbacuje.

U MS se stavlja modul pretplatničkog identiteta, SIM, koji sadrži IMSI i Ki. MS je zaštićen osobnim identifikacijskim brojem, PIN-om (engl. Personal Identity Number), koji služi za uključivanje stanice. Odblokiravanje SIM-a nakon tri pogrešna unosa PIN-a provodi se s ključem za odblokiravanje, PUK (engl. Personal Unblocking Key).

Serijski broj MS-a upisuje se u EIR kako bi se mogla provesti provjera identiteta opreme. EIR je opcijska mogućnost GSM-a.

46

Page 50: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

6.2.2. Uključivanje Mreža nadzire uključivanje i isključivanje MS-a. Nakon uključivanja, otkriva se

u kojoj se ćeliji MS trenutno nalazi, provjerava se autentičnost i identitet opreme, te se u VLR-u registrira lokacijska informacija. Nakon toga, VLR obavještava domaći HLR o lokaciji pretplatnika. Na ovaj način se mreža unaprijed priprema za pozive, jer će znati odakle može krenuti odlazni poziv, odnosno kamo treba usmjeriti dolazni poziv. Registracija se obnavlja periodički, te kod promjene lokacije. Mreža može tražiti MS tako da ga pozove i čeka odziv. Isključivanjem MS gubi se lokacijska informacija i MS prestaje biti dostupan.

6.2.3. Kretanje korisnika Lociranjem se naziva postupak kojim se uključeni MS prebacuje iz jedne

ćelije u drugu. Kriterij je kvaliteta signala, tj. odnos signal/šum. Ukoliko je neko područje pokriveno s više GSM mreža, MS će odabrati onu s najboljom kvalitetom signala. Stoga je tehničko rješenje sustava baznih postaja važno za “privlačenje” gostujućih pretplatnika. Svaki započeti poziv mora se nastaviti pri promjeni kanala, odnosno ćelije. MS može ostvariti komunikaciju u vlastitoj (domaćoj) mreži i u drugim mrežama s kojima je operator domaće mreže sklopio ugovor o kretanju.

6.2.4. Odlazni i dolazni pozivi Odlazni poziv se u koracima ostvaruje na sljedeći način:

MS traži kanal, provjera autentičnosti (AUC) i identiteta opreme (EIR), prospajanje poziva BTS – BSC – MSC – GMSC – druga mreža, kriptografska zaštita tijekom prijenosa.

Kod dolaznog poziva procesi koji se odvijaju su sljedeći: GMSC od HLR-a traži lokacijsku informaciju (MSC/BSC) za MS, HLR i VLR izmjenjuju podatke o pozvanom MS-u, MSC prenosi svim BSC (BTS) zahtjev za pozivanjem dotičnog MS-a, provjera autentičnosti (AUC) i identiteta opreme (EIR), prospajanje, kriptografska zaštita tijekom prijenosa.

6.3. GSM radio sučelje Radio sučelje je sučelje između pokretne stranice i fiksne infrastrukture te se

smatra jednim od najvažnijih sučelja u GSM mreži. Roaming usluga je vrlo bitna usluga koju nude GSM mreže. Ona je jedan od

bitnijih razloga dobro i kompletno definiranog radio sučelja. Tek uz potpuno definirano radio sučelje biti će moguće ostvariti kompatibilnost pokretnih stanica s mrežama različitih proizvođača i operatera.

47

Page 51: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

6.3.1. Frekvencijsko područje Za GSM sustav rezervirana su dva frekvencijska područja, svaki širine 25

MHz: 890 – 915 MHz je rezervirano za prijenos podataka od pokretne

stanice prema baznoj stanici (engl. uplink direction) 935 – 960 MHz je rezervirano za prijenos podataka od bazne stanice

prema pokretnoj stanici (engl. downlink direction) Ove frekvencijska područja nisu u potpunosti slobodna u svim zemljama.

Razlog tome je prethodno postojanje starijih analognih sustava na ovim frekvencijama.

6.3.2. Pristup višestrukoj podjeli Pristup višestrukoj podjeli definira kako različite istovremene veze, između

različitih pokretnih stanica lociranih u različitim ćelijama, dijele GSM radio spektar. Pristup koji se koristi u GSM sustavu je spoj višestrukog pristupa u vremenskoj podjeli TDMA (engl. Time Division Multiple Access) i višestrukog pristupa u frekvencijskoj podjeli FDMA (engl. Time Division Multiple Access), koji su kombinirani sa promjenom frekvencije (engl. frequency hopping).

U FDMA pristupu, korisniku se dodijeljuje frekvencija. Što je veći broj korisnika u FDMA sustavu, to je potreban veći broj dostupnih frekvencija. Ograničenje radio spektra i činjenica da korisnik ne oslobađa frekvenciju sve dok mu nije potrebna, objašnjava zašto broj korisnika u FDMA sustavima brzo doseže svoj maksimum.

U TDMA sustavu više korisnika dijeli isti kanal. Svaki od korisnika koji dijeli kanal dobija svoj vremenski snop (engl. Burst) unutar vremenskog okvira (engl. Frame).

U GSM sustavu, područje od 25 MHz-a se dijeli, koristeći FDMA pristup, na 124 noseće frekvencije koje su međusobno podijeljene područjem od 200 KHz-a. Područje od 25 MHz-a se može podijeliti na 125 nosećih frekvencija, ali prva noseća frekvencija je rezervirana i služi kao granica između GSM područja i usluga koje rade na nižim frekvencijama. Svaka noseća frekvencija se još vremenski dijeli koristeći TDMA pristup. Ovaj pristup dijeli radio kanal, širine 200 KHz-a, na vremenske okvire trajanja 4.615 ms. Svaki okvir je podijeljen na 8 manjih snopova, bursts, trajanja 0.577 ms. Svaki od tih snopova se tek tada dodjeljuje jednom korisniku.

U ovakvom sustavu pojam kanala odgovara pojavi točno određenog snopa unutar vremenskog okvira. Definiran je frekvencijom i pozicijom svojeg snopa unutar vremenskog okvira. U GSM sustavu razlikuje se dvije vrste kanala: prometni kanali za prijenos podataka, i kontrolni kanali za prijenos raznih vrsta kontrolnih poruka.

Promjene frekvencije tijekom trajanja veze su uvedene da bi se izbjegla primjetna razlika u kvaliteti različitih kanala. Ove promjene frekvencije se

48

Page 52: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

događaju sa svakim TDMA okvirom, te služe i za smanjene interferencija između kanala. Iako promjene frekvencije mogu biti vrlo korisne za sustav, bazna stanica ih ne mora nužno podržavati. S druge strane, mobilna stanica mora prihvatiti promjene frekvencije kad bazna stanica tako odluči.

6.3.3. Pretvaranje informacije u radio valove Na slici 5.2. prikazan je redoslijed operacija koje se izvršavanja prilikom

pretvaranja govora u radio valove.

Kodiranjegovora

Kodiranjekanala

Preplitanjebitova

Slaganjesnopova Kriptiranje Modulacija

Slika 6.2. Redoslijed operacija pri pretvaranju govora u radio valove

Prilikom vraćanja govora iz radio valova redoslijed operacija je obrnut. Ukoliko su izvor informacija podaci, a ne govor, kodiranje govora se ne obavlja.

Prilikom kodiranja govora, analogni podaci se pretvaraju u digitalni oblik. Pritom moraju biti zadovoljeni sljedeći uvjeti:

dobra kvaliteta govora, smanjenje redundancije u zvuku glasa, ne prevelika kompleksnost, s ciljem manjih troškova.

U GSM sustavu kodek za kodiranje govora je RPE-LTP (engl. Regular Pulse Excitation Long-Term Prediction). Ovaj kodek koristi informaciju iz prethodnih uzoraka da bi se predvidio trenutni uzorak.

Kodiranja kanala dodaje redundantne bitove u originalnu informaciju. Cilj ovog postupka je detekcija i, ukoliko je to moguće, ispravak pogrešaka koje su nastale prilikom prijenosa. Kodiranje kanala se odvija različito za podatkovne i kontrolne kanala. Više o ovoj temi moguće je pronaći u [4].

Preplitanje bitova razmješta skupinu bitova na unaprijed definirani način. Preplitanjem se poboljšava kvaliteta mehanizama za korekciju pogrešaka. Ovim postupkom dolazi do rasipanje pogreške čime se smanjuje vjerojatnost gubitka cijelih snopova tijekom prijenosa. Što su pogreške manje koncentrirane to ih je lakše ispraviti. Kao i kod kodiranja kanala, i preplitanje bitova se provodi drugačije za kontrolne i podatkovne kanale.

Proces slaganja snopova je zadužen za grupiranje bitova u snopove. O načinu provođenja ove operacije može se pročitati u [4].

Kriptiranje se koristi za zaštitu podataka. Sjednički ključ se izračunava algoritmom A8, dok se A5 algoritmom podaci kriptiraju. Više o tome moguće je pročitati u poglavlju 5.4.

49

Page 53: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

Za modulaciju se koristi modulacijski postupak GMSK (engl. Gaussian Minimum Shift Keying). Cilj nije detaljno opisati GMSK modulaciju, jer se radi o kompleksnom postupku koji zahtjeva previše matematičkih koncepata, već je samo osnovna ideja ove modulacije prikazan na slici 6.3.

SIN

COS

GaussfilterIntegracija

X

X

cos wt

sin wt

cos(wt + f)

Slika 6.3. GSMK modulacija

6.4. Sigurnost GSM sustava Sigurnost i autentifikacijski mehanizmi ugrađeni u GSM čine ga puno

sigurnijim standardom u odnosu na analogne sustave. Jedan od razloga je i korištenje algoritama za kodiranje govora, modulacijskog postupka GMSK (engl. Gaussian Minimum Shift Keying), te višestruki pristup u vremenskoj podjeli, TDMA (engl. Time Division Multiple Access). Za rekonstruiranje ovakvog signala potrebna je specijalizirana i vrlo skupa oprema. Uz dodatak autentifikacije i kriptografskih sposobnosti, razgovor putem GSM mreže je osiguran čak i protiv najupornijih uljeza. Bez obzira na sve pokušaje zaštite, slabosti ipak postoje. O njima se raspravlja u poglavlju 6.4.5.

Sigurnosne usluge koje GSM pruža su: anonimnost – zaštita identiteta korisnika, autentifikacija – provjera identiteta korisnika sa svrhom ispravne

naplate, zaštita signala – povjerljive informacije koje putuju radio signalom su

zaštićene, zaštita korisničkih podataka.

Pretplatnik se jedinstveno identificira pomoću IMSI oznake. IMSI i tajni ključ pretplatnika čine povjerljive identifikacijske podatke. Dizajn GSM autentifikacije i enkripcije je takav da se osjetljivi podaci nikada ne šalju radio kanalom. Za autentifikaciju se koristi challenge-response mehanizam, dok se razgovor kriptira pomoću privremenog, slučajno generiranog ključa Kc. Za identifikaciju MS-a koristi se privremena oznaka identiteta mobilnog korisnika, TMSI (engl. Temporary Mobile Subscriber Identity), koji se dodjeljuje MS-u od strane mreže nakon što je autentifikacija uspješno obavljena.

Sigurnosni mehanizmi GSM-a su implementirani u tri različita elementa sustava:

50

Page 54: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

SIM kartici, koja sadržava IMSI, Ki, algoritam za generiranje kriptografskog ključa A8, autentifikacijski algoritam A3, te PIN.

GSM mobilnom uređaju odnosno MS-u, koji u sebi ima pohranjen algoritam za kriptiranje A5.

GSM mreži, u sklopu koje se nalaze svi algoritmi potrebni za enkripciju (A3, A5, A8). Autentifikacijski centar, AUC, sadrži baze podataka identifikacijskih i autentifikacijskih podataka svih pretplatnika: IMSI, TMSI, Ki.

Da bi autentifikacijski i sigurnosni mehanizmi u potpunosti funkcionirali, sva tri elementa su neophodna. Ovakva podjela sigurnosnih podataka i kriptografskih algoritama pruža dodatnu mjeru sigurnosti.

Na slici 6.4. je prikazana distribucija svih nužnih sigurnosnih mehanizama i podataka podijeljena između tri upravo spomenuta elementa. Unutar GSM mreže podaci se dalje dijele između autentifikacijskog centra, domaćeg lokacijskog centra i gostujućeg lokacijskog centra. AUC je zadužen za generiranje setova RAND, SRES i Kc koji se potom pohranjuju u HLR i VLR. RAND je 128-bitni slučajno generirani broj od strane mreže u svrhu challenge-response procedure. SRES je 32-bitni odgovor na RAND, dok je Kc ključ za jednu sjednicu.

AUC

BSMSC

SIM

A3, A8, IMSI, Ki, PIN

MS

A5

A5, TMSI, IMSI, Ki

VLR

HLR RAND, SRES, Kc

A3, A8, IMSI, Ki

RAND, SRES, Kc

Slika 6.4. Distribucija sigurnosnih mehanizama u GSM sustau

6.4.1. Autentifikacija Sve potrebne operacije tijekom autentifikacije se odvijaju unutar SIM kartice,

čime se postiže veći stupanj sigurnosti. Autentifikacijski koncept unutar SIM kartice je prikazan na slici 6.5.

51

Page 55: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

Ki (128 bit)

SIMRAND (challenge) (128 bit)

A3/A8

SRES (32 bit)

Kc (64 bit)

Slika 6.5. SIM autentifikacijski koncept

Niti u jednom trenutku povjerljive korisničke informacije, kao što su Ki i IMSI, ne napuštaju SIM karticu.

Autentifikacija korisnika u GSM mreži se odvija kroz upotrebu challenge-response mehanizma. Pokretna stanica pokušava uspostaviti vezu, i šalje svoj identitet u obliku IMSI vrijednosti, što se pokušava izbjeći, ili TMSI (engl. Temporary Mobile Subscriber Identity) vrijednost. 128-bitni slučajno generirani broj RAND se od strane mreže šalje MS-u. MS izračunava 32-bitni odgovor SRES pomoću algoritma A3 uz upotrebu korisničkog ključa Ki. A3 je jednosmjerna hash funkcija koja iz 128-bitnog niza generira jednoznačni 32-bitni niz. Tijekom pokretanja A3 algoritma, pokreće se i A8 algoritam za izračunavanje sjedničkog kljuca Kc. Mreža također vrši izračunavanje SRES vrijednosti upotrebom ključa Ki onog korisnika koji pokušava uspostaviti vezu. Autentifikacijski ključ korisnika, Ki, se nikada ne prenosi radio valovima. On je pohranjen u pretplatnikovoj SIM kartici te bazama podataka GSM mreže. Ako se primljena SRES vrijednost podudara s onom koju je mreža izračunala, MS je uspješno autentificiran. U slučaju nepodudaranja dvije vrijednosti, mreža može odlučiti da ponovi postupak, ovaj put s IMSI vrijednošću ukoliko je u prvom slučaju pokušaj autentifikacije proveden pomoću TMSI vrijednosti. Ako i to ne uspije veza se prekida i MS se obavještava o neuspjeloj autentifikaciji.

Na slici 6.6. prikazan je autentifikacijski proces.

BSMS

RAND

SRES1 = A3(RAND) SRES2 = A3(RAND)

SRES1 = SRES2 ?

Slika 6.6. Proces autentifikacije u GSM mreži

A3 algoritam se ne odnosi na točno definirani algoritam, već na algoritam koji je od strane operatera ostvaren za autentifikaciju. Najuobičajenija ostvarenja A3

52

Page 56: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

algoritma su COMP128-1 i COMP128-2. Oba ova algoritma zapravo služe i kao A3 i kao A8 algoritam, te se odvijaju istovremeno.

6.4.2. Zaštita signala i podataka Unutar SIM kartice koristi se A8 algoritam za generiranje sjedničkih ključeva

Kc. Algoritam se pokreće istovremeno sa A3 algoritmom tijekom autentifikacije. 64-bitni Kc se izračunava uz pomoć RAND vrijednosti, te autentifikacijskog ključa pretplatnika Ki, slika 6.7.

RAND (challenge) (128 bit)

A8Ki (128 bit)

Slika 6.7. Algoritam A8

Kc se koristi za kriptiranje i dekriptiranje podataka između MS-a i BS-a. Moguće je postići dodatan stupanj sigurnosti ostvarenjem promjene ključa u pravilnim intervalima, što sustav čini otpornijim na potencijalne napade. Na slici 6.8. prikazan je proces dobivanja ključa Kc.

BSMS

RAND

Kc = A8(RAND) Kc = A8(RAND)

Slika 6.8. Generiranje sjedničkog ključa Kc

Sjednički ključ Kc služi za inicijalno postavljanje algoritma za kriptiranje A5. Isti ključ je potreban da bi se podaci dekriptirali, slika 6.9.

BSMS

A5A5

Kc Kc

kriptirani tekst

53

Page 57: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

Slika 6.9. Kriptiranje

Za stvaranje niza bitova nad kojima se zajedno s izvornim podacima provodi operacija XOR služi algoritam A5, koji je već detaljno obrađen u poglavlju 4.5. Trenutno postoje 3 verzije ovog algoritma A5/1, A5/2 i A5/3. A5/2 je namjerno oslabljena verzija A5/1 algoritma. A5/3 je dodan 2002. godine, te se bazira na Kasumi algoritmu definiranom od strane 3GPP-a (engl. 3rd Generation Partnership Project).

6.4.3. Anonimnost Jedan od glavnih ciljeva GSM sigurnosti je izbjegavanje slanja IMSI

vrijednosti u jasnom obliku putem radio valova, kako bi se izbjeglo da uljez identificira koji su korisnici bili u području, i kojim uslugama su se služili. Ovo se ostvaruje adresiranjem pokretnih stanica pomoću TMSI (engl. Temporary Mobile Subscriber Identity) vrijednosti, koja je valjana samo na određenim lokacijama.

TMSI se obnavlja barem prilikom svake procedure obnavljanja lokacije. TMSI se također može promijeniti u bilo kojem trenutku od strane mreže. Kad god je to moguće TMSI se šalje u kriptiranom obliku.

TMSI vrijednost se pohranjuje na SIM karticu, kako ne bi bila izgubljena prilikom isključivanja pokretne stanice.

Inicijalno pokretna stanica nema TMSI, te se mora adresirati pomoću IMSI vrijednosti. Nakon što započne kriptiranje alocira se inicijalni TMSI. VLR koji kontrolira lokaciju u kojoj je TMSI valjan održava vezu između TMSI i IMSI vrijednosti, tako da novi VLR (ako pokretna stanica promijeni lokaciju) može doznati od prijašnjeg VLR-a kome je TMSI vrijednost pripadala.

6.4.4. Ostvarenja A3 i A8 algoritama u GSM sustavu Dizajn GSM sustava omogućava operateru da proizvoljno odabere algoritam

za A3 i A8. Velika većina se odlučuje za algoritam razvijen u tajnosti od strane GSM asocijacije, COMP128.

COMP128 je s vremenom postao dostupan javnosti, te su otkrivene ozbiljni nedostaci. Neki GSM operateri su prebacili svoje sustave na novije A3/A8 implementacije, COMP128-2, koji je također razvijen u tajnosti. Za sada se čini da je ovaj algoritam uklonio slabosti originalnog COMP128 algoritma. S vremenom, kada algoritam bude otkriven, moguće je da se ponovno otkriju neki novi nedostaci. Također postoji i COMP128-3, koji se razlikuje od verzije 2 samo po tome što generira svih 64 bita Kc ključa, čime se postiže maksimalna potencijalna snaga A5 algoritma. Naime, COMP128-2 postavlja 10 najmanje značajnih bitova ključa Kc na vrijednost 0, čime se uvelike oslabljuje A5 algoritam.

6.4.5. Propusti Postoji nekoliko propusta u dizajnu sigurnosnog modela GSM-a koji mogu

dovesti do kompromitiranja cjelokupnog sustava.

54

Page 58: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

mreža se ne autentificira korisniku – Autentifikacijska procedura ne zahtjeva od mreže da ona dokaže poznavanje Ki ključa, ili bilo kojeg drugog autentifikacijskog konteksta. Uljez može osposobiti lažnu baznu stanicu sa istim kôdom mobilne mreže. Kako inicijalizacija autentifikacijske procedure ovisi o diskreciji i politici mreže, lažna mreža može odabrati da se autentifikacija uopće ne provodi, ili da pošalje RAND vrijednost i ignorira odgovor. Također je moguće da se ne aktivira kriptiranje. Pretplatnik u ovakvom slučaju ostvaruje pozive i poruke ne znajući da su one presretane korištenjem man-in-the-middle napada.

uobičajene implementacije A3/A8 algoritma sadrže usko grlo – COMP128 sadrži ozbiljan propust koji uz poznavanje dovoljno RAND vrijednosti može značajno ubrzati proces otkrivanja Ki ključa. U drugom koraku algoritma postoji usko grlo koje omogućuje provođenje collision napada [1]. Ki ključ je moguće doznati uz poznavanje 217 RAND vrijednosti.

uobičajene implementacije A3/A8 algoritma smanjuju efektivnu duljinu Kc ključa – pri generiranju 64 bitnog ključa Kc, 10 najmanje značajnih bitova se postavlja na vrijednost 0. Efektivna snaga algoritma za kriptiranje se smanjuje na 54 bita, bez obzira na to koji algoritam se koristi. COMP128-2 također posjeduje ovu ranjivost.

povjerljivost mehanizma za provjeru identiteta sadrži propust – ukoliko mreža izgubi zapis o određenoj TMSI vrijednosti, te stoga ne zna o kojem korisniku se radi, ona mora upitati korisnika za njegov IMSI. U ovom slučaju IMSI se mora radio valovima poslati u jasnom obliku. Na ovaj način i napadač s lažnom baznom stanicom može doći do IMSI vrijednosti pretplatnika, jer je korisnik obavezan odgovoriti na zahtjev provjere identiteta.

podaci se kriptiraju nakon zaštite od pogreške – nizu podataka se zbog lakšeg otkrivanja pogreške dodaju redundantni bitovi. Ovime se povećava količina podataka za prijenos. Kriptiranje u GSM sustavu nastaje nakon što su ovi bitovi umetnuti, što znači i da se sa redundantnim nizom također obavlja operacija XOR. Poznati uzorci redundantnih nizova mogu pomoći u kripto-analitičkim napadima.

6.5. Mjere poduzete za poboljšanje sigurnosti Specifikacije GSM norme nisu konačne. Norma je doživjela mnoge revizije i

promjene, te i danas evoluira u tehnologije treću generacije kao što je UMTS. U posljednjim verzijama normi, naročito UMTS-a, doneseni su mnogi noviteti koji se odnose upravo na poboljšanje sigurnosti i propuste koji su spomenuti u prethodnom poglavlju. Mjere koje sustave mobilnih komunikacija čine sigurnijim su predstavljene u nastavku ovog poglavlja.

55

Page 59: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

6.5.1. Novije ostvarenja A3/A8 algoritama Kao što je i ranije spomenuto, predstavljene su novije implementacije A3/A8

algoritma. Ovdje se misli na COMP128-2 i COMP128-3. Za sada ovi algoritmi funkcioniraju uspješno, ali jedan od razloga je i taj što su razvijeni u tajnosti. COMP128-2 i dalje posjeduje slabost postavljanja 10 bitova ključa Kc na vrijednost 0, dok je COMP128-3 isti algoritam ali bez ove slabosti. Tek s njim se uistinu dobije 64 bitni ključ Kc.

COMP128-2 i COMP128-3 su zaustavili kloniranje SIM kartica te su učinili otkrivanje Ki ključa vrlo teškim.

6.5.2. A5/3 kriptiranje U GSM sustavu su do nedavno korišteni samo A5/1 i A5/2 algoritmi. 2002.

godine GSM je uveo puno snažniji A5/3 algoritam, koji se bazira na Kasumi algoritmu, algoritmu za enkripciju u UMTS sustavima. Još uvijek vrlo malen broj operatera i terminala podržava ovaj novi algoritam.

6.5.3. UMTS/GPRS kriptiranje prije zaštite od pogreške U GPRS sustavima kriptiranje se obavlja na višim nivoima protokolnog stoga,

te se stoga umetanje bitova za zaštitu od pogrešku događa nakon enkripcije. Slično se i u UMTS sustavima kriptiranje obavlja na stogu koji je iznad stoga u kojem se obavlja zaštita od pogreške.

6.5.4. UMTS mreža se autentificira korisniku U UMTS sustavu se mogućnost da napadač imitira mrežu uklanja kroz

autentifikacijsku proceduru koja se obavlja u dva smjera. Procedura kojom se mobilni korisnik autentificira mreži je ostala nepromijenjena u odnosu na GSM sustav, dok u UMTS sustavu mreža uz RAND vrijednost odašilje i autentifikacijsku oznaku AUTN. AUTN se sastoji od rednog broja kriptiranog uz pomoć RAND vrijednosti i ključa Ki. Tek kada uspješno prođe i autentifikacija mreže korisniku, veza se uspostavlja.

SIM kartica prati redne brojeve koji se koriste kako bi se izbjegla mogućnost da napadač ponavlja ispravnu autentifikacijsku oznaku. Isti redni broj ne može biti iskorišten dva puta, nego uvijek mora biti noviji.

6.5.5. UMTS sigurniji algoritmi u autentifikaciji Autentifikacija i generiranje ključa se u UMTS sustavu također odvija na SIM

kartici i autentifikacijskom centru mreže. U UMTS sustavu se u autentifikacijskom procesu koristi više algoritama sa snažnijim ulazima. Algoritmi i dalje djeluju sa tajnim 128-bitnim ključem K, koji je poznat samo SIM kartici i AuC centru.

Algoritmi koji se koriste za proces autentifikacije u UMTS sustavima su sljedeći:

56

Page 60: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

f1 – algoritam za generiranje autentifikacijske oznake koja se koristi za autentificiranje mreže pokretnoj stanici,

f2 – algoritam za generiranje XRES vrijednosti, odgovora na 128 bitne ulaze K i RAND,

f3 – algoritam za generiranje 128 bitnog ključa za kriptiranje Kc, f4 – algoritam za generiranje 128 bitnog ključa IK za provjeru

integriteta (engl. Integrity Key), ključ koji služi za potpis kontrolnih radio poruka,

f5 – algoritam za generiranje 128 bitnog autentifikacijskog ključa, ključa za kriptiranje rednog broja koji se šalje pokretnoj stanici.

57

Page 61: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

7. Simulacija sigurnosnog sustava Ideja simulacije sigurnosnog sustava GSM mreže je prikazati korak po korak

proces uspostave poziva i proces zaštite podataka, odnosno kriptiranja. Simulacija se odnosi na dio komunikacije između pokretne stanice koja pokušava uspostaviti vezu i bazne stanice koja prima podatke. Kompletan prijenos glasa u digitalne podatke je izostavljen, jer se simulacija koncentrira samo na dio autentifikacije i zaštite podataka.

Prilikom prijenosa podataka u komunikaciji između dvije pokretne stanice, proces kriptiranja/dekriptiranja se ponavlja 4 puta. Podaci se kriptiraju pri odlasku iz pokretne stanice, dekriptiraju se prilikom njihovog primitka na baznoj stanici, ponovno se kriptiraju kad dođu do bazne stanice koja je zadužena za korisnika koji prima podatke, i dekriptira prilikom konačnog primitka na odredištu. Ovaj proces je prikazan na slici 7.1.

BS

KriptiranjeKc (A)

DekriptiranjeKc (A)

BS

KriptiranjeKc (B)

DekriptiranjeKc (B)

Pretplatnik BPretplatnik A

Slika 7.1. Mjesta kriptiranja pri prijenosu podataka

Simulacija je ograničena na autentifikaciju pretplatnika A, te na kriptiranje podataka koje pretplatnik odašilje prema baznoj stanici u čijem se području nalazi (slika 7.1.). Iako je simulacija mogla biti proširena i na dio dekriptiranja i cjelokupne veze između pretplatnika B i njegove bazne stanice, taj dio je izostavljen jer ne bi doprinio boljem razumijevanju protokola, odnosna algoritma. Ovako je simulacija jednostavnija a istovremeno pruža maksimalno jasnu sliku procesa koji se odvijaju u sigurnosnom sustavu GSM mreže.

Simulacija je ostvarena u programskom jeziku Visual C, te se interakcija s korisnikom odvija preko jednostavnog sučelja, slika 7.2.

58

Page 62: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

Slika 7.2. Osnovno sučelje simulacije

Izvođenje simulacije započinje odabirom opcije 'Poziv' koja simulira uspostavu veze između pokretne stanice i bazne stanice. Simulacija se nastavlja procesom autentifikacije koji je predstavljen sučeljem na slici 7.3.

Slika 7.3. Sučelje za autentifikaciju

Sučelje za autentifikaciju je podijeljeno na dva dijela: dio informacija koji se nalazi u pokretnoj stanici, odnosno SIM kartici, i dio informacija koji se nalazi pohranjen u GSM mreži, točnije u autenifikacijskom centru AuC. AuC sadrži bazu s podacima pretplatnika, te se iz njega dobija informacija o jedinstvenom ključu određenog korisnika koji se identificira preko TMSI, odnosno IMSI vrijednosti. TMSI vrijednost je u simulaciji nemoguće mijenjati, dok se ključevi pohranjeni u SIM kartici i AuC centru mogu promijeniti kroz datoteke kljuc.dat i

59

Page 63: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

kljuc_sim.dat. Prva datoteka sadrži ključ AuC centra, dok druga sadrži ključ SIM kartice.

Proces autentifikacije se odvija u koracima, odabirom opcije 'Sljedeći korak'. Konkretne akcije koje se odvijaju se javljaju u lijevom donjem dijelu sučelja, slika 7.2.

Izvođenjem koraka polja na formi se popunjavaju. Koraci koji se provode u simulaciji odgovaraju redoslijedu provođenja autentifikacijskog procesa. Obje strane koje sudjeluju u autentifikaciji zasebno pokreću A3/A8 algoritam, koji je ostvaren unutar simulacije algoritmom COMP128. Provjerava se da li su SRES vrijednosti jednake (polja SRES1 i SRES2 na slici 7.2.). U slučaju njihovog podudaranja, autentifikacija je uspješna i na glavnoj formi će biti omogućena opcija za razgovor. Odabirom te opcije na ekranu se pojavljuje novo sučelje zaduženo za prezentiranje procesa zaštite podataka kriptiranjem algoritmom A5/2, slika 7.3.

Slika 7.4. Sučelje za kriptiranje

Sučelje za kriptiranje se sastoji od više odvojenih dijelova. Prvi takav dio je prozor za ključ Kc, koji je izračunat u prvom dijelu simulacije. Pri inicijalnom prikazivanju sučelja ključ je zapisan u heksadecimalnom zapisu, te se odabirom

60

Page 64: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

opcije 'Sljedeći korak' on pretvara u binarni zapis. Ponovnim odabirom iste opcije, ključ se zapisuje u registre. Osim cjelokupnog zapisa sadržaja registra na razini bita, za svaki registar su posebno odvojeni ključni bitovi, kao što je kontrolni bit, te bitovi koji sudjeluju u povratnoj funkciji određenog registra. U ovisnosti o glavnom kontrolnom bitu i kontrolnim bitovima svakog registra odlučuje se da li će u određenom koraku algoritma registar biti rotiran u lijevo ili neće.

Nakon što je ključ zapisan u registre moguće je započeti proces kriptiranja. Polje za unos teksta koji se želi kriptirati se nalazi u lijevom donjem kutu. To je jedino polje koje se može editirati od strane korisnika. Nakon što je tekst koji se želi kriptirati unesen, ponovno se odabere opcija 'Sljedeći korak'. Algoritam počinje s radom. Polje koje je na formi nazvano 'Ulaz' prikazuje binarni zapis ulaznog znaka koji se trenutno obrađuje. Svakim korakom algoritma popunjava se polje 'Keystream'. Nakon što se dobije 8 bitova tog slučajnog niza, između 'Ulaza' i 'Keystream' polja se obavlja XOR operacija. Njen rezultat je na razini bita prikazan u polju 'Izlaz'. Sljedeći korak simulacije binarni zapis 'Izlaz' polja pretvara u znak i zapisuje ga u izlazno polje koje se nalazi krajnje desno na formi, iznad opcije 'OK'. Proces se ponavlja za svaki znak unesenog teksta, dok ulazno polje ne ostane prazno. Obavijest o trenutnoj akciji se javlja u lijevom donjem kutu sučelja.

Kriptiranjem cijelog unosa, simulacija staje, te je moguće unijeti novi niz za kriptiranje sa već postojećim stanjima registara, ili simulaciju u potpunosti završiti.

61

Page 65: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

8. Zaključak Mobilne komunikacije pružaju velik broj usluga koje su danas postale

uobičajene i vrlo raširene. Sigurnost ovih mreža je i zbog svojstava bežičnog medija osjetljivija i treba joj posvetiti dodatnu pažnju. Kroz predstavljanje GSM norme moglo se ustanoviti da je sigurnosni aspekt ovih mreža dobro pokriven. UMTS sustavom mobilne komunikacije postaju još sigurnije, te se može primijetiti da se ulaže velik trud u poboljšanje zaštite identiteta i podataka.

U ovom radu predstavljeni su kriptografski algoritmi i protokoli korišteni u mobilnim komunikacijama. Opisana je GSM norma, kao još uvijek najzastupljeniji predstavnik mobilnih komunikacija. Algoritmi za kriptiranje toka podataka su detaljno obrađeni. Algoritmi RC4, A5 i Solitaire programski su ostvareni i ispitana je njihova brzina rada. U svrhu lakšeg i boljeg razumijevanja sigurnosnog sustava u mobilnim komunikacijama, u rad je uključena i simulacija sigurnosnog sustava GSM mreže. U simulaciju su uključena programska ostvarenja A3/A8 i A5 algoritama. Proces autentifikacije i kriptiranja podataka je prikazan u koracima kroz jednostavno sučelje.

62

Page 66: SIMULACIJA SIGURNOSNOG SUSTAVA U MOBILNIM ...sigurnost.zemris.fer.hr/ns/2005_ilic/Diplomski.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1522

9. Literatura [1] Jeremy Quirke: Security in the GSM system, http://www.ausmobile.com [2] Bruce Schneir: Applied cryptography, John Wiley & Sons, USA, 1996. [3] Ignac Lovrek: Predavanja iz predmeta Komunikacijski protokoli, Zavod

za telekomunikacije, FER, Zagreb [4] Javier Gozalvez Sempere: An overview of the GSM system,

http://www.comms.eee.strath.ac.uk [5] John Scourias: Overview of the Global System for Mobile

Communications, http://ccnga.uwaterloo.ca [6] Charles Brookson: GSM security and encryption,

http://www.brookson.com [7] Marc Briceno, Ian Goldberg, and David Wagner: An implementation of

the GSM A3A8 algorithm. http://www.gsm-security.net [8] Limor Elbaz: Using public key cryptography in mobile phones,

http://www.discretix.com [9] Tomislav Novosel: Seminarski rad iz Opercijskih sustava 2, A5

algoritam kriptiranja podataka, http://sigurnost.zemris.fer.hr [10] Dalibor Hrg: Seminarski rad iz Opercijskih sustava 2, RC4,

http://sigurnost.zemris.fer.hr [11] Phillip Rogaway and Don Coppersmith: A Software-Optimized

Encryption Algorithm, http://www.cs.ucdavis.edu [12] Bruce Schneir: The Solitaire Encryption Algorithm,

http://www.schneier.com/solitaire.html[13] Paul Crowley: Problems with Bruce Schneier's "Solitaire",

http://www.ciphergoth.org/crypto/solitaire/[14] David J. Wheeler: A Bulk Data Encryption Algorithm,

http://www.cix.co.uk [15] Tomas Balderas-Contreras, Rene A. Cumplido Parra: An Efficient

Hardware Implementation of The KASUMI Block Cipher for Third Generation Cellular Networks, http://ccc.inaoep.mx

63