2. Jak działa EFS:

Kiedy użytkownik po raz pierwszy coś szyfruje, jest dla niego tworzona para kluczy, publiczny i prywatny. Będą mu one służyły dalej do szyfrowania i deszyfrowania plików. Kiedy szyfrujemy dany plik, to jest dla niego tworzony w EFS tak zwany FEK, czyli File Encryption Key (będący pewną losową wartością przypisaną temu plikowi). Za pomocą FEK zawartość pliku jest szyfrowana tudzież deszyfrowana przy użyciu symetrycznego algorytmu szyfrowania, jakim jest w Windowsie 2000 i Windowsie XP algorytm DESX (silniejszy wariant DES-a), zaś w Windowsie XP z Service Pack 1 i Windowsie 2003 Server - AES (Advanced Encryption Standard). Jest także możliwość włączenia jeszcze silniejszego algorytmu szyfrowania, mianowicie 3DES. Symetria algorytmu polega na tym, że tym samym kluczem plik można szyfrować i deszyfrować.

Po co nam w takim razie klucz publiczny i prywatny użytkownika? Otóż kluczem publicznym użytkownika jest szyfrowany FEK (gdyż jego postać niezaszyfrowana, jak już zostało wspomniane, pozwalałaby na natychmiastowe odszyfrowanie pliku) i taka zaszyfrowana kopia jest trzymana dla danego pliku dla każdego użytkownika, który ma mieć możliwość ten plik szyfrować i deszyfrować. Taka właśnie metoda została wybrana, gdyż szyfrowanie symetryczne jest o wiele szybsze od niesymetrycznego, a więc do dużych partii danych (zawartość pliku) używany DESX-a lub AES-a, zaś do samego tylko FEK-a używamy RSA (klucz publiczny i prywatny).

W szyfrowaniu najważniejszym (i wymagającym największego bezpieczeństwa) punktem jest więc klucz prywatny. Klucz ten jest przechowywany w katalogu profilu użytkownika (\Documents and Settings) w podkatalogu Application Data\Microsoft\Crypto\RSA (w polskojęzycznej wersji Windowsa często katalog Application Data ma nazwę Dane aplikacji). Dla jego ochrony, wszystkie pliki katalogu RSA są szyfrowane za pomocą losowego 64-bajtowego klucza symetrycznego, tzw. master key, który jest specyficzny dla użytkownika. Ten z kolei jest przechowywany w katalogu Application Data\Microsoft\Protect i jest zaszyfrowany za pomocą algorytmu 3DES z użyciem klucza, którego część jest oparta na haśle danego użytkownika. Tak więc zmiana hasła użytkownika powoduje odszyfrowanie jego master key i ponowne zaszyfrowanie z użyciem nowego hasła.