Windows - EFS - a fájltitkosítási szolgáltatás működése

Az Encrypting File System (EFS) technológia lehetővé teszi a merevlemez tartalom egy részének vagy egészének titkosítását, más számára hozzáférhetetlenül. Ebben a cikkben bemutatjuk működésének az alapjait, Windows 2000-beli gyakorlati megvalósítását és egy biztonsági rést is az elhárításával együtt. Egy rendszer védelme igen összetett feladat, amelynek része a számítógép fizikai elzárása az illetéktelenek elől, de ez nem mindig oldható meg. Ha valaki hozzáfér a géphez és például kiszereli a merevlemezt, átteszi a saját működő gépébe második meghajtóként (vagy NTFS DOS boot lemezt használ), akkor gyakorlatilag a védelmek 90%-ban hatástalanítva lettek. Nem sok akadálya maradt annak, hogy az adatokat ellopják róla. Ilyen esetben segíthetnek a fájltitkosító programok. Ezek egy eljárással kódolják az adatokat és használat előtt visszafejtik őket. Hasonló eljárással működik az EFS is, de szorosan integrálódik a Windows 2000 rendszerbe, ezért annak sok előnyét képes kihasználni. A Windows 2000 kriptográfiai szolgáltatására épül, ami az NT 4.0-ban mutatkozott be először. Csak NTFS fájlrendszer alatt működik és beépítették a Windows 2000 minden verziójába. Két kulcsú - nyilvános és privát - titkosítási eljárást használ. Amikor titkosítunk egy fájlt, generálódik egy véletlenszám - ez a File Encryption Key (FEK), amely a felhasználó nyilvános kulcsával kódolásra kerül és beépül a kódolandó fájlba. Ezt követően egy DESX algoritmussal kódolódik a fájl adat része. A DESX algoritmus egy szimetrikus kódolási eljárást használ: a kódoló és a dekódoló kulcs ugyanaz. Ez a leggyorsabb és egyben a leggyengébb titkosítási módszer. A nyilvános kulcsú módszer lényegesen időigényesebb és erősebb kódolást tesz lehetővé. Az időigényesség itt nem jelent hátrányt, mert ezzel csak a 128 bites FEK van kódolva. Ha a fájl illetéktelen kezekbe kerül a visszafejtéséhez szükséges a FEK, ez megtalálható valahol a fájlban, de kódolva, a dekódolása viszont csak a kódolást végző felhasználó kulcsával lehetséges. Ez a kulcs a rendszerben van elrejtve. A Windows 2000-ben megvan az a lehetőség is, hogy egy Smart kártyán vagy egyéb más alternatív adathordozón tároljuk és innen használjuk. Ha egy előzőleg titkosított fájlt akarunk elolvasni a használat előtt a rendszer visszafejti számunkra, ehhez szükséges az EFS szolgáltatás futása, amely szoros kapcsolatban van a kernellel és az NTFS fájlrendszerrel. Az olyan gépeken, ahol nem fut ez a szolgáltatás (pl: Win3.1 stb) még NTFS driverrel is reménytelenné válik a fájlok olvasása.

Az Amerikai Egyesült Államokon kívülre exportált Windows 2000 rendszerekben előfordulhat, hogy az EFS driver csak 56 bites titkosítást használ, bár a FEK 128 bites, ennek csak az első 56 bitje működik. Az USA-n belüli használatra szánt verziókban működik a teljes 128 bites kulcs. Az ok az, hogy az USA-n belül mindenhol megkövetelik a minimum 128 bites titkosítást az adatvédelemben, míg ez a világ több részén csak most kezd általánossá válni.

A titkosítás gyakorlati megvalósítása két módon lehetséges: az egyik, hogy a fájlok vagy mappák attribútumai között beállítjuk a tartalom titkosítást, a másik pedig egy parancssori program használata. Ez utóbbi a %SYSTEMROOT%\SYSTEM32\CIPHER.EXE nevű programja, előnye hogy más programokból vagy batch fájlokból is meghívható. Az előbbi megoldás használata nagyon egyszerű: indítsuk el az Intézőt, kattintsunk a jobb egérgombbal a titkosítandó fájlon és a Tulajdonságok > Speciális > Tartalom titkosítása az adatvédelem érdekében jelölőnégyzetet kapcsoljuk be. Lehet titkosítani fájlokat és mappákat is. Ha mappát titkosítunk a rendszer felteszi a kérdést, hogy ezt ki akarjuk-e terjeszteni az almappákra is. Minden fájl amit egy ilyen mappába másolunk automatikusan kódolásra kerül. Ha egy nem titkosított mappába másolunk egy titkosított mappából egy fájlt, akkor az nem kerül visszafejtésre. A lemeztömörítő szolgáltatás és az adattitkosítás nem használható együtt egy mappán vagy fájlon. Fennáll annak a lehetősége, hogy egy titkosított fájlt egy külső tömörítő programmal (pl.: WinZip) tömörítsünk, ekkor is megmarad titkosítottnak. Biztonsági másolat is készíthető a titkosított fájlokról.

Mielőtt elkezdődik egy fájl kódolása a Windows 2000 készít egy másolatot róla és ha a kódolás alatt történne egy rendszerösszeomlás vagy áramszünet, a következő újraindításkor automatikusan visszaállítódik az eredeti állapot. Itt található az a biztonsági rés, amit a bevezetőben említettünk. Ugyanis az elmentett fájl által lefoglalt helyet a rendszer logikailag felszabadítja a kódolás befejeztével, de amíg ide nem történik tényleges írás az adatok fizikailag a merevlemezen maradnak - kódolatlanul. Egy boot lemezről indítva a gépet, egy közvetlen lemezhozzáférést lehetővé tevő programmal le lehet másolni a fájlokat. A megoldást külső program használatával érhetjük el. Léteznek olyan programok, amelyek a merevlemezek nem használt területeit fizikailag is törlik. Ilyen programot tölthetünk le a http://www.sysinternals.com/sdelete.htm címről.

A Windows 2000 alapértelmezett beállítása, hogy a felhasználói fájlokhoz mindenkinek megadja a teljes elérhetőséget. Ha például rendszergazdaként csak titkosítunk egy fájlt, akkor mások ugyan nem tudják megnyitni vagy átmásolni, de letörölhetik! Ha ebben az esetben úgy állítjuk be a jogosultságokat, hogy csak a rendszergazda férhet hozzá teljes eléréssel, akkor megoldottuk ezt a problémát is. Ehhez kattintsunk a fájlra a jobboldali egérgombbal, majd válasszuk a Tulajdonságok > Biztonság fület. Vegyük ki a jelölést az "Engedélyek öröklésének engedélyezése a szülőktől" jelölőnégyzet elől. A felbukkanó ablakban kattintsunk a "Másolás" gombra, ezzel a szülő objektumok engedélyeit átmásoltuk az adott fájlra, de ugyanakkor azt is elértük vele, hogy most már meg tudjuk változtatni őket. A "Név" listából távolítsuk el a "Rendszergazda" és a "System" kivételével az összes felhasználót. Ha ezeket a lépéseket egy mappán végezzük el, akkor a benne lévő összes fájlra és almappára kiterjednek a beállítások.