Файловая система с шифрованием более надежна и безопасна, чем полагают многие

В различных списках рассылки, посвященных безопасности в Internet, часто встречаются вопросы администраторов о безопасных и простых в применении продуктах шифрования файлов для Windows. Столь же часто менеджеры интересуются способами, с помощью которых можно помешать системным администраторам заглядывать в конфиденциальные файлы компании. Когда я предлагаю использовать собственную файловую систему с шифрованием (Encrypting File System, EFS) Windows, большинство собеседников отвечают, что им нужно что-то более надежное и безопасное.

Но вопреки распространенному мнению, EFS — действительно надежное, простое в эксплуатации и безопасное решение для шифрования, и с его помощью можно осадить даже самого любопытного сетевого администратора. EFS — отличное средство защиты конфиденциальных файлов в сети и на портативных компьютерах, которые часто становятся объектами кражи. К сожалению, репутация EFS незаслуженно страдает из-за отказа пользователей объективно оценить любое средство обеспечения безопасности от Microsoft. В действительности EFS — один из лучших продуктов безопасности, когда-либо выпущенных Microsoft, но для его применения необходимы соответствующие знания. В данной статье рассказывается об основах EFS, ее назначении и функциональности, базовых административных операциях и возможных ошибках.

Принципы EFS

Компания Microsoft выпустила EFS вместе с Windows 2000 и постоянно совершенствовала версии продукта для Windows XP и Windows Server 2003. Пользователи EFS могут зашифровать любой файл или папку, на которую у них есть разрешения Read и Write. После шифрования ресурс расшифровывается «на ходу» при любом обращении к нему законного владельца. Пользователи, которые попытаются обратиться к защищенному файлу или папке без соответствующих разрешений EFS, увидят имя файла или папки, но не смогут открыть, изменить, скопировать, распечатать, отправить по электронной почте и переместить файл или папку. Любопытно, что пользователи, имеющие разрешение NTFS для удаления EFS-защищенного файла, могут удалить его, даже если не имеют права прочитать. Как и большинство продуктов шифрования, EFS предназначена для защиты конфиденциальности, но не предотвращает потери данных. Задача EFS считается успешно выполненной, если несанкционированный пользователь не может увидеть данные ни в какой форме. Некоторые пользователи утверждают, что даже возможность увидеть имя защищенного файла или папки — непростительный недостаток Windows.

Кроме того, необязательно быть владельцем или иметь разрешения Full Control для файла или папки, чтобы зашифровать их. Для этого достаточно разрешений Read и Write — тех самых, которые необходимы для доступа к ресурсу. Доступ к файлу или папке имеет только пользователь, зашифровавший их (и другие лица, с которыми первый пользователь согласится разделить ресурс). Единственное общее исключение — агент восстановления данных (data recovery agent, DRA). По умолчанию (в большинстве случаев) Windows назначает агентом DRA администратора, чтобы тот мог обратиться к любому файлу или папке, зашифрованным EFS. В доменной среде DRA — администратор домена; в недоменной среде DRA — локальный администратор.

Функция шифрования файлов и папок активна по умолчанию, но пользователь должен выбрать каждый файл или папку отдельно (или косвенно через обычные правила наследования). Для EFS необходимо, чтобы файл или папка располагались на разделе диска NTFS. Затем, чтобы защитить файл или папку, достаточно щелкнуть правой кнопкой мыши на ресурсе в Windows Explorer, выбрать пункт Properties, а затем щелкнуть на кнопке Advanced во вкладке General. (Примечание: не следует щелкать на кнопке Advanced во вкладке Security.) Наконец, требуется установить флажок Encrypt contents to secure data.

Если выделить один или несколько файлов (в отличие от папки), то EFS спрашивает, следует ли зашифровать только файл(ы) или родительскую папку и текущий(е) файл(ы). Если выбрано второе, EFS отмечает папку как зашифрованную. Все файлы, которые будут добавляться в папку, будут шифроваться по умолчанию, хотя любые файлы, находившиеся в папке, но не выбранные во время операции шифрования EFS, останутся незашифрованными. Во многих случаях предпочтительно шифровать всю папку вместо отдельных файлов, особенно потому что ряд программ (например, Microsoft Word) создают временные файлы в той же папке, в которой находится открытый файл. После завершения работы программы (например, в случае аварийной перезагрузки) временные файлы часто остаются неудаленными и представлены в чисто текстовом формате, доступном для восстановления посторонним лицом.

По умолчанию в версиях XP Professional и более поздних EFS выделяет зашифрованные файлы зеленым цветом, но выделение можно отменить, выбрав пункт Folder Options из меню Tools в Windows Explorer, а затем сбросив флажок Show encrypted or compressed NTFS files in color на вкладке View. В представлении Details проводника Windows у сжатых файлов в столбце Attributes наряду с обычным атрибутом Archive (A) содержится атрибут E. В результате набор атрибутов будет иметь вид AE. Следует отметить, что встроенные механизмы Windows нельзя использовать для одновременного шифрования и сжатия файлов, хотя можно сжать файл с помощью утилиты независимого поставщика, такого как WinZip или PKZIP, а затем зашифровать сжатый файл.

Надежный шифр

EFS обеспечивает надежное шифрование — настолько надежное, что при потере частного ключа EFS (используемого для восстановления файлов, защищенных шифром EFS), весьма вероятно, прочитать данные уже не удастся. Если параметры EFS настроены корректно, то даже администратор не может обратиться к зашифрованному файлу или папке, если только он не назначен агентом DRA.

В настоящее время в продаже имеется по крайней мере один продукт — Advanced EFS Data Recovery (AEFSDR) компании ElcomSoft, авторы которого заявляют о возможности восстановления EFS-защищенных файлов. В действительности программа восстанавливает пароль локального администратора (простой процесс, если конфигурация Windows настроена неудачно), с помощью которого затем можно извлечь частный ключ EFS администратора. Пользователь, который располагает инструментом для разгадывания пароля администратора, может совершать любые действия в системе. Обращение такого пользователя к EFS-защищенным файлам будет самой мелкой из грозящих предприятию неприятностей. Риск несанкционированного восстановления частного ключа EFS снижает то, что в домене роль DRA назначается учетной записи администратора домена, а не учетной записи локального администратора, пароль которого можно разгадать с помощью почти любого средства взлома. В XP появилась новая политика, которая затрудняет проведение атак подобного типа. Если инструмент восстановления не может извлечь текущий — и правильный — пароль администратора (многие инструменты не восстанавливают, а сбрасывают пароль), то защита EFS по-прежнему действует.

Как работает EFS?

В EFS используется комбинация симметричного и асимметричного шифрования. При использовании симметричного метода файл шифруется и восстанавливается с помощью одного ключа. Асимметричный метод заключается в использовании открытого ключа для шифрования и второго, но связанного с ним частного ключа для восстановления данных. Если пользователь, которому предоставляется право восстановления данных, никому не раскрывает частный ключ, защищенному ресурсу ничего не грозит.

EFS активизируется по умолчанию на всех системах Windows 2000 и более поздних. Если кто-то впервые использует EFS для защиты файла или папки, то Windows проверяет доступность сервера PKI (public key infrastructure — инфраструктура открытых ключей), способного генерировать цифровые сертификаты EFS. Службы Certificate Services в Windows 2003 и Windows 2000 могут генерировать сертификаты EFS, как и некоторые PKI-продукты других фирм. Если Windows не обнаруживает приемлемого PKI-провайдера, то операционная система генерирует и самостоятельно подписывает сертификат EFS для пользователя (экран 1). Срок годности самостоятельно подписанных сертификатов EFS — 100 лет, намного больше, чем время их эксплуатации кем-либо из пользователей.

Экран 1. Генерация самостоятельно подписываемого сертификата EFS

Если Windows обнаруживает сервер Certificate Services, тот автоматически генерирует и передает пользователю двухлетний сертификат. Вероятно, это сделано из-за того, что, если организация располагает внутренней службой PKI, PKI-сервер может легко выдавать и возобновлять EFS-сертификаты по истечении срока действия оригинала. В любом случае сертификаты EFS можно просмотреть, дополнив консоль Microsoft Management Console (MMC) оснасткой Certificates и заглянув в контейнер Personal.

Частный ключ EFS-пользователя (который открывает EFS-защищенные файлы) шифруется мастер-ключом пользователя и хранится в профиле пользователя в разделе Documents and Settings, <Имя пользователя>, Application Data, Microsoft, Crypto, RSA. Если используется перемещаемый профиль, то частный ключ находится в папке RSA на контроллере домена (DC) и загружается в пользовательский компьютер в процессе регистрации. Для генерации мастер-ключа применяется текущий пароль пользователя и 56-, 128- или 512-разрядный алгоритм RC4. Вероятно, главное, что необходимо знать о EFS, — частный ключ EFS-пользователя находится в его профиле и защищен мастер-ключом, полученным на основе текущего пароля пользователя. Следует обратить внимание, что надежность шифрования EFS определяется надежностью пароля пользователя. Если злоумышленник разгадает пароль пользователя EFS или зарегистрируется от лица законного пользователя, то в защите EFS появится трещина.

Если пароль пользователя утерян или сброшен (но не изменен самим пользователем), то можно лишиться доступа ко всем EFS-защищенным файлам. По этой причине копии частного ключа EFS-пользователя следует обязательно хранить в двух или нескольких безопасных удаленных хранилищах либо назначить одного или нескольких агентов DRA (а их частные ключи экспортировать и сделать резервные копии в двух или нескольких отдельных и безопасных удаленных хранилищах). Несоблюдение этих правил может привести к потере данных.

Если файл или папка зашифрованы впервые, то Windows генерирует случайный симметричный ключ с использованием 128-разрядного алгоритма Data Encryption Standard X (DESX — применяется по умолчанию в XP и Windows 2000) или 256-разрядного алгоритма Advanced Encryption Standard (AES — в Windows 2003 XP Pro Service Pack 1). Оба алгоритма — общепризнанные правительственные стандарты, хотя второй из них более современный и рекомендуемый к применению. Можно активизировать и старый правительственный стандарт симметричного шифрования, 168-разрядный Triple DES (3DES), если его использование предусмотрено правилами организации. Более подробная информация приведена в статье Microsoft «Encrypting File System (EFS) files appear corrupted when you open them» (http://support.microsoft.com/default.aspx?scid=kb;en-us;329741&sd=tech). Случайно генерируемый симметричный ключ известен как ключ шифрования файлов (file encryption key, FEK). Этот ключ — единственный используемый Windows для шифрования файлов и папок, независимо от количества людей, которые обращаются к защищенному EFS ресурсу.

После всего Windows шифрует FEK с помощью 1024-разрядного открытого EFS-ключа RSA и сохраняет FEK в расширенных атрибутах файла. Если назначены агенты DRA, то операционная система сохраняет другую, зашифрованную копию FEK с открытым EFS-ключом агента DRA. Затем Windows сохраняет зашифрованный экземпляр FEK в файле. В XP и более поздних версиях EFS-доступ к конкретному файлу или папке может иметь несколько пользователей. Каждый авторизованный пользователь будет иметь собственный FEK, зашифрованный уникальным открытым ключом EFS. В Windows 2000 можно назначить лишь одного агента DRA.

Если авторизованный пользователь обращается к защищенному файлу, то Windows восстанавливает его экземпляр зашифрованного FEK с помощью частного EFS-ключа, связанного с пользователем. Затем с помощью FEK зашифрованный файл будет разблокирован. В отличие от первых версий EFS в Windows 2000, в настоящее время EFS безопасно управляет всеми зашифрованными файлами и папками в памяти, поэтому на диске не остается чисто текстовых фрагментов, которые можно было бы незаконно восстановить.

Совместное использование файлов EFS

В Windows 2000 только один пользователь может одновременно защитить файл с помощью EFS, но в XP Pro и более поздних версиях уже несколько пользователей могут совместно работать с защищенным EFS-файлом. При совместной работе первый пользователь, который защитил файл или папку, управляет доступом остальных. Выполнив первоначальную процедуру защиты файла или папки, пользователь может указать дополнительных пользователей, щелкнув на кнопке Details (экран 2). Число добавляемых пользователей не ограничено. Каждый пользователь имеет собственный экземпляр FEK, зашифрованного с помощью его EFS-ключа. Это новшество XP очень удобно для совместной работы с EFS-защищенными файлами групп пользователей. К сожалению, организовать совместную работу можно только на уровне отдельных файлов, но не папок. Пользователь должен зашифровать один файл или папку либо получить сертификат EFS, прежде чем его можно будет назначить дополнительным пользователям.

Экран 2. Закладка Details

Агент DRA

Удалить профиль пользователя очень легко, а администраторы часто сбрасывают пользовательские пароли, поэтому сетевые администраторы должны сделать резервные копии ключей EFS или назначить одного или нескольких агентов DRA. Получить резервную копию частного ключа EFS пользователя можно, обратившись к цифровому сертификату EFS в консоли Certificates и установив флажок Copy to file на вкладке Details. В XP Pro и более поздних версиях можно воспользоваться также кнопкой Backup Keys, которая находится под кнопкой Details в разделе совместного использования файлов EFS. Любители командной строки могут применить команду

cipher.exe /x

чтобы получить резервные копии EFS-ключей в Windows 2003, а также в XP Pro SP1 и более поздних версиях. Отвечая на последующие приглашения, можно сделать копии и/или экспортировать соответствующий частный ключ. Никогда не следует удалять частный ключ EFS-пользователя, как Windows предлагает сделать при экспорте, так как после этого пользователь не сможет расшифровать свои защищенные файлы. После экспорта частного ключа следует сохранить ключ в двух отдельных автономных хранилищах. Процедура резервного копирования частных ключей EFS отдельных пользователей отличается трудоемкостью. Начиная с Windows 2000 Microsoft позволяет выбрать агента DRA. Каждый раз, когда кто-то шифрует файл или папку, DRA автоматически получает экземпляр FEK. В Windows 2000 (режим рабочей группы или домена), XP (только режим домена) и Windows 2003 (режим рабочей группы или домена) агентом DRA по умолчанию назначается администратор, хотя он может изменить учетную запись пользователя, назначенного на роль DRA. К сожалению, в режиме рабочей группы XP агент DRA не определен. Это решение было принято в ответ на критику относительно уязвимости EFS-защищенных файлов в случае взлома пароля администратора. К сожалению, многие системы XP Pro функционируют в режиме рабочей группы, и достаточно сбросить пароль или повредить профиль, чтобы все пользователи EFS потеряли свои файлы. Используя EFS (нельзя забывать, что механизм активен по умолчанию и доступен пользователям), следует убедиться, что пользователи EFS сделали копии частных ключей либо назначены один или несколько агентов DRA.

Если роль DRA планируется поручить пользовательской учетной записи, отличной от выбираемой по умолчанию учетной записи администратора, то сменщик должен обладать сертификатом EFS Recovery Agent. Сертификат EFS Recovery Agent можно запросить в службе Certificate Services или установить из другого стороннего продукта PKI. Если развернута служба Windows 2003 Certificate Services, то вместо DRA можно реализовать агентов Key Recovery Agent. В конечном итоге агенты Key Recovery Agent восстановят потерянный ключ вместо прямого восстановления файла.

В отличие от частных ключей обычных пользователей EFS, частные EFS-ключи агентов DRA следует экспортировать и удалять из компьютеров. Если частные ключи агентов DRA похищены, то все файлы с FEK, защищенными открытым ключом DRA, могут стать уязвимыми. Поэтому ключи следует экспортировать и надежно сохранить в двух удаленных хранилищах. Если нужны ключи для восстановления зашифрованных файлов, то можно легко импортировать и использовать частные ключи.

Хотя по умолчанию администратор часто назначается агентом DRA, следует специально подготовить одну или две пользовательские учетные записи, вероятность удаления которых при любых обстоятельствах невелика. Открытый ключ DRA также копирует и защищает каждый FEK, поэтому при случайном удалении пользовательской учетной записи DRA или сбросе пароля трудно восстановить DRA-защищенный FEK. Если пользовательские учетные записи, имеющие статус DRA, изменены, то может оказаться, что EFS-защищенные файлы имеют ключи FEK, которые защищены старыми ключами DRA. Когда Windows обращается к файлам, DRA-защищенные FEK обновляются новейшими ключами DRA; однако можно использовать команду Cipher для принудительного массового обновления всех ключей FEK с применением текущих ключей DRA. Независимо от того, будет ли экспортирован и удален из системы частный ключ DRA, очень важно сохранить копии сертификата восстановления DRA в двух или нескольких безопасных удаленных хранилищах.

Дополнительные замечания

EFS не защищает файлы, копируемые по сети. Windows копирует все файлы, открытые на сетевом ресурсе, в чисто текстовом формате. Если необходимо шифровать в реальном времени файлы, хранящиеся на диске и копируемые через сеть, следует использовать другой метод защиты, IP Security (IPsec), Secure Sockets Layer (SSL) или WWW Distributed Authoring and Versioning (WebDAV). Кроме того, в XP и более поздних версиях можно активизировать защиту EFS для автономных файлов.

EFS — механизм локальной защиты. Он был разработан для шифрования файлов на локальных дисках. Чтобы применить EFS для защиты файлов, сохраненных на дисках удаленных компьютеров, между этими машинами должны существовать доверительные отношения для делегирования полномочий. Пользователи ноутбуков часто применяют EFS для ресурсов файл-сервера. Чтобы применить EFS на сервере, необходимо установить флажок Trust this computer for delegation to any service (Kerberos only) или Trust this computer for delegation to specified services only в учетной записи computer сервера (экран 3).

Экран 3. Реализация EFS на сервере

Можно запретить пользователям применять EFS, заблокировав ее с помощью Group Policy. Следует выбрать контейнер Computer Configuration, щелкнуть правой кнопкой мыши на Windows Settings и выбрать Security Settings, Public Key Policies, Encrypting File System. Затем можно сбросить флажок Allow users to encrypt files using EFS. Активизировать или блокировать EFS можно в отдельных организационных единицах (OU).

Перед использованием EFS необходимо убедиться в совместимости приложений с EFS и EFS API. Если приложения несовместимы, то EFS-защищенные файлы могут быть испорчены или, хуже того, не защищены без соответствующей авторизации. Например, если сохранять и изменять EFS-защищенный файл программой edit.com (16-разрядный исполняемый файл) из состава Windows, то все дополнительные пользователи потеряют доступ к этому файлу. Большинство приложений Microsoft (в том числе Microsoft Office, Notepad и Wordpad) полностью совместимы с EFS.

Если уполномоченный пользователь копирует EFS-защищенные файлы на раздел FAT, то защита EFS будет снята. Неавторизованный пользователь не должен иметь права перемещать или копировать файлы на любые разделы Windows. Неавторизованный пользователь может загрузиться, помимо системы разрешений Windows NTFS, с помощью загрузочного гибкого диска или программы с компакт-диска, которая позволяет монтировать общий каталог NTFS (например, Knoppix, NTFSDOS, загрузочный гибкий диск Peter Nordahl-Hagen). В результате ему удастся скопировать или переместить файл, но если у него нет EFS-ключа авторизованного пользователя, то файл останется зашифрованным.

Оптимальные приемы

Ниже перечислены оптимальные приемы для работы с EFS.

  1. Определить число и идентифицировать учетные записи DRA.
  2. Генерировать сертификаты DRA для учетных записей DRA.
  3. Импортировать сертификаты DRA в Active Directory (AD).
  4. Экспортировать и удалить частные ключи DRA, сохранив их в двух отдельных, безопасных автономных хранилищах.
  5. Познакомить конечных пользователей с методами применения и особенностями EFS.
  6. Периодически тестировать восстановление файлов DRA.
  7. При необходимости периодически запускать команду Cipher с параметром /u, чтобы обновить ключи FEK для добавленных или удаленных DRA.

EFS — надежный и безопасный метод шифрования файлов и папок в системах Windows 2000 и более поздних. Сетевым администраторам следует построить и активизировать политику DRA и рассказать конечным пользователям о достоинствах и ограничениях EFS.


Роджер Граймз - Редактор Windows IT Pro и консультант по проблемам безопасности. Имеет сертификаты CPA, CISSP, CEH, CHFI, TICSA, MCT, MCSE: Security и Security+. roger@banneretcs.com