Kriptovanje baza podataka je deo kriptografije koji se odnosi na metode zaštite i očuvanja tajnosti baza podataka. Pojam „kriptografija“ je nastao od grčkog prideva κρυπτός, kryptós „skriven“ i glagola γράφω gráfo „pisati“. Kriptografija je zasnovana na matematici i kompjuterskoj nauci, i usko je povezana sa teorijom informacija, kompjuterskom bezbednošću i inženjerstvom.[1]

Enigma

Istorija kriptografije уреди

Urezivanje hijeroglifa na spomenicima Starog carstva u Egiptu (pre više od 4.500 godina) uzima se za najraniji dokaz kriptografije. U staroj Grčkoj su spartanski vojnici koristili naročit štap za odgonetanje, skital. Herodot još pominje javke na tablama, prekrivene voskom, i pisanje na glavama robova (prvo tetoviranje) što bi kasnije prekrila kosa. Veliki vojskovođa, Julije Cezar, koristio je pri slanju poruka svojim vojnicima šifre, tako što je pojedina slova u tekstu pomerao za tri i više mesta. Leone Batista Alberti, italijanski arhitekta, poznat kao "Otac zapadne kriptologije", napisao je prvu poznatu 25 strana dugu raspravu na temu kriptografije 1467. godine. Najvećim poduhvatom, međutim, smatra se provaljivanje nemačke elektromehaničke mašine za šifre, nazvane Enigma, u čije je tajne pronikao Poljak Marjan Rejevski. Sprava je završila u britanskim rukama, što je, prema izvesnim mišljenjima, skratilo borbe u Drugom svetskom ratu za godinu-dve. Sa Ostrva potiče i prvi digitalni elektronski računar Kolos, osmišljen s jedinim ciljem, da dešifruje neprijateljske poruke.[2]

Kriptografska zaštita baze podataka уреди

Zaštita baza podataka je od sve većeg značaja. Cilj svake organizacije je da štiti sve osetljive podatke u bazama podataka, u kojima se nalaze važne informacije za njihovo poslovanje. Postoje različiti metodi zaštite baza podataka, od kojih su osnovni lokalna i eksterna zaštita. Kod lokalne zaštite šifrovanje se vrši samo u bazi podataka, tako što se instalira kriptografski modul unutar date baze. Cilj takvog mehanizma je da fizički zaštiti podatke na serveru. Ovi mehanizmi koriste popularne standardne kriptografske algoritme (AES, 3DES i druge).[3] Eksterna zaštita se postiže instalacijom modula na aplikativnom serveru. Šifrovanje se vrši samo na serverskoj strani i na taj način se štite podaci na serveru, kao i podaci u komunikaciji između aplikativnog servera i baze podataka.

Kriptografski algoritmi уреди

Kriptografski algoritmi se koriste za šifrovanje poruka, odnosno za njenu transformaciju iz otvorenog u šifrovani oblik. Tri osnovna načina šifrovanja su hash funkcija, simetrično šifrovanje i asimetrično šifrovanje.

Hash funkcija уреди

 
Hash funkcija

Kriptografska funkcija za sažimanje ili hash funkcija štiti integritet podataka i garantuje autentičnost poruke. Hash algoritam obavlja proces konverzije poruke ili podataka u numeričku vrednost. Tako dobijena vrednost se naziva hash zbir ili hash suma. Hash funkcije mogu biti jednosmerne, kod kojih se ne dozvoljava ponovno dešifrovanje poruke, i dvosmerne, kod kojih je to moguće. Dva najpoznatija standarda koji koriste hash funkciju su SHA-Secure, koji generiše 160 bitnu vredost i MDA-Message, koji generiše 128 bitnu vrednost. Oba predstavljaju jednosmerni hash algoritam. SHA-1 (Sesure Hash Algoritam) je funkcija koja svaki tekst koji je predmet šifrovanja obradi tako, da se na izlazu dobije niz od 160 nula i jedinica. Takvih nizova ima 2160. Računarski je nemoguće naći bilo koji ulaz, čija je hash vrednost unapred zadati izlaz i nemoguće je naći dva različita ulaza sa istom hash vrednošću.

Simetrični algoritmi уреди

Zahtevaju postojanje istog ključa i procesnog algoritma na obe strane veze. Oni generišu tajni ključ koji se mora dobro zaštiti. Tajni ključ se naziva i privatni ključ. Svaka osoba koja koristi ovaj sistem mora da poseduje ključ. Šifrovanje se obavlja u blokovima (blok po blok) ili protočno (bit po bit ili bajt po bajt). Standardni simetrični algoritmi koji se danas koriste su: DES, AES, 3DES, CAST, RC, BLOWFISH, IDEA. DES algoritam koristi blokove od 64 bita, podeljene na dva 32bitna bloka (L i D). 3DES je razvijen kasnije, dosta je sigurniji i tri puta sporiji od DES algoritma. Koristi 192-bitni ključ. AES algoritam koristi 128 bitni ključ i radi nad 128 bitnim blokom podataka. Moguće ga je proširiti na upotrebu ključa od 192 i 256 bita. Kod AES algoritma, blok podataka organizovan je u tabelu od četiri puta po četiri znaka.

Asimetrični algoritmi уреди

Koriste za šifrovanje i dešifrovanje podataka javni i privatni ključ. Javni ključ se koristi kod slanja i šifrovanja poruke, dok se privatni koristi kod dešifrovanja. Sistemi sa dva ključa nazivaju se PKC (engl. Public Key Cryptography). Najpoznatiji sistemi su: RSA, DIFFIE-HELLMAN, ECC, ELGamal.

Kriptografski modul u MySQL SUBP уреди

MySQL u svom kriptografskom modulu koristi AES i DES algoritme. Da bi se koristio AES algoritam, moraju se upotrebiti funkcije AES_ENCRYPT() i AES_DECRYPT() koje dozvoljavaju šifrovanje i dešifrovanje podataka koristeći AES algoritam poznatiji kao "Rijndael". U ovom modulu MySQL koristi dužinu ključa od 128 bita, ali modifikacijom koda može se proširiti na dužinu od 256 bita. Bolje performanse ima 128 bitni ključ zbog veće brzine, tako da se uglavnom on koristi. Funkcija AES_ENCRYPT() kao rezultat vraća binarni string, a funkcija AES_DECRYPT() vraća originalni string. U slučaju da se proslede pogrešni argumenti funkcijama, obe funkcije kao rezultat vraćaju nulu. Postoje dve mogućnosti za korišćenje DES_ENCRYPT() funkcije. Prva je da se kao argumenti mogu proslediti originalni ključ i tekst, a druga da se prosledi samo originalni tekst, i u tom slučaju funkcija za ključ koristi originalni tekst. U slučaju neispravnosti, funkcija vraća nulu. Funkcija DES_DECRYPT() zahteva dva argumenta, naziv polja i ključ koji će se koristiti za dešifrovanje.

Procesi prilikom upotrebe kriptografije nad bazama podataka уреди

Osnovne teze koje su uključene u funkcionalnost kriptografskog mehanizma na bazama podataka podjednako su važne i ne sme doći do zanemarivanja neke od njih jer se može narušiti zaštita i samo funkcionisanje. To su:

  • Odabir kriptografskog algoritma
  • Čuvanje ključa
  • Promena ključa
  • Kriptografske greške
  • Performanse

Odabir kriptografskog algoritma уреди

Zbog jednostavnosti i brzine, najčešće se koriste simetrični kriptografski algoritmi. Pored tih glavnih prednosti postoje i neke mane, kao kod sigurnog prenošenja ključa svim korisnicima, ako su na većoj fizičkoj udaljenosti.

Čuvanje ključa уреди

Osnovno pravilo simetričnih i asimetričnih algoritama je da ključeve nikada ne treba držati zajedno na jednom mestu. Ukoliko su dve osobe zadužene za skladištenje ključeva, potrebno je prisustvo obe osobe prilikom otvaranja skladišta. Opasno je i zabranjeno slati tajne ključeve preko mreže jer se mogu naneti nepopravljive štete sistemu. Ključ kod kriptografskog sistema može da se čuva na različitim medijima kao što su smart kartice, usb fleš diskovi ili na fizički dobro obezbeđenim računarima.[4]

Promena ključa уреди

Proces promene ključa zahteva ponovno dešifrovanje podataka starim ključem i šifrovanje podataka novim ključem. Do povlačenja ključa dolazi usled njihove kompromitacije, narušavanja procesa identifikacije i u drugim slučajevima koji mogu da ugroze sistem zaštite. Promena ključa može biti zahtevan proces ukoliko se radi o ogromnim bazama podataka sa više hiljada korisnika.

Kriptografske greške уреди

  • Dizajnerske greške
  • Korisničke greške
  • Greške pri implementaciji
  • Greške zbog okruženja

Performanse уреди

Performanse su najbitniji deo svakog kriptografskog algoritma, jer od njih zavisi efikasnost i funkcionisanje datih mehanizama.

Vidi još уреди

Reference уреди

  1. ^ Leader in security, Cryptography Архивирано на сајту Wayback Machine (17. април 2012) Pristupljeno na dan 2012.05.13
  2. ^ A short history of cryptography Pristupljeno na dan 2012.05.13
  3. ^ Sistem za šifrovanje i potpisivanje[мртва веза] Pristupljeno na dan 2012.05.14
  4. ^ Čuvanje ključeva i bezbednost Архивирано на сајту Wayback Machine (19. април 2009)Pristupljeno na dan 2012.05.14

Spoljašnje veze уреди