![]() | ![]() |
![]() |
| ![]() |
| ||||||||||
Enkripcija fajl-sistema na GNU/Linuxu
Sastavni deo svakog višekorisničkog operativnog sistema jeste mogućnost ograničavanja pristupa fajlovima. Ta mogućnost postoji dok operativni sistem radi, i to samo na fajl-sistemima koje taj operativni sistem kontroliše. Ako se hard disk izvadi i ubaci u drugi kompjuter ili se startuje neki drugi operativni sistem (sa CD-a, na primer), ograničenja pristupa više nema – svi podaci potpuno su dostupni tom drugom operativnom sistemu. Slična je situacija kada se podaci stave ne neki prenosni medij (USB drajv, CD...) ili šalju preko mreže. U takvim slučajevima jedini vid zaštite podataka jeste enkripcija. Treba imati na umu da enkripcija sprečava čitanje podataka bez odgovarajuće šifre, ali ne sprečava uništavanje (brisanje) podataka. Ona neće sačuvati podatke od nekoga ko je uspeo da dođe (preko mreže ili direktno) do kompjutera kada je enkriptovani fajl-sistem montiran i, samim tim, podaci dostupni u neenkriptovanom obliku i, naravno, enkripcija ne štiti od primene prisile kao argumenta pri nagovaranju nekoga da omogući pristup zaštićenim podacima. Enkripcija fajlova na GNU/Linuxu uglavnom se svodi na enkripciju fajl-sistema koji može da se nalazi na particiji ili u fajlu koji se montira preko loop devicea da bi se onda sadržaju fajla pristupalo kao fajl-sistemu. Dosadašnje implementacije enkripcije fajl-sistema radile su preko loop devicea. Među njima značajnije su cryptoloop koji je implementiran u sve 2.6 kernele i loop-AES koji dolazi kao zaseban paket i radi i sa starijim kernelima. Pored njih tu je i dm-crypt koji obezbeđuje enkripciju fajl-sistema preko device mappera i sastavni je deo kernela od verzije 2.6.4. Iako cryptloop i dm-crypt suštinski rade istu stvar, namera je da se enkripcija fajl-sistema potpuno prebaci u device mapper što bi trebalo da rezultira jednostavnijim kôdom i bržim i pouzdanijim radom, zahvaljujući konceptualno drugačijoj implementaciji, tako da bi cryptoloop u jednom trenutku trebalo da bude izbačen iz kernela. Treba primetiti da se više puta pomenuta „implementacija enkripcije” (cryptoloop, dm-crypt...) ne odnosi na algoritam za enkripciju (npr. AES, DES, Blowfish...). Kod svih implementacija korisnik može da bira između raznih algoritama za enkripciju. LUKS (linux unified key setup) jeste novi standard čija je bitna pogodnost u odnosu na ostale mogućnost korišćenja više šifri za jedan fajl-sistem i mogućnost promene šifre bez formatiranja enkriptovanog fajl-sistema, što kod ranijih implementacija nije bilo moguće (to jest, u README fajlu loop-aes paketa postoji relativno komplikovano uputstvo kako postići sličnu funkcionalnost, ali nije ni približno elegantno kao ono što nudi LUKS). Sa http://luks. Za primere koji slede potrebno je da na kompjuteru na kojem se ovo radi bude kompajlirana podrška za odgovarajuće algoritme za enkripciju (u konfiguraciji kernela pod „Cryptograpic options”), zatim podrška za dm-crypt (u konfiguraciji kernela: Device drivers -> Multi-device support (RAID and LVM) -> Multiple device driver support (RAId and LVM) -> Device mapper support -> Crypt target support), da je instaliran cryptsetup-luks paket i da su odgovarajući moduli učitani (ovde konkretno dm-mod, dm-crypt i aes). Treba obratiti pažnju na to da kod ovih operacija relativno mala greška može da dovede do ozbiljnog gubitka podataka pa zato treba dobro paziti na imena diskova i particija koje se navode kao argumenti ovih komandi. Virtuelna mašina ili poseban disk na kojem nema važnih podataka (pri čemu su ostali diskovi isključeni) predstavljaju adekvatan način da se bezbedno eksperimentiše s ovakvim stvarima. Prvi korak pri enkriptovanju particije trebalo bi da bude punjenje te particije slučajnim podacima: Punjenje particije slučajnim podacima bitno otežava pokušaje „razbijanja” šifre. U zavisnosti od toga da li želite da eksperimentišete, da odvratite nekog umišljenog hakera ili da sačuvate bitne poslovne/državne tajne, možete da birate koliko vremena ćete uložiti u punjenje particije slučajnim podacima ili ćete ovaj korak jednostavno preskočiti. Generisanje slučajnih podataka je zahtevan posao za procesor. Najbolji izvor slučajnih podataka je /dev/random, ali je ekstremno spor. U zavisnosti od veličine, punjenje particije iz /dev/random može da traje satima ili danima... Dosta brži i nešto lošiji izbor jeste /dev/urandom, ali ni on nije baš munjevit. Koliko vremena je potrebno, zavisi od performansi sistema, a pošto nema nikakvog indikatora napretka, možda je najbolje probati s manjom količinom podataka pa na osnovu toga videti koliko je potrebno za celu particiju. U svakom slučaju, lako se može desiti da je potrebno ostaviti sistem preko noći da popuni particiju slučajnim podacima... Prvo je potrebno formatirati particiju na odgovarajući način da bi bila LUKS kompatibilna: Opcijom -y pita za lozinku dva puta, čisto da ne bi bilo zabune, sa -c se definiše algoritam za enkripciju. Zatim: Posle ovog koraka pojavljuje se fajl /dev/mapper/test, dalje se radi sa ovim uređajem: Kada je rad sa enkriptovanom particijom gotov, sledi: U trenutnoj fazi razvoja dm-crypt ne radi direktno sa fajlovima, nego samo sa fajl-sistemima, pa je za pravljenje enkriptovanog fajla prvo potrebno asocirati ga sa block deviceom pomoću komande losetup. U praksi, to se svodi na jednu komandu više u komandnoj liniji. Prvo se napravi fajl (100 MB u ovom slučaju), a brzine radi, može da se koristi /dev/zero umesto /dev/urandom: Zatim se taj fajl asocira sa loop deviceom: Dalje se sa /dev/loop0 radi isto što i sa /dev/hdb1 u prethodnom primeru. Posle umount i luksClose u ovom slučaju još treba izvršiti: Za svako sledeće montiranje potrebni su luksOpen i mount, a ako je fajl u pitanju, onda i losetup kao prvi korak. Jednostavnosti radi, te komande mogu da se stave u skriptu. Pod pretpostavkom da izabrani algoritam i implementacija nemaju poznate propuste (kao što AES i dm-crypt za sada nemaju), jedini efikasan „napad” jeste metoda pogađanja. Koliko je ovo izvodljivo, veoma zavisi od izabrane šifre i sredstava i motiva onoga ko napada. Sa sadašnjim razvojem kompjutera vrlo je diskutabilno da li šifra koju čovek pamti može biti dovoljno dobra za čuvanje ozbiljnijih poslovnih tajni (od stručnog i opremljenog napadača), tako da bi dobra šifra trebalo da se sastoji od slučajno generisanih podataka koje čovek ne može da zapamti. Takva šifra čuva se na primer na USB-u koji je po mogućstvu enkriptovan šifrom koja se nalazi na kompjuteru, tako da eventualnom napadaču podaci sa diska bez tog USB-a, kao ni taj USB bez šifre na kompjuteru ne znače mnogo. Detaljnija razrada ovakvih i sličnih scenarija enkripcije može se naći na http://gentoo- Marko JOVANOVIĆ |
| ||||||||||||
![]()
![]()
|
![]() | |
![]() | ![]() |
Home / Novi broj | Arhiva • Opšte teme | Internet | Test drive | Test run | PD kutak | CeDeteka | WWW vodič • Svet igara Svet kompjutera Copyright © 1984-2018. Politika a.d. • Redakcija | Kontakt | Saradnja | Oglasi | Pretplata • Help • English | |
SKWeb 3.22 |