Enkripcija baza podataka
UPOTREBA KRIPTOGRAFIJE ZA SIGURNOST BAZA PODATAKA
USE CRYPTOGRAPHY FOR SECURITY DATABASE
Sadržaj –
U sistemu baza podataka, osjetljivi podaci se čuvaju nešifrovani i mogu biti ranjivi na
napade. Bez ozbzira na veličinu preduzetih mjera, uvijek će postojati sigurnosne pukotine koje
napadači mogu koristiti da prodru u baze podataka. Da bi se izbjegao rizik od ovih prijetnji
preporučuje se enkripcija baza podataka. Ovaj rad istražuje kakvu ulogu može imati šifrovanje za
sigurnost baza podatka.
Abstract
–
In a database system, sensitive data stored in the clear can be vulnerable to attack. No
matter the amount of security measures taken, there would always be some security leaks which
attackers can use to penetrate the database. To avoid the risk posed by this threat, database
encryption has been recommended. This paper investigates the role cryptograph can play in
database security.
1. UVOD
Danas se većina informacija čuva u bazama podataka.
Baze podataka predstavljaju izvor informacija za većinu
aplikacija koje nam pomažu u obavljanju svakodnevnih
poslova. Sa razvojem organizacija, bilo da su to državne ili
privatne, uočena je primjena sistema baza podataka kao
ključne tehnologije za upravljanje podacima i pomoćnog
sredstva za donošenje odluka.
Osiguranje sistema baza podataka je važan zadatak za
mnoge organizacije. Naime, ukoliko organizacije čuvaju
privatne i povjerljive podatke onda moraju primjeniti i
zadovoljiti mnoge zakone i sigurnosne standarde. Privatni
podaci su tajni podaci o korisnicima (npr. broj kreditne
kartice), koji mogu biti dostupni samo njima ili nekom
drugom, ko prije ostvarenja pristupa, treba imati odobrenje
od korisnika. Povjerljivi podaci su osjetljivi podaci koji imaju
ograničen pristup, odnosno kojima mogu pristupiti samo
autorizovani korisnici. S obzirom na prirodu informacija koje
čuvaju, baze podataka su predmet napada, pa je stoga i
njihova sigurnost ključna za uspješno poslovanje
organizacija. Narušavanje sigurnosti baza podataka u nekoj
organizaciji može imati za posljedicu gubitak kredibiliteta
organizacije, finansijske gubitke, zakonske posljedice itd.
Klasična sigurnost baza podataka oslanja se na mnogo
različitih mehanizama i tehnika zaštite, kao što su: kontrola
pristupa, kontrola toka informacija, sigurnost operativnog
sistema, sigurnost računarskih mreža, detekcija upada, nadzor
itd. Uloga kriptografije kao elementa sigurnosti sistema baza
podataka dolazi do izražaja kada se naruše elementi zaštite
kao što je recimo kontrola pristupa. Osnovni cilj kriptografije
jeste učiniti podatke nerazumljivim i teškim za dešifrovanje
neovlaštenim licima, a koji su uspjeli da dođu do njih nakon
zaobilaženja svih ostalih mehanizama zaštite. Često se u
literaturi [1] može naći tvrdnja da je kriptografija poslednja
linija odbrane baza podataka. Također se kaže i da je
kriptografija vještina „krajnje informacione sigurnosti“ [2].
Krajnje je u smislu da kada je poruka (ili neko polje baze
podataka) jednom podvrgnuta kriptografskom algoritmu
očekuje se da ostane sigurna i nakon što neovlaštena osoba
ostvari punu kontrolu nad obrađenom porukom. Neovlaštena
osoba može čak znati koji je algoritam korišten, međutim ako
je kriptografija dobro implementirana, poruka će i dalje ostati
sigurna. Mnogi sigurnosni mehanizmi sprečavaju pristup i
posjeduju komplikovane procedure koje dozvoljavaju pristup
samo autorizovanim korisnicima. Kriptografija pretpostavlja
da neovlaštena osoba ima potpuni pristup poruci, ali i dalje
obezbjeđuje neslomljivu sigurnost - krajnju sigurnost.
U ovom radu biće istražena kriptografija kao element
zaštite podataka u sistemima baza podataka. Naime, biće
prikazane metodologije enkripcije, kao i preporuke kod
izbora rješenja primjene enkripcije sa naglaskom na prednosti
i nedostake primjene određenih metodologija enkripcije.
Također će biti ukazano na značaj upravljanja ključevima
koji su korišteni za šifrovanje.
2. OSNOVE KRIPTOGRAFIJE
Kriptografija
je naučna disciplina koja se bavi
proučavanjem metoda očuvanja tajnosti informacija. Sama
riječ kriptografija je grčkog porijekla i potiče od riječi
κρύπτω
kryptó
(što znači
tajan
ili
sakriven
)
i
γράφω
gráfo
(što znači pisati) ili λέγειν
legein
(što znači govoriti) [3]. Ona
je multidisciplinarna oblast, jer u sebe uključuje mnoge
naučnotehničke discipline, i naročito je vezana za
matematiku, a u novije vrijeme i za informatiku i računarstvo.
Savremene kriptografske metode vezane su za kriptografske
algoritme. Svaki kriptografski algoritam obuhvata par
transformacija podataka, koje se nazivaju šifrovanje i
dešifrovanje [4]. Šifrovanje (enkripcija) je procedura koja
transformiše originalnu informaciju
otvoreni tekst
(eng.
plaintext) u šifrovane podatke
šifrat
(eng. ciphertext) ili
kriptogram
. Obrnut proces, dešifrovanje (dekripcija),
rekonstruiše otvoreni tekst na osnovu šifrata. Prilikom
šifrovanja, pored otvorenog teksta, koristi se još jedna
nezavisna vrijednost koja se naziva ključ šifrovanja. Slično,
transformacija za dešifrovanje, koristi ključ za dešifrovanje.
Page | 1
Broj simbola koji predstavljaju ključ (dužina ključa) zavisi od
kriptografskog algoritma i predstavlja parametar sigurnosti
sistema. Kriptografski algoritmi su obično javno dostupni, a
dešifrovanje zavisi od tajnosti ključa, što ukazuje da je pored
zaštite otvorenog teksta potrebno zaštititi i ključ. No, kao i u
stara vremena, i danas ne postoji potpuno siguran algoritam
od nelegalnog dobijanja poruke preko šifrata. Ipak se od
dobrog algoritma zahtjeva da cijena razbijanja šifrata
premašuje vrijednost same informacije zbog koje se to radi,
kao i da vrijeme koje je za tu radnju potrebno, bude dovoljno
dugo, kako bi dobijena informacija postala nekorisna i
zastarjela. Sigurnost enkriptovanih podataka ne zavisi samo
od algoritma koji je korišten, već i od toga kako je on
implementiran.
Postoje tri opšte kategorije kriptografskih algoritama koji
se danas koriste u sistemima baza podataka, i to: simetrični,
asimetrični i
hashing
algoritmi. Svaki kriptografski algoritam
ima svoje prednosti i svoje nedostatke. Neki sistemi koriste
kombinaciju ovih algoritama i na taj način iskorištavaju
njihove jače strane. Takve kriptografske sisteme nazivamo
hibridnim sistemima.
2. 1. Simetrični algoritmi
Simetrični algoritmi koriste isti ključ i za šifrovanje i za
dešifrovanje podataka. Ekvivalentna imena za simetrične
algoritme su:
conventional
,
secret key
,
classical
i
private key
algoritam. Kao što i samo ime govori, kod ovakvih
algoritama ključevi moraju biti sakriveni ili tajni. Ako se desi
da do ključa dođu strane koje nisu uključene u komunikaciju,
sigurnost podataka je smanjena ili potpuno eliminisana.
Drugim riječima, svako ko posjeduje taj dijeljeni tajni ključ
ima mogućnost čitanja (i pisanja) šifrovanih poruka. Strane
koje učestvuju u komunikaciji i dijele tajni ključ se obavezuju
na zaštitu pristupa ključu. Kod ove vrste algoritama postavlja
se problem kako prenijeti tajni ključ. Problem je u tome, što
ako se tajni ključ presretne, poruka se može pročitati. Zato se
ovaj tip enkripcije najčešće koristi prilikom zaštite podataka
koje ne dijelimo sa drugima. Prednost ovih algoritama ogleda
se u njihovoj brzini, pa se oni i koriste kod velikih
frekvencija čitanja i pisanja u baze podataka. Dužina ključa je
krajnje bitna za sigurnost podataka. Postoje dva glavna
načina za napad na podatke enkriptovane simetričnim
algoritmom. Prva vrsta napada je napad „nagađanje i
provjera“ i obično je uspješan kada se algoritam
implementira nekorektno i na osnovu loše proizvoljno
izabranog ključa. Ovdje napadač nagađa, koji je ključ
korišten za enkripciju i zatim pokušava primjeniti ključ da
provjeri da li taj ključ odgovara. Napad sa grubom silom
(eng. bruto force attack) je druga vrsta napada na
kriptografski sistem i zasniva se na provjeravanju svih
mogućih ključeva. Ovi napadi su postali uspješniji nakon što
je porasla snaga računara, a koja je omogućila kreiranje i
provjeru brojnih ključeva za relativno kratak period vremena.
Ako se koriste baze podataka sa simetričnim algoritmom,
onda se preporučuje minimalna dužina ključa od 128-bita.
Bilo šta manje stavlja podatke u nepotreban rizik.
2. 2. Asimetrični algoritmi
Za razliku od algoritama sa tajnim ključem gdje se koristi
jedan dijeljeni ključ, asimetrični algoritmi koriste dva ključa.
Jedan od ključeva je
javni
, a drugi
privatni
. Ovi algoritmi se
nazivaju i algoritmi sa javnim ključem, a njihov princip rada
je sljedeći: na osnovu tajnog ključa koji zadaje primalac,
generiše se javni ključ. Javni ključ se daje strani koja šalje
šifrovane podatke primaocu. Pomoću njega, pošiljalac šifrira
informaciju koju želi da pošalje i takvu šalje primaocu. Kad
šifrat stigne primaocu on ga dešifruje pomoću svog tajnog
ključa. Znači, tajni ključ ima samo primalac, a javni ključ
može imati bilo ko, pošto se on koristi samo za šifrovanje, a
ne i za dešifrovanje. Prednost ovog načina šifrovanja je u
tome što ne postoji briga u slučaju da neko presretne javni
ključ, jer pomoću njega može samo da šifruje podatke.
Asimetrične operacije su znatno sporije nego operacije kod
simetričnih algoritama, što ih čini ne pogodnim za strategije
enkripcije baza podataka, zato što mogu značajno uticati na
performanse baze podataka. Sistemi sa javnim ključem su se
pokazali kao spori ukoliko se polja često dešifruju u realnom
vremenu. Ako se podaci pišu jednom i onda rijetko koriste,
tada se kao opcija mogu koristiti asimetrični algoritmi.
2. 3. Kriptografske funkcije za sažimanje
Kriptografske funkcije za sažimanje – heš (eng. hash)
funkcije se svrstavaju u kriptografske algoritme bez ključa.
Hash function
označava funkciju koja kompresuje niz
podataka proizvoljne dužine u niz podataka fiksne dužine.
Heš funkcije se koriste kod zaštite integriteta podataka i rade
na sljedećem principu; kada novi podatak pristigne on se
hešira i onda se se poredi sa heš vrijednosti originala. Ako
podaci nisu korumpirani ili izmijenjeni vrijednosti će biti
identične, a ako su podaci bili izmijenjeni, heš vrijednosti
biće različite. Primjer korištenja
hashing
je provjera
password
-a između radne stanice i servera. Korištenjem ove
tehnike informacija nikada ne „putuje“ kroz mrežu u obliku
otvorenog teksta, pa nema opasnosti od presretanja. Kako
hashing
algoritmi ne koriste ključ tako ni dužina ključa nije
problem, a pošto
hashing
nije reverzibilan proces nema ni
opasnosti od dešifrovanja.
Hashing
funkcije imaju malo
opterećenje kod izračunavanja: uticaj izračunavanja heš-eva
unutar sistema za upravljanje bazama podataka (SUBP) može
se ugrubo uporediti sa simetričnom enkripcijom, ali bez
postojanja problema upravljanja ključevima. Veličina
vrijednosti izlaza
hashing
procesa je fiksna.
3. METODOLOGIJA ENKRIPCIJE
Obzirom na podatke koji se kriptuju i na nivou na kojem
se kriptovanje obavlja, postoje različite vrste enkripcije koje
su primjenljive u zaštiti sistema baza podataka, a u skladu sa
tim i sljedeće podjele:
enkripcija za zaštitu podataka tokom prenosa (eng. data–
in–motion);
Page | 1

Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.
Slični dokumenti