Шифрующая файловая система (EncryptingFileSystem, EFS) — компонент NTFS 5.0, с помощью которого пользователи Windows могут обеспечить конфиденциальность файлов на диске формата NTFS.
Уникальная особенность EFS — восстановление данных. Благодаря этой функции можно выделить набор локальных и доменных учетных записей для шифрования и восстановления пользовательских данных. Она незаменима, если пользователи теряют или удаляют ключи EFS и не могут получить доступ к собственным зашифрованным данным. Начиная с версии EFS, встроенной в Windows 2003 и XP, EFS может функционировать как с учетной записью восстановления данных, так и без нее. EFS хранит данные для шифрования и восстановления данных в файловых потоках, связанных с зашифрованными файлами. EFS хранит отдельные зашифрованные копии ключа FEK в файловых потоках NTFS: одну доступную только для учетной записи пользователя, зашифровавшего данные, и по одной для каждого агента восстановления данных. Первая располагается в поле, называемом DDF (DataDecryptionField — поле дешифрации данных), а вторая находится в поле DRF (DataRecoveryField — поле восстановления данных).
Главная проблема EFS — потеря данных из-за того, что пользователи не знают или просто забывают, как важно делать резервные копии закрытого ключа EFS. В Windows 2003, XP и Windows 2000 система EFS не предупреждает пользователя о важности резервного копирования закрытого ключа EFS на носителе (например, флэш-памяти USB), отличном от жесткого диска, содержащего операционную систему. В системе Vista операционная система автоматически приглашает пользователя сделать резервную копию закрытого ключа EFS. Резервную копию закрытого ключа EFS можно получить из оснастки MicrosoftManagementConsole (MMC) Certificates. Восстановление данных EFS основано на существовании сертификата восстановления EFS и закрытого ключа, принадлежащего административной учетной записи. Это обеспечивает доступ к зашифрованным данным из учетной записи восстановления, если пользователь теряет свой закрытый ключ или его резервную копию. Функция восстановления данных EFS как таковая также защищает от потерь зашифрованных данных.
Повторная генерация ключей EFS — ценная возможность при переходе пользователей на новый закрытый ключ EFS, так как при этом устраняется зависимость пользователя от старых ключей. Благодаря повторной генерации ключей устраняется необходимость в резервном копировании старого частного ключа EFS и сохранении копии для доступа к ранее зашифрованным данным.
В Vista появились два изменения в графическом интерфейсе Windows: поддержка смарт-карт и возможность более эффективного использования EFS для файлов, расположенных на удаленных компьютерах. Компания Microsoft, наконец, обеспечила хранение закрытого ключа EFS в смарт-картах. Хранение закрытых ключей в смарт-картах — самый безопасный способ. В предыдущих версиях Windows закрытый ключ EFS можно было хранить только в профиле пользователя на жестком диске. Если каждая система, в которую входит пользователь, оснащена устройством чтения смарт-карт, то смарт-карты — самый простой способ реализации перемещаемых ключей EFS.
Еще одно важное изменение — поддержка локального EFS-шифрования и дешифрации файлов, размещенных на удаленных компьютерах, например файл-серверах. В прошлых версиях EFS, когда пользователи обращались к зашифрованным файлам на файл-сервере, файл расшифровывался на файл-сервере и пересылался на рабочую станцию пользователя в чисто текстовом виде. В Vista внесены изменения в протокол ServerMessageBlock (SMB) — стандартный протокол для совместного доступа к файлам в Windows, что позволяет пересылать метаданные EFS между файл-сервером и рабочей станцией пользователя. В результате защищенный EFS файл остается зашифрованным на всем пути движения к клиенту.
EFS основана на ассиметричной криптографии. У каждого пользователя есть свой секретный ключ, которой известен всем и личный ключ, которой известен только пользователю. ОС получает доступ к личному ключу только при работе данного пользователя в системе. Данная пара ключей пользователя формируется, когда пользователь впервые воспользуется шифрованием. Данная пара связана с SID пользователя и остается неизменяемой пока существует данная запись.
Сами файлы шифруются быстрым симметричным алгоритмом при помощи случайно сгенерированного ключа из ГСЧ. В Widows 2000 используется алгоритм DESX. В WidowsХР используется 3DES. Начиная с WidowsХР SP1 По-умолчанию используется AES.
Даже файловый ключ шифруется с помощью ассиметричного алгоритма RSA на открытом ключе пользователя и записывается в поле расшифровки файла. Начиная с WidowsХР этих полей может быть несколько, что обеспечивает возможность работы нескольких пользователей.
Также файловый ключ с помощью этого же алгоритма шифруется на открытом ключе агента восстановления и записывается в поле восстановления файла. Для страховки от потери пароля создают дискету восстановления пароля. При этом запуститься мастер отработки паролей. При этом на дискете создаться файл, где будет храниться ваш пароль в шифрованном виде.