Аутентификация пользователя и права доступа к ресурсам, имеющие место в NT, работают, когда операционная система загружена, но при физическом доступе к системе возможно загрузить другую ОС, чтобы обойти эти ограничения. EFS использует симметричное шифрование для защиты файлов, а также шифрование, основанное на паре открытый/закрытый ключ для защиты случайно сгенерированного ключа шифрования для каждого файла. По умолчанию закрытый ключ пользователя защищён с помощью шифрования пользовательским паролем, и защищённость данных зависит от стойкости пароля пользователя.
EFS работает, шифруя каждый файл с помощью алгоритма симметричного шифрования, зависящего от версии операционной системы и настроек (начиная с Windows XP доступна теоретическая возможность использования сторонних библиотек для шифрования данных). При этом используется случайно сгенерированный ключ для каждого файла, называемый File Encryption Key (FEK), выбор симметричного шифрования на данном этапе объясняется его скоростью по отношению к асимметричному шифрованию.
FEK (случайный для каждого файла ключ симметричного шифрования) защищается путём асимметричного шифрования, использующего открытый ключ пользователя, шифрующего файл, и алгоритм RSA (теоретически возможно использование других алгоритмов асимметричного шифрования). Зашифрованный таким образом ключ FEK сохраняется в альтернативном потоке $EFS файловой системы NTFS. Для расшифрования данных драйвер шифрованной файловой системы прозрачно для пользователя расшифровывает FEK, используя закрытый ключ пользователя, а затем и необходимый файл с помощью расшифрованного файлового ключа.
Поскольку шифрование/расшифрование файлов происходит с помощью драйвера файловой системы (по сути, надстройки над NTFS), оно происходит прозрачно для пользователя и приложений. Стоит заметить, что EFS не шифрует файлы, передаваемые по сети, поэтому для защиты передаваемых данных необходимо использовать другие протоколы защиты данных (IPSec или WebDAV).
Для того, чтобы зашифровать файл или папку, содержащую файл, пользователь может воспользоваться соответствующим окном диалога свойства файла или папки, установив или сняв флажок «шифровать содержимое для защиты данных», при этом для файлов начиная с Windows XP можно добавить открытые ключи других пользователей, которые тоже будут иметь возможность расшифровать данный файл и работать с его содержимым (при наличии соответствующих разрешений). При шифровании папки шифруются все файлы, находящиеся в ней, а также те, которые будут помещены в неё позднее.
При работе с проводником Windows возможно (по умолчанию) отображение зашифрованных папок и файлов другим (по умолчанию зелёным) цветом, позволяющим визуально отличить защищённое таким образом содержимое. При копировании зашифрованных файлов на раздел, где шифрование не поддерживается (например, с файловой системой FAT32 и т. д.) будет выдано предупреждение о том, что файл будет расшифрован.
Методом редактирования реестра возможно добавить в контекстное меню проводника (и других, поддерживающих эту функциональность файловых менеджеров) пунктов «зашифровать» и «расшифровать», что повышает удобство работы при частом использовании этих функций, для чего необходимо создать (или изменить существующий) параметр реестра типа DWORD EncryptionContextMenu на 00000001, находящийся в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced.
Для работы с EFS пользователем имеется также возможность использовать интерфейс командной строки — команда cipher. При выполнении данной команды без параметров будет выведено содержимое текущей папки с меткой U перед файлом, если он не зашифрован, и E, если зашифрован.
Команда шифрования файла/папки имеет вид:
cipher /E <путь к папке>,
Команда дешифрования файла/папки имеет вид:
cipher /D <путь к папке>.
Данная утилита имеет ряд других возможностей, список которых может быть получен при помощи команды cipher /?, среди которых перешифрование файлов с новым ключом, генерация нового ключа шифрования, добавление агента восстановления и т. д.
При удалении файла или папки не происходит полного физического удаления информации, очищается лишь только «оглавление» файловой системы. С помощью утилиты cipher возможно частичное решение этой проблемы, так как существует возможность выполнить очистку свободного места на диске затиранием её. Для этого необходимо использовать синтаксис
cipher /W <путь к любой папке на разделе, подлежащем очистке>.
Коджешау Марина Айдамировна.Технологии и алгоритмы информационной безопасности // Вестник Адыгейского государственного университета. Серия 4: Естественно-математические и технические науки. — 2017. — № 2 (201).