Операционная система

Windows® 2000:  файловая система с шифорванием.

Аннотация

Этот документ содержит краткое изложение, а также технический обзор файловой системы с шифрованием (EFS - Encrypting File System), которая включена в операционную систему Microsoft® Windows® 2000.

Основой EFS является технология шифрования, которая позволяет хранить файлы системы Windows NT (файловая система NTFS) в зашифрованном виде. Помимо прочего, EFS решает проблему несанкционированного доступа к данным, возникающую вследствие наличия в других операционных системах средств, позволяющих бесконтрольно получить доступ к файлам тома NTFS. При наличии EFS данные в файлах NTFS хранятся на диске в зашифрованном виде. Шифрование основывается на технологии открытого ключа и работает как встроенный системный сервис, обеспечивая простоту работы с данными и в то же время сильно затрудняя несанкционированный доступ. Пользователь, имеющий личный ключ к зашифрованному файлу NTFS, сможет открыть этот файл и свободно работать с данными в обычном режиме. Пользователь, не имеющий личного ключа, просто не получит доступа к файлу.

 


1998 Microsoft Corporation. Все права защищены

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

Этот документ имеет исключительно информационный характер. MICROSOFT НЕ ДАЕТ НИ ПРЯМЫХ, НИ КОСВЕННЫХ ГАРАНТИЙ НА ЭТОТ ДОКУМЕНТ.

Логотип BackOffice, Microsoft, MS-DOS, Win32, Windows и Windows NT являются зарегистрированными торговыми знаками корпорации Microsoft.

Другие продукты и имена компаний, упомянутые здесь, могут быть торговыми марками их законных владельцев.

Microsoft Corporation • One Microsoft Way • Redmond, WA 98052-6399 • USA

0699©


Содержание


Введение...................................................................................... 1

Технология шифрования в EFS......................................... 3

Местонахождение EFS...................................................................... 3

Взаимодействие с пользователем..................................................... 3

Восстановление данных.................................................................... 4

Использование файловой системы с                             шифрованием      6

Операции пользователя..................................................................... 6

Шифрование файлов и каталогов                                                   8

Дешифрование файлов и каталогов                                             10

Операции восстановления............................................................... 10

Восстановление данных                                                                11

Примеры.......................................................................................... 12

Рекомендации по использованию.................................................... 17

Архитектура EFS..................................................................... 19

Криптография.................................................................................. 19

Реализация...................................................................................... 22

Требования политики....................................................................... 23

Требования политики восстановления                                          23

Требование действительности сертификатов                               24

Вопросы безопасности.................................................................... 25

Прикладные интерфейсы программирования................................... 27

Экспортные проблемы EFS............................................... 32

Выводы...................................................................................... 33

Дополнительная информация....................................... 34

 


Введение


Стандартной мерой защиты от аппаратных сбоев в любой персональной компьютерной системе является возможность запуска операционной системы с гибкого диска в том случае, если обычный запуск с жесткого диска не проходит по какой-либо причине. Такая возможность защищает пользователей от потери данных в случае повреждения загрузочного сектора. К сожалению, эта возможность позволяет производить запуск различных операционных систем. Злоумышленник может благодаря доступу к дискам на физическом уровне считать информацию в обход встроенных в файловую систему Microsoft® Windows NT® (NTFS) средств разграничения и защиты от несанкционированного доступа. Большинство компьютеров предоставляет возможность защиты от перезапуска системы с помощью пароля для предотвращения такой возможности утечки информации. Однако, такая защита не получила широкого распространения, поскольку она малоэффективна в случае, когда несколько пользователей используют для работы одну и ту же рабочую станцию. Даже если считать такую защиту универсальной, следует иметь в виду, что она сравнительно легко преодолима. Кроме того, жесткий диск можно извлечь из защищенного компьютера и вставить в другой компьютер, который либо не защищен, либо доступ к которому известен злоумышленнику.

Можно определить следующие типичные сценарии несанкционированного доступа к информации:

Украденный переносной компьютер. Не требуется много времени, чтобы подобрать оставленный без присмотра переносной компьютер. Что будет, если вор заинтересован не в продаже украденного компьютера, а в овладении важной информацией, которая записана на жестком диске этого компьютера?

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

Причиной обоснованности таких опасений является наличие конфиденциальной информации, записанной в незащищенных файлах на жестких дисках. Можно ограничить доступ к конфиденциальной информации, записанной в разделах NTFS, если Windows NT является единственной операционной системой, которая может быть запущена, и если жесткий диск не может быть физически удален. Однако все это не может надежно защитить от утечки информации, поскольку злоумышленник может успешно считывать вашу информацию при помощи средств физического доступа к данным на жестких дисках. Доступность таких средств физического доступа к файлам NTFS из операционных систем типа MS-DOS® и UNIXпозволяет не преодолевать систему защиты NTFS, а обходить ее.

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

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

"Утечка" через временные файлы и файлы подкачки. Многие приложения образуют временные файлы во время редактирования документа (например, Microsoft Word). Эти файлы записываются на диск в незашифрованном виде, даже если окончательный файл и был зашифрован, облегчая тем самым "кражу" информации. Кроме этого, шифрование данных на уровне приложения работает в Windows NT в режиме пользователя. Это означает, что пользовательский ключ шифрования может быть записан в файл подкачки. Если извлечь ключ из этого файла, то можно легко и просто получить доступ ко всем зашифрованным файлам.

Слабая защищенность. Ключи шифрования образуются из паролей или парольных фраз. Такая защита (в случае использования легко запоминающихся паролей) может быть легко взломана. Использование же более сложных паролей усложняет использование системы защиты.

Невозможность восстановления данных. Многие программы не предоставляют возможность восстановления данных. Это еще один недостаток с точки зрения пользователей, в особенности тех их них, которые не желают запоминать много паролей. В тех случаях, когда предоставляется возможность восстановления данных, основанная на использовании пароля, возникает другое уязвимое место системы защиты информации от несанкционированного доступа. Все, что требуется злоумышленнику для получения доступа к шифрованным данным – это получить пароль к механизму восстановления данных.

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

Технология шифрования в EFS


EFS основывается на технологии шифрования с открытым ключом, используя архитектуру Windows CryptoAPI. Каждый файл шифруется при помощи ключа, генерируемого случайным образом, называемого ключом шифрования файла. Этот ключ не связан с парой открытых/личных ключей пользователя, отсекая таким образом различные способы "атак" на систему защиты, основанных на анализе зашифрованного текста.

Шифрование файлов может использовать любой симметричный алгоритм шифрования. Первая версия EFS будет использовать DESX в качестве алгоритма шифрования. Следующие версии позволят осуществлять выбор алгоритма шифрования.

EFS также поддерживает шифрование и дешифрование файлов, хранящихся на удаленных серверах. Примечание: в этом случае EFS позволяет осуществлять шифрование данных на диске, а при передаче данных по сети EFS не производит шифрования данных. Для шифрования данных при передаче их через сеть Windows 2000 предоставляет такие сетевые протоколы, как SSL и IPSEC.

Местонахождение EFS

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

Взаимодействие с пользователем

Конфигурация EFS по умолчанию дает пользователям возможность начать шифрование файлов без помощи администратора. EFS автоматически генерирует пару открытых ключей (public-key pair) и сертифицирует открытый ключ у полномочного сертификатора (Certificate Authority, CA). Если СА отсутствует, EFS сама подписывает открытый ключ.

Шифрование и дешифрование файлов поддерживается для файла или для целого каталога. Все файлы (и подкаталоги), создаваемые в каталоге, помеченного как "шифруемый", шифруются автоматически. Каждый файл имеет уникальный ключ шифрования, который сохраняется при переименовании файла. Если файл перемещается (переименовывается) из зашифрованного в незашифрованный каталог на том же томе, он остается зашифрованным. Шифрование и дешифрование файлов можно выполнять из Windows Explorer. Для квалифицированных пользователей и агентов восстановления имеются средства командной строки и интерфейсы администратора, позволяющие в полной мере использовать все возможности EFS.

Зашифрованный файл не требуется расшифровывать перед использованием – шифрование и дешифрование производятся автоматически при перемещении данных с диска или на диск. EFS автоматически распознает зашифрованный файл и использует сертификат пользователя и соответствующий личный ключ. Управление механизмом хранения ключей с помощью CryptoAPI позволяет хранить ключи в специальных устройствах, например в смарт-картах.

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

Причиной запрета на совместное использование файлов на уровне конечных пользователей в первой версии Windows 2000 является наличие приложений, реализующих некоторые операции (например, копирование файлов), которые могут привести к утере информации о разделении данных. По этой же причине не допускается и возможность шифрования файлов – некоторые приложения могли бы оставить файл незашифрованным после завершения работы с ним. Эти возможности станут доступными для конечных пользователей тогда, когда разработчики приложений будут лучше осведомлены в вопросах шифрования файлов.

Восстановление данных

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

Восстановление данных предназначено для тех сфер деятельности предприятия, где может возникнуть необходимость дешифрирования данных: в случае, если сотрудник, производивший шифрование, ушел из компании, а также в случае утраты ключа. Политика восстановления может быть определена на контроллере домена Windows 2000. Как и большинство других политик в Windows 2000, политика определяющая агентов восстановления конфигурируется как часть объекта групповой политики (Group Policy Objects, GPO). Эти объекты могут быть назначены для различных областей: доменов или организационных единиц (Organizational Units). Для каждого компьютера действительна та политика, которая определена в его ближайшем окружении. Для политики агентов восстановления шифрованных данных (Encrypted Data Recovery Agents Policy) не существует аккумуляции – поэтому если для различных областей было определены различные политики, то действительной будет последняя установленная. Для понимания принципов действия групповой политики, следует изучить информационные документы о групповой политике и администрированию Windows, доступные по адресу www.microsoft.com. Для получения информации по политике безопасности следует обратиться к информационному документу Security Configuration Tool Set, также доступному по адресу www.microsoft.com.

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

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

Использование шифрующей файловой системы


В следующих разделах приводятся сценарии, демонстрирующие работу EFS.

Операции пользователя

На рисунке показано страница свойств папок Windows Explorer, на которой отображены службы шифрования и диалоговое окно, появившееся после нажатия кнопки Advanced на вкладке General.

На следующем рисунке показано диалоговое окно, которое появляется после изменения флажка шифрования и нажатия кнопки Apply или OK.

Выбор кнопки Advanced на странице свойств папки предоставляет пользователю следующие возможности EFS:

Шифрование – Выбор флажка Encrypt contents to secure data (шифровать данные для защиты файлов) дает пользователю возможность зашифровать текущую папку. В дополнение к этому пользователь может зашифровать все файлы (и подкаталоги) текущего каталога.

Дешифрование – это действие противоположно шифрованию. Очистка флажка Encrypt contents to secure data дает пользователю возможность расшифровать выбранный каталог. Это также позволяет расшифровать все файлы (и подкаталоги) выбранного каталога и установить для каталога признак "расшифрованный".

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

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

Утилита командной строки Cipher – она позволяет задавать параметры шифрования/дешифрования файлов из командной строки.

Примеры:

·         Для шифрования каталога C:\My Documents следует набрать:

C:\>cipher /e My Documents

·         Для шифрования файлов, содержащих в имени текст “cnfdl”, следует набрать:

C:\>cipher /e /s *cnfdl*

Полное описание возможностей командной строки утилиты cipher:

D:\>cipher /?

Displays or alters the encryption of files on NTFS partitions. CIPHER [/E | /D] [/S:dir] [/P:keyfile] [/K:keyfile] [/L:keyfile] [/I] [/F] [/Q] [filename [...]]

 /E Encrypts the specified files. Directories will be marked so that files added afterward will be encrypted. (Шифрование указанных файлов. Каталоги будут помечены таким образом, что все вновь образуемые файлы будут зашифровываться.)

 /D Decrypts the specified files. Directories will be marked so that files added afterward will not be encrypted. (Дешифрование указанных файлов. Каталоги будут помечены таким образом, что все вновь образуемые файлы не будут зашифровываться.)

 /S Performs the specified operation on files in the given directory and all subdirectories. (Выполняет указанную операцию для всех файлов и подкаталогов текущего каталога.)

 /I Continues performing the specified operation even after errors have occurred. By default, CIPHER stops when an error is encountered. (Продолжает выполнение указанной операции после появления ошибки. По умолчанию CIPHER прекращает выполнение операции в случае появления ошибки.)

 /F Forces the encryption operation on all specified files, even those which are already encrypted. Already-encrypted files are skipped by default. (Производит операцию шифрования всех указанных файлов, в том числе и тех, которые уже зашифрованы. По умолчанию ранее зашифрованные файлы пропускаются.)

 /Q Reports only the most essential information. (Сообщает только наиболее существенную информацию.)

 /P Sets the recovery policy for this machine or domain. If keyfile is present, use contents to set recovery policy. If keyfile is not present, autogenerate recovery policy and save the results into keyfile. (Устанавливает политику восстановления для данного компьютера или домена. Если ключ восстановления указан, политика восстановления устанавливается в соответствии с этим ключом. В противном случае политика восстановления генерируется автоматически и результаты сохраняются.)

 /K Saves the user's EFS keys to the specified keyfile. (Сохраняет пользовательские ключи шифрования EFS в файле, на который указывает параметр keyfile.)

 /L Loads the keys in the specified keyfile into the current context. (Загружает ключи из файла, на который указывает параметр keyfile.)

 filename Specifies a pattern, file, or directory. (Указывает шаблон, файл или каталог.)

 Used without parameters, CIPHER displays the encryption state of the current directory and any files it contains. You may use multiple filenames and wildcards. You must put spaces between multiple parameters. (При запуске без параметров CIPHER выдает статус шифрования текущего каталога и файлов, входящих в этот каталог. Можно использовать несколько имен файлов, а также имена, в состав которых входят групповые символы. Параметры отделяются друг от друга пробелами.)

Шифрование файлов и каталогов

Все, что требуется от пользователя – это выбрать один или несколько каталогов и установить флажок шифрования в диалоговом окне расширенных свойств каталога.. Windows Explorer вызовет EFS для шифрования выбранного каталога и запросит подтверждение необходимости шифрования всех файлов и всех подкаталогов, входящих в выбранные каталоги. Установка для каталога признака "зашифрованный" гарантирует, что все создаваемые файлы и подкаталоги в этом каталоге также будут зашифрованы. Список файлов в каталоге не шифруется, можно входить в этот каталог как обычно и работать с именами файлов, если у вас имеется доступ в этот каталог. Шифрование каталога дает пользователю возможность управлять важными данными, просто копируя их в этот каталог.

Зашифрованный файл хранится на диске в зашифрованном виде. При чтении файла данные автоматически расшифровываются, а перед записью в файл зашифровываются. Чтобы определить, является ли файл зашифрованным, следует просмотреть свойства файла и убедиться в том, что флажок шифрования установлен. Режим просмотра списка в Windows Explorer может быть сконфигурирован для индикации статуса шифрования – об этом будет свидетельствовать символ 'E' в колонке. Поскольку шифрование прозрачно для пользователя, то он может работать с файлом как обычно. Например, можно открыть файл как документ Word и редактировать его как и раньше, или открыть и редактировать текстовый файл при помощи Notepad. При попытке других пользователей открыть этот файл будет получено сообщение о запрете доступа, так как они не имеют ключа для дешифровки файла.

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

EFS также предоставляет возможность перемещать зашифрованные файлы между системами. Это достигается при помощи стандартных механизмов резервного копирования и восстановления.. Все, что требуется пользователю – это скопировать зашифрованный файл на носитель, используя средство резервного копирования. Скопированный файл останется зашифрованным. Пользователь затем может скопировать файл в различные файловые системы, включая FAT, на ленточные носители, послать файл по электронной почте, то есть работать с ним, как с обычным файлом. Чтобы использовать файл в системе, в которую он был скопирован, следует восстановить файл на том NTFS (Примечание: только для Windows 2000), этот файл будет продолжать оставаться зашифрованным.

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

Дешифрование файлов и каталогов

Пользователям не потребуется дешифровать файлы или каталоги при обычных операциях, поскольку EFS обеспечивает прозрачное шифрование и дешифрование при выполнении операций записи и чтения. Однако, дешифрование может потребоваться в ряде специальных случаях, когда пользователь должен обеспечить доступ к зашифрованному файлу другим пользователям (совместный доступ к зашифрованным файлам в данной версии не поддерживается)[1].

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

Операции восстановления

Политика восстановления данных в EFS реализована как часть общей политики безопасности в системе. Она может быть сконфигурирована в объектах групповой политики (Group Policy ObjectsGPO) на уровне домена, на уровне групповых единиц в Active Directory, как это делается во всех компьютерах с Windows 2000 внутри определенной области, а также и на отдельном компьютере. Интерфейс пользователя (в виде подключаемого модуля Security Settings) встроен в Group Policy Editor (редактор групповой политики). Уровень называется “Encrypted Data Recovery Agents” (агенты восстановления зашифрованных данных) и появляется в качестве подуровня узла Public Key Policies.

Этот интерфейс позволяет администраторам иметь три варианта политики восстановления: “no recovery policy” – отсутствие политики восстановления, “empty policy ” – политика восстановления по умолчанию без назначения агентов или назначить для текущей области администрирования (домена, организационной единицы, компьютера) некоторое количество лиц в качестве агентов восстановления. Агенты восстановления могут быть владельцами сертификатов доступа X509 версии 3. Следующее меню позволяет добавить существующие сертификаты или образовать новые.

          

Примечание: Отсутствие политики восстановления (“no recovery policy”) означает выключение EFS, поскольку в этом случае пользователи текущей области администрирования будут лишены возможности шифровать данные на компьютерах, входящих в эту область администрирования. Установка “empty policy устанавливает политику восстановления по умолчанию, делая единственным агентом восстановления локального администратора текущей области и наделяя его правами управления восстановлением данных.

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

Восстановление данных

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

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

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

Примеры

Для лучшего понимания использования этой технологии рассмотрим несколько примеров.

Пример 1: Шифрование каталога на локальном компьютере

Нужно выполнить следующее:

·         Щелкните правой кнопкой мыши на выбранном каталоге, затем выберите пункт меню Properties.

·         Щелкните кнопку Advanced на вкладке General.

·         Устновите флажок Encrypt contents to secure data.

·         Щелкните кнопку OK для закрытия диалогового окна.

·         Щелкните кнопку OK для подтверждения и выхода из окна Properties.

·         В появившемся диалоговом окне будет сделан запрос о том, следует ли зашифровать только каталог или каталог и все его содержимое.

·         Выберите Apply changes to this folder and all subfolders для шифрования каталога и всего содержимого этого каталога (файлов и подкаталогов).

·         Щелкните кнопку OK. Можно убедиться, что шифрование произведено, просмотрев статус в окне атрибутов.

Пример 2: шифрование каталога на удаленном компьютере

Нужно выполнить следующее:

·         Используя меню Tools в Windows Explorer, подключите разделяемый сетевой ресурс как диск.

·         После этого вы можете работать с сетевым диском как и с дисками локального компьютера.

·         Проделайте те же шаги, что и в предыдущем примере для выполнения шифрования.

·         Обратите внимание: если удаленный том не является томом NTFS версии 5, операция не выполнится.

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

Пример 3:Дешифрование каталога

Нужно выполнить следующее:

·         Щелкните правой кнопкой мыши на выбранном каталоге, затем выберите пункт меню Properties.

·         Щелкните кнопку Advanced на вкладке General.

·         Очистите флажок Encrypt contents to secure data.

·         Щелкните кнопку OK для закрытия диалогового окна.

·         Щелкните кнопку OK для подтверждения и выхода из окна Properties.

·         В появившемся диалоговом окне будет сделан запрос о том, следует ли дешифровать только каталог или каталог и все его содержимое.

·         Выберите Apply changes to this folder and all subfolders для дешифрования каталога и всего содержимого этого каталога (файлов и подкаталогов).

·         Щелкните кнопку OK. Можно убедиться, что дешифрование произведено, просмотрев статус в окне атрибутов.

Пример 4: Копирование уже зашифрованного каталога.

Нужно выполнить следующее:

·         Выберите каталог в Windows Explorer.

·         Щелкните правой кнопкой мыши и выберите Copy.

·         Откройте каталог, в который следует поместить копию.

·         Щелкните правой кнопкой мыши и выберите Paste.

·         Каталог, в который произведено копирование, а также все содержимое этого каталога станет зашифрованным.

Пример 5: Резервное копирование уже зашифрованного каталога.

Нужно выполнить следующее:

·         Запустите программу Backup (StartàProgramsàAccessoriesà Backup).

·         Выберите каталог, который нужно скопировать.

·         Укажите имя файла резервного копирования (например ENCRYPTEDFILES.BKF), в который требуется скопировать содержимое требуемого каталога.

·         Нажмите кнопку Start Backup. Подтвердите продолжение процесса, щелкнув кнопку Backup в появившемся диалоговом окне.

·         Образуется резервная копия ранее зашифрованного каталога в файле страховой копии ( в данном случае ENCRYPTEDFILES.BKF).

·         Этот файл затем может быть скопирован на переносимый носитель (например на дискету), и это будет безопасно, поскольку этот файл зашифрован.

Пример 6: Восстановление зашифрованного каталога из резервной копии

Нужно выполнить следующее:

·         Запустить Backup (StartàRunàBackup).

·         Щелкните правой кнопкой мыши File и выберите Catalog file.

·         Введите путь к файлу резервной копии (например ENCRYPTEDFILES.BKF)

·         Выберите зашифрованный каталог, который требуется восстановить из копии. Все его содержимое будет также автоматически восстановлено.

·         Выберите восстановление файлов из копии в Alternate location.

·         Создайте или укажите каталог, в который следует поместить восстанавливаемый зашифрованный каталог.

·         Щелкните кнопку Start Restore.

·         В появившемся окне щелкните OK для подтверждения.

·         Щелкните OK для подтверждения файла восстановления.

·         В появившемся окне состояния можно будет наблюдать процесс восстановления зашифрованного каталога и его содержимого. Затем можно убедиться, выбрав пункт меню Properties, что каталог был восстановлен в зашифрованном виде.

Пример 7: Восстановление зашифрованного каталога

Нужно выполнить следующее:

·         Создайте резервную копию зашифрованного каталога (см. пример 5).

·         Отошлите полученный файл резервной копии по электронной почте своему агенту восстановления.

·         Агент восстановления произведет восстановление зашифрованного файла из полученной копии в какой-либо каталог на своем компьютере, используя пример 6. На компьютере агента восстановления должны быть введены ключи восстановления.

·         Затем агент восстановления просто дешифрует зашифрованный каталог, используя, например, Windows Explorer. В процессе восстановления диалоговое окно запросит необходимость дешифрации либо только файлов зашифрованного каталога, либо и всех подкаталогов зашифрованного каталога.

·         После того, как весь каталог будет дешифрован, агент восстановления может создать расшифрованную резервную копию каталога, используя пример 5. Эту расшифрованную резервную копию агент восстановления может затем отослать обратно либо электронной почтой, либо на переносимом носителе.

Рекомендации по использованию

Шифрование данных – это очень ответственная операция. Важно, чтобы зашифрованные данные не оказались расшифрованы непреднамеренно. Для предотвращения этого можно предложить следующее:

·         Зашифруйте каталог My Documents (%UserProfile%\My Documents) – это гарантирует, что все документы программы Microsoft Office будут зашифрованы по умолчанию.

·         Зашифруйте каталог Temp (%TEMP%) – это гарантирует защиту всех временных файлов, образуемых различными программами, от возможных посягательств.

·         Всегда шифруйте каталоги, а не отдельные файлы. Windows Explorer разрешает шифрование только на уровне каталога, а утилита CIPHER.EXE позволяет осуществлять шифрование отдельных файлов. Приложения работают с файлами различными способами, размещая, например, временные файлы в тех же каталогах, в которых находится оригинал. Шифрование данных на уровне каталога гарантирует, что утечка информации через временные файлы будет предотвращена.

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

Архитектура EFS


Этот раздел содержит краткий технический обзор архитектуры EFS.

Криптография

EFS осуществляет шифрование и дешифрование данных, используя схему шифрования с общим ключом. Данные файла шифруются быстрым симметричным алгоритмом при помощи ключа шифрования файла (file encryption key, FEK). FEK – это случайным образом сгенерированный ключ определенной длины. Длина ключа определяется алгоритмом шифрования, или получается по некоторой формуле, если алгоритм допускает ключи переменной длины. В данном документе обсуждаются также экспортные ограничения, касающиеся EFS.

FEK шифруется одним или несколькими общими ключами шифрования, в результате чего получается список зашифрованных ключей FEK. Общие ключи выделяются из пар пользовательских ключей сертификата X509 версии 3 с дополнительной возможностью использования, которая называется “File Encryption”. Список зашифрованных ключей FEK хранится в специальном атрибуте EFS, который называется Data Decryption Field. Информация, при помощи которой производится с шифрование данных, жестко связана с этим файлом. Личные ключи пользовательских пар используются при дешифровании данных. При помощи личных ключей дешифруется FEK. Личная часть пользовательской пары ключей хранится в недосягаемом месте либо на смарт-картах, либо в другой безопасной памяти, например в памяти, безопасность которой обеспечивается с помощью CryptoAPI.

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

FEK также шифруется при помощи одного или более ключей восстановления (полученных из сертификатов агента восстановления X509 версии 3, записанных в Encrypted Data Recovery Agent (ERDA) Policy – политике агента восстановления зашифрованных данных для данного компьютера – дополнительная возможность использования этого сертификата должна быть “File Recovery”). Как и в предыдущем случае, общая часть каждого ключа используется для шифрации списка FEK. Список зашифрованных ключей FEK также хранится вместе с файлом в специальной области EFS, которая называется Data Recovery Field, DRF – поле восстановления данных. Для шифрации списка FEK в DRF используется только общая часть каждой пары ключей. Для нормального осуществления файловых операций EFS только общие ключи восстановления должны постоянно присутствовать в системе. Политика EDRA определяет присутствие этих ключей в сертификатах X509 версии 3 с расширением “File Recovery”. Само по себе восстановление файлов считается редкой операцией, необходимой только в случае, если пользователи уходят из компании или теряют свои ключи. По этой причине агенты восстановления могут хранить свои личные ключи в безопасном месте где-либо вне системы (на микропроцессорных карточках доступа, либо в других защищенных устройствах с памятью). Ниже приводятся схемы, иллюстрирующие процессы шифрации, дешифрации, а также процесс восстановления данных. Процесс шифрации:

Незашифрованный файл пользователя шифруется при помощи случайно сгенерированного ключа FEK. Этот ключ записывается вместе с файлом, файл дешифруется при помощи общего ключа пользователя (записанного в DDF), а также при помощи общего ключа агента восстановления (записанного в DRF).

Примечание: На схеме показан только один пользователь и только один агент восстановления, в действительности может иметь место множество пользователей и несколько агентов восстановления с независимыми ключами.

Процесс дешифрации:

Сначала используется личный ключ пользователя для дешифрации FEK – для этого используется зашифрованная версия FEK, которая хранится в DDF. Расшифрованный FEK используется для поблочного дешифрования файла. Если в большом файле блоки считываются не один за другим, дешифрируются только те блоки, которые считываются. Файл в целом при этом остается зашифрованным.

Процесс восстановления:

Этот процесс аналогичен дешифрации файлов с той разницей, что для дешифрации FEK используется личный ключ агента восстановления, а зашифрованная версия FEK берется из DRF, а не из DDF. Эта простая схема предоставляет хорошую устойчивость системы шифрования, возможность совместного доступа большого количества пользователей к зашифрованному файлу, а также возможность восстановления данных при участии достаточного количества агентов восстановления, когда и если восстановление потребуется. Схема никак не связана с самим шифрованием, поэтому допускается применение большого количества различных алгоритмов шифрования. Это очень важно для дальнейшего развития системы при появлении более новых и совершенных алгоритмов шифрования.

Реализация

Архитектура EFS показана на рисунке:

 

EFS состоит из следующих компонент:

Драйвер EFS (EFS Driver). Эта компонента логически расположена на вершине NTFS. Он взаимодействует с сервисом EFS (работая как часть системы безопасности), получает ключи шифрования файлов, поля DDF, DRF и другие данные управления ключами. Драйвер передает эту информацию в FSRTL (file system run-time library - библиотека времени выполнения файловой системы) для прозрачного выполнения различных файловых системных операций (открытие файла, чтение, запись, добавление данных в конец файла).

Библиотека времени выполнения EFS. File System Run Time Library (FSRTL - библиотека времени выполнения файловой системы) – это модуль внутри драйвера EFS, который осуществляет внешние вызовы NTFS для выполнения различных операций файловой системы, таких как чтение, запись, открытие зашифрованных файлов и каталогов, а также операций шифрования, дешифрования, восстановления данных при записи на диск и чтении с диска. Несмотря на то, что драйвер EFS и FSRTL реализованы в виде одного компонента, они никогда не взаимодействуют напрямую. Для обмена сообщениями между собой они используют механизм вызовов NTFS. Это гарантирует участие NTFS во всех файловых операциях. Операции, реализованные с использованием механизмов управления файлами, включают запись данных в файловые атрибуты EFS (DDF и DRF) и передачу вычисленных в EFS ключей FEK в библиотеку FSRTL, так как эти ключи должны устанавливаться в контексте открытия файла. Такой контекст открытия файла позволяет затем осуществлять незаметное шифрование и дешифрование файлов при записи и считывании файлов с диска.

Служба EFS (EFS Service). Она является частью подсистемы безопасности. Служба EFS использует существующий порт связи LPC между LSA (Local Security Authority- локальные средства защиты) и работающим в режиме ядра монитором безопасности для связи с драйвером EFS. В режиме пользователя служба EFS взаимодействует с программным интерфейсом CryptoAPI, предоставляя ключи шифрования файлов и обеспечивая генерацию DDF и DRF. Кроме этого, служба EFS осуществляет поддержку интерфейса Win32® API. Этот программный интерфейс предназначен для шифрования, дешифрования, резервного копирования и восстановления. Win32 API поддерживают также удаленные операции шифрования, дешифрования, резервного копирования и восстановления.Win32 API. Обеспечивает интерфейс программирования для шифрования открытых файлов, дешифрования и восстановления закрытых файлов, приема и передачи закрытых файлов без их предварительной расшифровки. Этот интерфейс реализован в виде стандартной системной библиотеки advapi32.dll.

Требования политики

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

Политика безопасности включает в себя:

Требования политики восстановления

Политика восстановления зашифрованных данных включает в себя некоторое (возможно, нулевое) количество сертификатов X509 версии 3. Опция "Key Usage" этих сертификатов должна иметь значение “File Recovery”. Личные ключи этих сертификатов должны принадлежать лицам, которым эти сертификаты выданы. Эти лица называются агентами восстановления (“Recovery Agents”).

Политика восстановления может быть установлена для различных сфер действия:

·         Домен

·         Организационная Единица

·         Отдельный компьютер

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

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

По умолчанию политика восстановления конфигурируется для домена, то есть распространяется на все компьютеры, входящие в домен Windows 2000, использующий Active Directory. Учетная запись администратора домена по умолчанию позволяет администратору выполнять функции агента восстановления для домена. Аналогично конфигурируется и политика по умолчанию для отдельного компьютера, не входящего в домен: администратор локального компьютера является по умолчанию агентом восстановления.

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

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

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

Требование действительности сертификатов

Все сертификаты, пользователя или восстановления, проверяются на действительность перед их использованием. Действительным считается следующий сертификат:

·         С незаконченным сроком действия.

·         Не аннулированный.

·         Используемый по назначению.

·         Если последовательность связанных сертификатов заканчивается действительным сертификатом и каждый промежуточный сертификат также является действительным, в том числе в плане назначения использования ключей.

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

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

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

Вопросы безопасности

Шифрующая файловая система является устойчивой системой защиты файлов на физическом уровне. Для понимания этого следует рассмотреть различные возможности EFS и проанализировать их в плане безопасности. В этом разделе рассматриваются различные ситуации предполагаемой утечки информации и заложенные в EFS методы защиты:

·         Попытка открыть файлы, зашифрованные другими пользователями – EFS является незаметной для санкционированного пользователя при нормальной работе. Если пользователь пытается получить доступ к файлу, зашифрованному другим пользователем, EFS пытается выделить личный ключ, при помощи которого необходимо дешифровать ключ FEK в процессе открытия файла. Поскольку в данном случае личный ключ у пользователя другой, ключ FEK не будет дешифрован, и попытка закончится неудачно с выдачей сообщения “Access Denied”.

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

·         Попытка разрушить политику восстановления – Локальный администратор может попытаться найти в памяти место, где располагается информация политики восстановления и попытаться уничтожить или подменить её. Уничтожение не поможет, поскольку тогда EFS вообще не будет работать. Подмена политики восстановления не сработает, поскольку при попытке обращения к файлу новая политика будет перезаписана информацией доменной политики, то есть злоумышленнику вновь придется иметь дело с доменной политикой.

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

·         Вмешательство после фатального сбоя, спровоцированного в момент шифрования/дешифрования данных – EFS содержит схему восстановления после краха , в результате работы этой схемы никакие данные не теряются в случае фатальных неудач, таких как программный крах системы, переполнение диска или аппаратный сбой. Это осуществляется путем создания исходной резервной копии файла, который шифруется или дешифруется. После успешного завершения операции шифрования/дешифрования резервная копия оригинала уничтожается. Примечание - создание резервной копии имеет побочный эффект: исходная (открытая) версия шифруемого файла некоторое время физически остается на диске, пока не будет затерта при дальнейшем использовании дискового пространства системой NTFS для какого-либо другого файла. По этой причине рекомендуется сначала образовать пустой закрытый каталог и затем заполнять закрытыми файлами этот закрытый каталог. Такие действия гарантируют, что открытые части текста не будут записываться в какое-либо другое место на диске, а в этом каталоге будут быстро физически затерты.

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

·         Поддержка изменений пользовательских сертификатов и ключей – Как и в случае изменений политики восстановления, изменение пользовательских сертификатов и ключей происходит в процессе открытия файла. EFS проверяет возможность использования ключа пользователя в момент открытия файла. Файл может быть дешифрован только тем ключом, которым он зашифровывался. Если предъявленный для дешифрования пользовательский ключ устарел, DDF в файле переписывается заново с использованием текущего ключа пользователя. Заметим, что и агенты восстановления должны быть готовы использовать свои старые ключи до тех пор, пока не будет достигнута уверенность, что все зашифрованные файлы были перезаписаны с использованием новых ключей восстановления. Хотя ситуация с изменением пользовательских ключей менее напряжена, поскольку пользователям услуги (и ключи) агентов восстановления требуются лишь в случае утраты или случайной порчи пользовательских ключей.

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

Прикладные интерфейсы программирования

EFS предоставляет следующий набор интерфейсов программирования (API), позволяющий осуществить доступ к возможностям EFS из пользовательских приложений. Этот интерфейс используется различными приложениями, такими как Explorer, Cipher, NTBackup, EDRP Policy, предоставляющими возможности EFS конечным пользователям и администраторам.

EncryptFile

BOOL

EncryptFile(

 LPCTSTR lpFileName

 );

EncryptFile шифрует открытый файл, имя которого содержится в lpFileName. Файл может быть локальным или удаленным.

DecryptFile

BOOL

DecryptFile(

 LPCTSTR lpFileName,

 DWORD dwReserved

 );

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

FileEncryptionStatus

BOOL

FileEncryptionStatus(

 LPCTSTR lpFileName,

 LPDWORD lpStatus

 );

FileEncryptionStatus возвращает TRUE, если файл может быть зашифрован. Файл не может быть зашифрован, если он записан в файловой системе, которая не является NTFS версии 5, если файл помечен как системный.

QueryUsersOnEncryptedFile

DWORD

QueryUsersOnEncryptedFile(

 IN LPCTSTR lpFileName,

 OUT PENCRYPTION_CERTIFICATE_HASH_LIST *

 pUsers

 );

QueryUsersOnEncryptedFile возвращает информацию о пользователях, имеющих право расшифровать файл, имя которого содержится в lpFileName. Возвращаемая информация содержит идентификаторы безопасности (SID) пользователей, если такие идентификаторы имеются, имена пользователей, взятые из сертификата, и идентификаторы сертификата.

QueryRecoveryAgentsOnEncryptedFile

DWORD

QueryRecoveryAgentsOnEncryptedFile(

 IN LPCTSTR lpFileName,

 OUT PENCRYPTION_CERTIFICATE_HASH_LIST *

 pRecoveryAgents

 );

QueryRecoveryAgentsOnEncryptedFile возвращает информацию об агентах восстановления, имеющих право восстанавливать файл, имя которого содержится в lpFileName. Возвращаемая информация содержит идентификаторы безопасности (SID) агентов восстановления, если идентификаторы имеются, имена агентов, взятые из сертификата, и идентификаторы сертификатов.

RemoveUsersFromEncryptedFile

DWORD

RemoveUsersFromEncryptedFile(

 IN LPCTSTR lpFileName,

 IN PENCRYPTION_CERTIFICATE_HASH_LIST

 pHashes

 );

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

AddUsersToEncryptedFile

DWORD

WINAPI

AddUsersToEncryptedFile(

 IN LPCTSTR lpFileName,

 IN PENCRYPTION_CERTIFICATE_LIST pUsers

 );

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

SetUserFileEncryptionKey

DWORD

SetUserFileEncryptionKey(

 IN PENCRYPTION_CERTIFICATE

pEncryptionCertificate

        );

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

FreeEncryptionCertificateHashList

VOID

FreeEncryptionCertificateHashList(

 IN PENCRYPTION_CERTIFICATE_HASH_LIST pHashes

 );

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

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

OpenRaw

DWORD

OpenRawW(

 LPCTSTR lpFileName,

 ULONG ulFlags,

 PVOID * pvContext

 );

EFS предоставляет обычные и понятные файловые операции, такие как open, read, write. Для поддержки возможности чтения файл в зашифрованном виде для резервного копирования, необходимо совершить ряд подготовительных действий. Эти действия и выполняет новая функция открытия файла. Поскольку при совершении резервного копирования не требуется расшифровывать файл, не требуется и предъявлять ключи. Все, что требуется, это прочитать файл "как есть", то есть в зашифрованном виде. OpenRaw позволяет открыть файл в этом специальном режиме и подготовить контекст для процедур, которые будут разработаны в более поздних версиях.

ReadRaw

typedef

DWORD

(*PFE_EXPORT_FUNC)(

 PBYTE pbData,

 PVOID pvCallbackContext,

 ULONG ulLength

 );

DWORD

ReadRaw(

 PFE_EXPORT_FUNC pfExportCallback,

 PVOID pvCallbackContext,

 PVOID pvContext

 );

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

WriteRaw

typedef

DWORD

(*PFE_IMPORT_FUNC)(

 PBYTE pbData,

 PVOID pvCallbackContext,

 ULONG ulLength

 );

DWORD

WriteRaw(

 PFE_IMPORT_FUNC pfImportCallback,

 PVOID pvCallbackContext,

 PVOID pvContext

 );

WriteRaw позволяет вызывающей программе записать все данные в непрозрачном режиме при помощи потока сериализации данных, используя предварительный вызов ReadRaw , и воссоздать таким образом исходный файл на новом месте. Вызывающая программа должна предоставить указатель на импортируемую функцию, которая используется интерфейсом для получения непрозрачного потока сериализации из вызывающей программы и воссоздает исходный зашифрованный файл. Возврат из WriteRaw происходит только после того, как файл полностью воссоздан, а также в случае ошибки. Могут иметь место многократные вызовы импортируемой функции из самой этой функции.

CloseRaw (Закрыть как есть)

VOID

CloseRaw(

 PVOID pvContext

 );

CloseRaw освобождает память интерфейса и позволяет системе EFS освободить контекст после того, как операция резервного копирования или восстановления закончена.

Экспортные проблемы EFS


EFS предоставляет право восстановления данных сертифицированным агентам восстановления. Архитектура восстановления данных является частью усилий корпорации Microsoft, направленных на выполнение требования текущей экспортной политики регулирования в области шифрования данных. В то же время Microsoft заинтересована в предоставлении нашим иностранным заказчикам более устойчивой системы шифрования, чем система с 40-битным ключом. Для достижения этой цели EFS использует алгоритм шифрования стандарта DESX, который базируется на 128-битном ключе шифрования. Система EFS разрабатывалась в расчете на различные алгоритмы шифрования с различной устойчивостью ключей, а также в расчете на дальнейшее усовершенствование.

В настоящее время корпорация Microsoft работает с правительством Соединенных Штатов над достижением экспортного разрешения для EFS с 128-битным алгоритмом шифрования DES и со встроенной инфраструктурой восстановления данных. Пока продолжается процесс согласования, Microsoft ограничивает функциональность зарубежных заказчиков использованием 40-битных ключей, выполняя таким образом экспортные ограничения, но сохраняя возможность расширения ключей до требуемых 128 бит для алгоритмов шифрования DESX. Версии Windows 2000 для продажи в Северной Америке будут использовать полное 128-битное DESX шифрование. Файлы, зашифрованные 40-битной версией EFS, могут храниться и использоваться совместно с версиями EFS, поддерживающими шифрование 128-битных DESX. Однако файлы, зашифрованные с использованием 128-битной версии EFS, не смогут храниться в версиях EFS, ограниченных 40-битной версией DESX для гарантии соблюдения экспортного регулирования Соединенных Штатов. В будущем, когда будет разрешен экспорт более сильной криптографии, заказчики во всем мире смогут свободно общаться с использованием новой и более устойчивой криптографии в EFS.

Выводы


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

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

·         Система EFS предоставляет организациям установить политику восстановления данных таким образом, что зашифрованные данные могут быть восстановлены при помощи EFS, если это потребуется.

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

·         Восстановление данных в EFS – закрытая операция. В процессе восстановления расшифровываются данные, но не ключ пользователя, при помощи которого эти данные были зашифрованы.

·         Работа с зашифрованными файлами в EFS не требует от пользователя каких-либо специальных действий по шифровке и дешифровки данных. Дешифровка и шифрование происходят незаметно для пользователя в процессе считывания и записи данных на диск.

·         Система EFS поддерживает резервное копирование и восстановление зашифрованных файлов без их расшифровки. Программа NtBackup поддерживает резервное копирование зашифрованных файлов.

·         Система EFS встроена в операционную систему таким образом, что утечка информации через файлы подкачки невозможна, при этом гарантируется, что все создаваемые копии будут зашифрованы

·         Американская версия EFS использует алгоритм шифрования файлов стандарта DESX с полной 128-битной длиной ключа. Международная версия EFS также использует алгоритм шифрования файлов стандарта DESX, однако, ключ шифрования файлов имеет уменьшенную 40-битную длину.

·         Предусмотрены многочисленные меры предосторожности для обеспечения безопасности восстановления данных, а также защита от утечки и потери данных в случае фатальных сбоев системы.


Дополнительная информация


Самую свежую информацию о Windows 2000 можно найти по адресу http://www.microsoft.com/windows, а также на форуме Windows 2000 в Microsoft Network (GO WORD: MSNTS).



[1] Приведенное замечание относится к ранним версиям Windows 2000