Механизм применения разрешений

Каждый файл представляет собой набор атрибутов. Атрибут, который содержит информацию об NTFS-разрешения, называется списком управления доступом (ACL, Access Control List). Структура ACL приведена в табл. Каждая запись в ACL называется элементом управления доступом (ACE, Access Control Entry).

ACL   Идентификаторы безопасности Разрешения
ACE1 SID1 Разрешения для SID1
ACE2 SID2 Разрешения для SID2
ACE3 SID3 Разрешения для SID3
,,, ,,, ,,,
ACEn SIDn Разрешения для SIDn

 

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

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

 

Порядок применения разрешений.

Принцип применения NTFS-разрешений на доступ к файлу или папке тот же, что и для сетевых разрешений:

1) сначала проверяются запреты на какие-либо виды доступа (если есть запреты, то данный вид доступа не разрешается);

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

Но для разрешений NTFS схема немного усложняется. Разрешения применяются в следующем порядке:

1) явные запреты;

2) явные разрешения;

3) унаследованные запреты;

4) унаследованные разрешения.

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

Владение папкой или файлом.

Пользователь, создавший папку или файл, является Владельцем данного объекта. Владелец объекта обладает правами изменения NTFS-разрешений для этого объекта, даже если ему запрещены другие виды доступа. Текущего владельца объекта можно увидеть, открыв Свойства объекта, затем закладку "Безопасность", затем нажав кнопку "Дополнительно" и перейдя на закладку "Владелец".

 

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

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

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

FEK шифруется одним или несколькими общими ключами шифрования, в результате чего получается список зашифрованных ключей FEK. Список зашифрованных ключей FEK хранится в специальном атрибуте EFS, который называется DDF (data decryption field - поле дешифрования данных). Информация, при помощи которой производится шифрование данных, жестко связана с этим файлом. Общие ключи выделяются из пар пользовательских ключей сертификата X509 с дополнительной возможностью использования "File encryption". Личные ключи из этих пар используются при дешифровке данных и FEK. Личная часть ключей хранится либо на смарт-картах, либо в другом надежном месте (например, в памяти, безопасность которой обеспечивается при помощи CryptoAPI).

FEK также шифруется при помощи одного или нескольких ключей восстановления (полученных из сертификатов X509, записанных в политике восстановления зашифрованных данных для данного компьютера, с дополнительной возможностью "File recovery").

Как и в предыдущем случае, общая часть ключа используется для шифрования списка FEK. Список зашифрованных ключей FEK также хранится вместе с файлом в специальной области EFS, которая называется DRF (data recovery field - поле восстановления данных). Для шифрования списка FEK в DRF используется только общая часть каждой пары ключей. Для нормального осуществления файловых операций необходимы только общие ключи восстановления.

Процесс шифрования.

 

 

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

 

 

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

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

 

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

Перед использованием возможностей шифрования EFS следует определиться будет ли использоваться Агент восстановления данных. Агентом восстановления называется пользователь, уполномоченный расшифровывать данные, зашифрованные другим пользователем, если пользователь утратил закрытые ключи сертификата шифрования или учетная запись пользователя удалена и требуется восстановить зашифрованные данные. Как правило, Агентом восстановления указывается Администратор, но может быть назначен и другой пользователь. Может быть создано несколько Агентов восстановления. Чтобы назначить пользователя Агентом восстановления, необходимо сначала создать сертификаты Агента восстановления, для этого откройте консоль командной строки (Пуск - Выполнить - cmd.exe) и наберите команду
Cipher /R: filename где filename - путь и имя создаваемых сертификатов без расширения.
После этого Вам будет предложено ввести пароль для защиты закрытого ключа и подтвердить его (при вводе пароля он не будет отображаться в консоли). После этого в указанном при вводе команды пути будет создано два файла с указанным именем - *.cer и *.pfx, содержащие соответственно открытый и закрытый ключи сертификата. Теперь необходимо добавить сертификат в личное хранилище пользователя, назначаемого Агентом Восстановления (можно пропустить этот шаг, тогда Агент восстановления может проделать это позже, когда будет необходимо использовать функции восстановления) импортировав файл *.pfx (для запуска Мастера импорта сертификатов достаточно дважды щелкнуть по значку файла). После этого необходимо от имени администратора открыть оснастку "Локальные параметры безопасности" (Пуск - Выполнить - secpol.msc), выделить пункт "Политики открытого ключа - Файловая система EFS" и в меню "Действие" выбрать "Добавить агент восстановления данных". Откроется "Мастер добавления агента восстановления", на второй странице которого необходимо нажать кнопку "Обзор папок" и указать файл *.cer, созданный программой cipher ранее.

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

Шифрование и дешифрование файлов осуществляется с помощью интерфейса Windows, кроме того существует программа командной строки cipher.exe для работы с объектами EFS, которая предоставляет более широкие возможности (подробнее об использовании программы cipher смотрите в справочнике по командной строке - наберите из меню "Выполнить" команду hh ntcmds.chm).

Для того чтобы зашифровать файл, необходимо выбрать в контекстном меню файла "Свойства - Другие", отметить "Шифровать содержимое для защиты данных" и нажать "ОК". В следующем окне также необходимо нажать "ОК". После этого в свойствах файла появится новая доступная кнопка - "Свойства - Другие - Подробно". В открывшемся меню в нижней части можно видеть пользователей, являющихся Агентами восстановления, а в верхней - пользователей, которым разрешен доступ к файлу - сюда можно добавить пользователя, которому также разрешено использовать файл. Но добавлен может быть только пользователь, имеющий действительный сертификат EFS - такие пользователи отображаются при нажатии кнопки "Добавить".

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