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

Как и раньше, в операционной системе Windows Vista присутствует дополнительная файловая система EFS, предназначенная для шифрования файлов и каталогов, находящихся на разделах NTFS жесткого диска. Вы можете выполнить шифрование как при помощи диалога PROPERTIES файла или каталога, так и при помощи программы командной строки cipher.exe.

Этапы шифрования EFS

Процесс шифрования файла при помощи EFS можно разделить на следующие этапы.

1. Загрузка профиля

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

2. Создание файла журнала

Начинается процесс шифрования. На этом этапе создается файл журнала шифрования с именем формата efsX.log, где X определяет номер файла, который был зашифрован в текущий сеанс шифрования процессом lsasrv.exe. Данный файл создается в каталоге System Volume Information.

3. Генерация FEK

Выполняется генерация случайного 128-битного числа, используемого в качестве FEK.

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

Как было сказано выше, FEK используется для шифрования содержимого файла по определенному алгоритму. Если вопрос защиты информации для вас не является праздным, и вы постоянно выполняете шифрование при помощи EFS, тогда операционная система Windows позволяет вам изменить алгоритм, используемый при шифровании файла (на 3DES). Для этого нужно воспользоваться одним из двух приведенных ниже способов.

* Чтобы установить шифрование на основе 3DES для всех криптографических сервисов операционной системы Windows Vista, нужно запустить оснастку gpedit.msc и перейти к подразделу Computer Configuration/Windows Settings/Security Settings/Local Policies/Security Options. В данном подразделе есть элемент SYSTEM CRYPTOGRAPHY: USE FIPS COMPLIANT ALGORITHMS FOR ENCRYPTION, HASHING, AND SIGNING. Значение данного элемента нужно установить в ENABLED. Не забывайте, что использование алгоритма 3DES может замедлить процесс шифрования. * Также можно установить использование алгоритма 3DES только службой EFS. Для этого нужно параметру REG_DWORD типа AlgorithmID, расположенному в ветви реестра HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EFS, присвоить значение 0x6603.

Однако это все произойдет на следующих этапах шифрования файла.

4. Получение открытого и закрытого пользовательского ключа

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

В противном случае открытый пользовательский ключ берется из параметра REG_BINARY типа CertificateHash, расположенного в ветви реестра HKCU\Software\Microsoft\Windows NT\CurrentVersion\EFS\CurrentKeys. На основе данных этой ветви реестра создается сигнатура открытого ключа пользователя.

Закрытые же ключи находятся в каталоге %userprofile%\AppData\Roaming\Microsoft\Crypto\RSA. Содержимое этого каталога зашифровано на основе симметричного ключа, который называется мастер-ключом пользователя.

Мастер ключ содержится в каталоге %userprofile%\AppData\Roaming\Microsoft\Protect. Он также зашифрован — с помощью алгоритма 3DES и пароля пользователя.

5. Создание DDF

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

6. Создание DRF

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

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

Описание работы с агентами восстановления будет приведено далее в этом разделе книги.

7. Шифрование

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

Диалог Advanced Attributes

Использование диалога PROPERTIES файла или каталога является очень простой задачей. Для шифрования в этом случае достаточно нажать на кнопку ADVANCED…, после чего, в появившемся диалоге ADVANCED ATTRIBUTES, выбрать переключатель ENCRYPT CONTENTS TO SECURE DATA. После этого, как только вы нажмете на кнопку OK, попытавшись тем самым закрыть диалог PROPERTIES, перед вами отобразится еще один диалог, название которого зависит от того, шифруете вы файл или каталог. Независимо от названия, данный диалог имеет одну и ту же цель. С помощью его переключателей вы можете определить, будет ли шифроваться только выбранный вами файл или каталог, или также будет шифроваться родительский каталог (при шифровании файла) или вложенные в папку файлы и каталоги (при шифровании папки).

Обратите внимание на кнопку DETAILS диалога ADVANCED ATTRIBUTES. По умолчанию она неактивна, но если вы зашифруете файл и опять откроете диалог ADVANCED ATTRIBUTES, тогда сможете воспользоваться этой кнопкой, чтобы отобразить диалог USER ACCESS TO. С помощью этого диалога можно добавить пользователей, которые смогут открывать данный зашифрованный файл. По умолчанию его можете открывать только вы (так как в атрибутах файла присутствуют сведения о ключе только для вашей учетной записи). Однако если вы нажмете на кнопку ADD… данного диалога, тогда сможете выбрать файл сертификата других пользователей, которые смогут открывать этот зашифрованный файл. А с помощью кнопки REMOVE… можно удалить добавленных ранее пользователей.

Также обратите внимание на кнопку BACK UP KEYS…, которая активируется при выборе из списка одного из пользователей. С ее помощью можно отобразить диалог CERTIFICATE EXPORT WIZARD, позволяющий экспортировать сертификат выбранного пользователя в файл.

Программа cipher.exe

Если же вы захотите использовать программу командной строки cipher.exe, тогда заметите, что ее возможности несколько расширились, а опции изменились.

Как и раньше, основной синтаксис программы следующий: cipher [/E | /D | /C] /S:«путь к каталогу» «дополнительные опции» «файл, каталог или шаблон». При помощи данного синтаксиса можно выполнить шифрование (опция /E), дешифровку (опция /D) или просмотреть состояние объектов (опция /C), удовлетворяющих шаблону, и расположенных в каталоге, указанном в опции /S. Дополнительных опций теперь всего две (раньше было 5): /B и /H. Если указана опция /B, тогда при ошибке в процессе шифрования файлов, программа прекратит свою работу (по умолчанию она продолжает шифрование, просто пропуская проблемный файл). А с помощью опции /H можно определить, будут ли отображаться скрытые и системные файлы. Дополнительные возможности программы

Никуда не исчезли и следующие дополнительные варианты синтаксиса программы.

* Cipher. Отображает сведения о состоянии файлов и каталогов, расположенных в данной папке. * Cipher /K. Создает новый ключ шифрования для текущего пользователя. * Cipher /R:«путь и имя файла». Создает новый ключ шифрования пользователя и сертификат агента восстановления EFS. После этого созданная информация записывается в два файла с указанным вами именем, но с разными расширениями: .PFX (содержит ключ и сертификат агента восстановления) и .CER (содержит только сертификат агента восстановления).

После того, как вы введете данную команду, перед вами отобразится запрос с просьбой ввода пароля, который будет защищать файл с расширением .PFX. После этого введенный вами пароль нужно ввести еще раз — для подтверждения. * Cipher /U /N. Отображает список всех зашифрованных файлов, расположенных на вашем жестком диске. Если вы не укажете опцию /N, тогда также будет изменен ключ шифрования для найденных файлов (если вы его только что изменили). * Cipher /W:«путь к папке». Удаляет всю информацию в неиспользуемом дисковом пространстве на указанном томе. * Cipher /R:«путь и имя efs-файла» «путь и имя файла архива». Архивирует сертификат EFS и ключ шифрования в файл с указанным именем.

Новые возможности программы

Но кроме них программа командной строки cipher.exe обзавелась и новыми вариантами синтаксиса.

* Cipher /Y. Отображает набросок текущего сертификата EFS для вашего компьютера. * Cipher /ADDUSER [/CERTHASH:«хеш сертификата» | /CERTFILE:«путь к файлу сертификата»] /S:«путь к каталогу» «дополнительные опции» «файл, каталог или шаблон». Добавляет нового пользователя, которому разрешено открывать данный зашифрованный файл. * Cipher /REMOVEUSER /CERTHASH:«хеш сертификата» /S:«путь к каталогу» «дополнительные опции» «файл, каталог или шаблон». Удаляет пользователя из списка пользователей, которым разрешено открывать данный зашифрованный файл. * Cipher /REKEY «файл, каталог или шаблон». Заново шифрует указанные шаблоном файлы, используя текущий ключ шифрования файлов пользователя.

Создание сертификата шифрования

Расположение: %systemroot%\system32\rekeywiz.exe.

Мы с вами уже рассмотрели несколько способов создания сертификата efs для текущего пользователя и помещение его в файл. Однако это еще не все способы создания сертификата. Также для этого можно воспользоваться специальным мастером операционной системы Windows Vista, который называется ENCRYPTING FILE SYSTEM. Данный мастер можно вызвать либо при помощи программы rekeywiz.exe, либо при помощи ссылки MANAGE YOUR FILE ENCRYPTION CERTIFICATES, отображаемой в мастере USER ACCOUNTS, открыть который можно при помощи одноименного значка папки CONTROL PANEL.

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

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

И последним шагом мастера будет указание разделов диска, зашифрованные файлы и каталоги которых будут заново перезашифрованы с использованием нового сертификата (если при помощи мастера ENCRYPTING FILE SYSTEM вы создавали новый сертификат пользователя, а не выбрали на первом шаге мастера один из старых сертификатов).

Работа с агентами восстановления

Как было сказано выше, сведения об агентах восстановления заносятся в поле DRF шифруемого файла. Но как же можно добавить нового агента восстановления? Для этого нужно воспользоваться командой ADD DATA RECOVERY AGENT… контекстного меню раздела Computer Configuration/Windows Settings/Public Key Policies/Encrypting File System оснастки gpedit.msc. После выбора данной команды перед вами отобразится мастер ADD RECOVERY AGENT WIZARD, первым шагом которого будет выбор cer-файла агента восстановления, который будет добавлен в систему. После этого перед вами отобразится информация о файле, и после нажатия на кнопку FINISH новый агент восстановления будет создан. Теперь пользователь, cer-файл которого был добавлен в качестве агента восстановления, сможет расшифровывать любые зашифрованные файлы любого пользователя данной операционной системы.

Напомним, что cer-файл, необходимый для добавления агента восстановления, создается соответствующим пользователем при помощи команды cipher /R:«путь к каталогу и имя cer-файла».

Настройка системы шифрования EFS

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

Настройка с помощью оснастки gpedit.msc

Оснастка gpedit.msc содержит в себе специальный подраздел COMPUTER CONFIGURATION/WINDOWS SETTINGS/PUBLIC KEY POLICIES/ENCRYPTING FILE SYSTEM. С помощью команды PROPERTIES контекстного меню данного подраздела можно отобразить диалог ENCRYPTING FILE SYSTEM PROPERTIES, позволяющий настроить основные параметры работы шифрования EFS. Данный диалог состоит всего из двух вкладок, с помощью которых можно редактировать значения параметров ветви реестра HKLM\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\EFS. Большинство элементов данного диалога редактируют биты параметра REG_DWORD типа EfsOptions.

General Сразу же обратите внимание на переключатель FILE ENCRYPTION USING ENCRYPTING FILE SYSTEM (EFS). Пока данный переключатель не будет установлен в положение ALLOW, параметры, изменяемые с помощью диалога ENCRYPTING FILE SYSTEM PROPERTIES, активными не будут. После того, как вы сделаете все параметры диалога активными, можно изменить следующие настройки EFS.

* Флажок ENCRYPT THE CONTENTS OF THE USERS DOCUMENTS FOLDER. Указывает, что содержимое каталога Documents пользовательского профиля должно автоматически шифроваться. * Флажок REQUIRE A SMART CARD FOR EFS. Определяет, разрешено ли шифровать содержимое смарт-карт с помощью EFS. * Флажок CREATE CACHING-CAPABLE USER KEY FROM SMART CARD. Определяет, будут ли создаваться пользовательские ключи шифрования, поддерживающие хранение зашифрованных данных на смарт-картах. * Флажок ENABLE PAGEFILE ENCRYPTION. Определяет, будет ли шифроваться содержимое файла подкачки. * Флажок DISPLAY KEY BACKUP NOTIFICATIONS WHEN USER KEY IS CREATED OR CHANGED. Определяет, будет ли отображаться уведомление в области уведомлений при создании или изменении пользовательского ключа шифрования. * Поле CERTIFICATES. Позволяет указать, разрешено ли EFS создавать пользовательские сертификаты, а также указать размер ключа, используемого при шифровании алгоритмом RSA. Размер ключа хранится в параметре REG_DWORD типа RsaKeyLength.

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

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

Настройка параметров шифрования с помощью реестра

После того, как вы зашифруете каталог или файл, его название изменит цвет на зеленый. Вы можете и сами указать цвет, который примет название зашифрованного файла. Для этого достаточно воспользоваться параметром REG_BINARY типа AltEncryptionColor, расположенным в ветви реестра HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer. Он имеет следующий формат: R G B 0, где R, G и B представляют собой красную, зеленую и синюю компоненту цвета, на которые отводится по одному байту параметра. Также операционная система позволяет вообще отключить изменение цвета зашифрованных файлов. Для этого вам не понадобится знание реестра. Достаточно снять флажок напротив элемента SHOW ENCRYPTED OR COMPRESSED NTFS FILES IN COLOR поля ADVANCED SETTINGS: вкладки VIEW диалога FOLDER OPTIONS. Данный диалог можно вызвать при помощи одноименной команды меню ORGANIZE любой папки.

По умолчанию операционная система Windows Vista автоматически шифрует все файлы и каталоги, перемещаемые в уже зашифрованный каталог. Чтобы отключить такое поведение операционной системы, нужно параметру REG_DWORD типа NoEncryptOnMove, расположенному в ветви реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer, присвоить значение 1.

Также можно полностью отключить подсистему EFS на данном компьютере. Для этого достаточно присвоить значение 1 параметру REG_DWORD типа NtfsDisableEncryption ветви реестра HKLM\SYSTEM\CurrentControlSet\Control\FileSystem. Данный параметр можно изменить и с помощью программы командной строки fsutil.exe, которую мы рассмотрели ранее в этой книге.