Иллюстрированный самоучитель по Secure Web

         

Шифрование файловой системы


Одним из главных достижений Win 2000 в области безопасности является шифрование файловой системы. Средство EPS (Encrypting File System) — это система шифрования на основе открытого ключа, предназначенная для кодирования данных на диске в реальном времени и предотвращения несанкционированного доступа к ним. Компания Microsoft опубликовала статью, описывающую детали функционирования EPS (http://www.microsoft.com/windows200/
library/howitworks/security/encrypt.asp). Система EFS позволяет закодировать файл или папку с помощью быстрого симметричного алгоритма шифрования на основе случайно сгенерированного ключа FEK (File Encryption Key) специально для этого файла или папки. В качестве алгоритма шифрования в исходной версии системы EFS используется расширенный стандарт шифрования данных DESX . Случайно сгенерированный ключ для шифрования файла сам, в свою очередь, кодируется с помощью одного или нескольких открытых ключей, включая ключ пользователя (в Win 2000 каждый пользователь получает пару ключей — открытый и закрытый) и агент восстановления ключа. Эти зашифрованные значения хранятся как атрибуты файла.

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

Хотя шифрование файловой системы во многих случаях может оказаться полезным, его не стоит применять для защиты данных разных пользователей одной рабочей станции друг от друга. Для защиты данных от других пользователей существуют списки управления доступом (ACL — Access Control List) файловой системы NTFS. Компания Microsoft рассматривает систему EFS как средство защиты от атак, направленных на получение данных в обход операционной системы (путем загрузки через другую операционную систему или использования средств доступа к жесткому диску от сторонних производителей), или для зашиты файлов, расположенных на удаленных серверах. В статье компании Microsoft, посвященной системе EFS. говорится буквально следующее: "Система EFS служит для обеспечения защиты информации от доступа из других операционных систем, т.е. от физического доступа к файлам раздела NTFS без соответствующих прав". Далее будет показано, насколько это утверждение соответствует истине.



Применение EFS

Систему EFS можно применять для шифрования любого файла или папки. Эту операцию можно выполнить в диалоговом окне свойств объекта с помощью кнопки Advanced во вкладке General. Кроме того, для шифрования и дешифрования файлов можно использовать утилиту командной строки cipher. Для получения справочной информации об этой программе введите команду cipher /?.

Хотя файлы можно шифровать и по отдельности, компания Microsoft рекомендует делать это на уровне папок, поскольку отдельно зашифрованные файлы могут подвергаться разнообразным манипуляциям или случайно оказаться расшифрованными. Кроме того, зашифрованные файлы не подлежат сжатию.

Для обеспечения наиболее рационального шифрования файловой системы авторы советуют прислушаться к рекомендациям по использованию EFS, приведенным в упомянутой выше статье компании Microsoft.

Будьте внимательны при перемещении зашифрованных файлов. Хотя при использовании стандартных механизмов резервного копирования (например, ntbackup.exe) зашифрованные файлы копируются без модификации, при выполнении обычной операции копирования файлы расшифровываются. Если файл копируется в раздел с файловой системой, отличной от NTFS 5.0, то после копирования файлы окажутся расшифрованными. При копировании файла на удаленный компьютер с файловой системой NTFS 5.0 он будет зашифрован, однако не будет идентичен оригиналу, поскольку удаленная копия будет зашифрована с помощью другого ключа. Таким образом, шифрование файловой системы защищает файлы только при хранении на диске, а при перемещении файлов они расшифровываются.

Расшифровка ключа агента  восстановления EFS

Продолжим начатое ранее обсуждение статьи Джеймса Дж. Грейса (James J. Grace) и Томаса С.В. Бартлетта III (Thomas S. V. Bartlett III). Возможность изменения пароля учетной записи администратора может иметь гораздо более серьезные последствия, если учесть, что учетная запись Administrator по умолчанию является агентом восстановления ключа. Если зарегистрироваться в системе с пустым паролем администратора, то все зашифрованные системой EFS файлы будут декодированы, поскольку администратор может получить доступ к ключу кодирования файлов (а значит, и содержимому этих файлов) с помощью своего ключа восстановления.



Почему это происходит? Напомним, как работает система EFS. Случайно сгенерированный ключ шифрования файла РЕК сам кодируется с помощью других ключей, и это зашифрованное значение хранится в качестве атрибута файла. Ключ РЕК, зашифрованный с помощью открытого ключа пользователя (каждый пользователь системы Win 2000 имеет пару ключей: закрытый и открытый), хранится в атрибуте DDF (Data Decipher Field). При доступе к файлу атрибут DDF расшифровывается закрытым ключом, и с помощью декодированного ключа РЕК расшифровывается сам файл. Значение, полученное после расшифровки ключа РЕК с помощью ключа агента восстановления, хранится в атрибуте DRF (Data Recovery Field). Поэтому, если локальная учетная запись администратора является агентом восстановления (а по умолчанию это так), то любой человек с правами администратора в данной системе может декодировать значение атрибута DRF своим закрытым ключом, получить ключ РЕК и расшифровать файл.

Делегирование прав агента восстановления не решает проблему

На первый взгляд может показаться, что проблему легко решить, делегировав права агента восстановления другой учетной записи. На самом деле это не так. Джеймс Дж. Грейс (James J. Grace) и Томас С.В. Бартлетт III (Thomas S. V. Bartlett III) разработали средство для изменения пароля любой учетной записи, определенной как агент восстановления.

Конечно же, хакеров не интересует сам агент восстановления. Просто это самый простой способ доступа к любому файлу на диске, зашифрованному системой EFS. Еще один способ борьбы с делегированием прав агента восстановления — просто "представиться" пользователем, зашифровавшим файл. Утилита chntpw (см. выше) позволяет изменить пароль любой учетной записи в автономном режиме. Затем взломщик может зарегистрироваться в системе как нужный ему пользователь и декодировать значение атрибута DDF с помощью своего закрытого ключа, расшифровав таким образом ключ FEK. и сам файл. При этом закрытый ключ агента восстановления данных не понадобится.



Экспортирование ключей восстановления и их безопасное хранение

В ответ на статью Джеймса Дж. Грейса (James J. Grace) и Томаса С.В. Бартлетта III (Thomas S. V. Bartlett III) компания Microsoft признала, что таким способом действительно можно обойти систему EFS, но в свое оправдание заявила, что для предотвращения этой атаки нужно правильно хранить ключ восстановления EFS (http://www. microsoft.com/technet/security/analefs.asp).

К сожалению, приведенное по этому адресу описание процесса экспортирования устарело, а в файлах справки по EFS другой способ не приводится. Чтобы экспортировать сертификат агента восстановления на отдельный компьютер, откройте аплет задания групповой политики Group Policy (gpedit.msc), найдите элемент Computer ConfigurationWVindows Settings\Security Settings\Public Key PoliciesVEncrypted Data Recovery Agents и выберите из контекстного меню агента восстановления на правой панели команду All Tasks>Export.



Запустится мастер, после выполнения рекомендаций которого ключ восстановления будет экспортирован. Для резервного копирования ключа агента восстановления вместе с сертификатом необходимо экспортировать и закрытый ключ. При этом авторы рекомендуют использовать защиту паролем.

И наконец, не забудьте удалить закрытый ключ, выбрав опцию Delete The Private Key If export Is Successful. После этого заполучить ключ к агенту восстановления из локальной системы будет крайне сложно (авторы просто избегают употреблять слово "невозможно"):

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



Файлы, зашифрованные до удаления агента восстановления, остаются зашифрованными, но могут быть открыты только соответствующим пользователем или после восстановления агента из резервной копии.

Для узлов, входящих в домен, ситуация отличается. Ключи восстановления всех систем, входящих в домен, хранятся на его контроллере. При добавлении к домену компьютера под управлением Win 2000 автоматически вступает в силу используемая по умолчанию политика восстановления домена и агентом восстановления становится администратор домена, а не локальный администратор. Таким образом, ключи восстановления физически отделяются от зашифрованных данных, что значительно затрудняет описанную атаку. Не мешает также экспортировать сертификат агента восстановления с контроллера домена, поскольку при их получении уязвимыми станут все компьютеры данного домена.

Компания Microsoft в ответном документе также утверждает, что возможность удаления файла SAM, приводящую к установке пароля администратора в NULL, можно предотвратить с помощью ключа SYSKEY. Но выше было показано, что это не так, если не выбран режим его защиты паролем или хранения на гибком диске (в статье об этом умалчивается).


Содержание раздела