Как расшифровать файл efs

Обновлено: 04.07.2024

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

Средства безопасности в NTFS

Разграничение доступа к файлам – одна из возможностей NTFS, необходимая для работы в условиях многопользовательских операционных систем. Разрешить или запретить доступ к файлу или каталогу можно с помощью средств управления безопасностью Windows “Проводника”.

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

Шифрование данных в NTFS

Шифрование данных средствами NTFS – гораздо более серьёзное препятствие для корректного восстановления раздела NTFS в случае проблем с жёстким диском.

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

Ограничения

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

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

Инструментарий

С практической точки зрения, перечисленные выше ограничения, означают лишь одно: нужно пробовать. Результат невозможно предсказать заранее, не попытавшись восстановить зашифрованные данные. С помощью программы Hetman NTFS Recovery такую попытку можно сделать бесплатно с помощью пробной версии продукта.

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

date

31.01.2014

directory

Windows 8

comments

комментариев 8

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

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

Определить учетную запись, зашифровавшую файл можно с помощью команды:

Пользователь, зашифровавший файл с помощью efs

Как вы видите, данный файл зашифрован пользователем root.

Чтобы у пользователя появилась возможность работы с файлом, зашифрованным с помощью EFS необходимо, чтобы в локальном хранилище сертификатов пользователя хранился сертификат EFS с закрытым ключом пользователя, который зашифровал файл (или закрытый ключ сертификата агента восстановления Recovery Agent). Сертификат может быть экспортирован только самим пользователем (в данном примере root) и передан вместе с паролем защиты сертификата другому пользователю, которому необходимо предоставить право работы с зашифрованными данными (еще раз напомним, что при принудительной смене пароля пользователя-владельца сертификата, выгрузить корректный сертификат с EFS ключом не получится).

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

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

Мастер экспорта сертификата

Чтобы импортировать EFS сертификат дважды щелкните по pfx файлу, в результате чего запустится мастер импорта сертификата. Укажите, что сертификат импортируется для текущего пользователя (Current User)

Путь к файлу pfx сертификата efs

Проверьте путь к файлу сертификата.

Далее необходимо указать пароль защиты сертификата, указанный при экспорте.

Если необходимо можно отметить опции защиты закрытого ключа:

  • Enable strong private key protection – при каждом использовании сертификата будет запрашиваться пароль защиты закрытого ключа (не рекомендуется)
  • Mark this key as exportable – разрешить в дальнейшем экспортировать данный ключ

Затем необходимо выбрать хранилище сертификата. Выберите Place all certificates in the following store и нажмите на кнопку обзор (Browse).

Укажите, что сертификат будет хранится в личном (Personal) хранилище и нажмите OK.

успешный импорт сертификата

консоль управления сертификатами

После того, как EFS сертификат импортирован , он появится в консоли управления сертификатами (certmgr.msc) в разделе Personal.

После импорта сертификата из под текущей учетной записи можно прозрачно работать с данными, зашифрованными EFS, или полностью расшифровать данные, сняв атрибут Encrypt contents to secure data.


Windows

EFS или шифрованная файловая система является компонентом легендарной NTFS (файловой системы новой технологии). Он доступен в Windows 2000, Windows XP Professional (не Home Basic), Windows Server 2003 и более новых версиях операционной системы от Microsoft. Это позволяет прозрачное шифрование и дешифрование файлов с использованием современных и в то же время сложных криптографических алгоритмов. Люди, которые не имеют надлежащего криптографического ключа, не могут прочитать зашифрованные данные. Следовательно, это приводит нас к преимуществу, заключающемуся в том, что даже если кто-то физически владеет данными, если они не авторизованы, у них не будет ключа, и они не смогут читать данные.

Мы уже видели, как шифровать файлы с помощью шифрования EFS. Теперь давайте рассмотрим, как расшифровывать файлы, зашифрованные с помощью EFS.

Расшифровать EFS зашифрованные файлы и папки в Windows

Мы рассмотрим 2 метода для выполнения этой задачи.

1. Использование расширенных атрибутов файла из свойств файла

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


Теперь, после открытия окна «Свойства», нажмите кнопку с именем Дополнительно в разделе «Атрибуты».

Теперь откроется другое окно с именем Расширенные атрибуты . Внутри будет раздел Сжатие или Шифрование атрибутов. Снимите флажок с опции Шифровать содержимое для защиты данных.


Теперь нажмите ОК. Теперь он спросит вас, хотите ли вы внести запрошенные изменения только в папку или в папку, ее подпапку и файлы. Сделайте свой выбор и нажмите ОК.

Нажмите Применить , а затем нажмите ОК.

2: Использование шифрованной командной строки

Начните с нажатия кнопки WINKEY + X или правой кнопкой мыши на кнопке «Пуск» и нажмите Командная строка (администратор) или просто найдите cmd в окне поиска Cortana щелкните правой кнопкой мыши значок командной строки и выберите Запуск от имени администратора.

Теперь введите следующую команду:

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

Например, если вы хотите расшифровать файл, сохраненный в D:/Test с именем Sample.txt, , вам нужно будет использовать команду, подобную этой,


Если вы хотите расшифровать папку, хранящуюся в D: /, называемую Test, , вам нужно будет использовать следующую команду:


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

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

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

Внимательный читатель может возразить мне: а как же Windows NT с ее NTFS? Ведь NTFS обеспечивает разграничение доступа и защиту данных от несанкционированного доступа! Да, это правда. Но как быть в том случае, когда доступ к разделу NTFS осуществляется не с помощью средств операционной системы Windows NT, а напрямую, на физическом уровне? Ведь это сравнительно легко реализовать, например, загрузившись с дискеты и запустив специальную программу: например, весьма распространенную ntfsdos. В качестве более изощренного примера можно указать продукт NTFS98. Конечно, можно предусмотреть такую возможность, и задать пароль на запуск системы, однако практика показывает, что такая защита малоэффективна, особенно в том случае, когда за одним компьютером работают сразу несколько пользователей. А если злоумышленник может извлечь жесткий диск из компьютера, то здесь уже не помогут никакие пароли. Подключив диск к другому компьютеру, его содержимое можно будет прочитать с такой же легкостью, что и эту статью. Таким образом, злоумышленник свободно может овладеть конфиденциальной информацией, которая хранится на жестком диске.

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

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

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

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

Ключи шифрования EFS хранятся в резидентном пуле памяти (сама EFS расположена в ядре Windows 2000), что исключает несанкционированный доступ к ним через файл подкачки.

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

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

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

Зашифрованные файлы хранятся на диске в зашифрованном виде. При чтении файла данные автоматически расшифровываются, а при записи — автоматически шифруются. Пользователь может работать с зашифрованными файлами так же, как и с обычными файлами, то есть открывать и редактировать в текстовом редакторе Microsoft Word документы, редактировать рисунки в Adobe Photoshop или графическом редакторе Paint, и так далее.

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

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

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

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

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

Немного теории

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

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.

Реализация в Windows 2000

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

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

Драйвер EFS

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

Библиотека времени выполнения EFS (FSRTL)

Служба EFS

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

Win32 API

Обеспечивает интерфейс программирования для шифрования открытых файлов, дешифрования и восстановления закрытых файлов, приема и передачи закрытых файлов без их предварительной расшифровки. Реализован в виде стандартной системной библиотеки advapi32.dll.

Немного практики

  1. Запустите Windows Explorer, нажмите правую кнопку мыши на каталоге, выберите пункт Properties (Свойства).
  2. На закладке General (Общие) нажмите кнопку Advanced.
  1. Отметьте галочкой пункт «Encrypt contents to secure data». Нажмите OK, затем нажмите Apply (применить) в диалоге Properties. Если Вы выбрали шифрование отдельного файла, то дополнительно появится диалоговое окно следующего вида:

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

На этом процесс шифрования данных можно считать законченным.

Чтобы расшифровать каталоги, просто снимите выделение в пункте «Encrypt contents to secure data». При этом каталоги, а также все содержащиеся в них подкаталоги и файлы будут расшифрованы.


Народ, у кого под руками есть книга "Секреты хакеров 2 издание" ? Там был по моему совет, как расшифровать зашифрованный файл при отсутствии агента восстановления. Может кто сталкивался с такой ерундой?

у меня в квартире ремонт и такооой бардак, что найти что-нибудь просто невозможно
а вот совета там такого я что-то не помню

агентом восстановления ты называешь экспортированный персональный сертификат *.pfx?

Привет, lOOSky. Если меня не глючит, то в системе с EFS правом восстановления любых зашифрованных файлов обладает по дефолту локальный админ. А в W2k домене доменадмин. У неко каким то макаром находится сертификат, с помощью которого он может расшифровывать файлы. Вот это явление, насколько я понял, и называется агентом восстановления. Я это по моему в той книге прочитал, а потом отдал ее одному чуваку почитать. Он мне во вторник принесет и я проверю. Там еще такой прикол есть, что как то можно и без сертификата все это дело поламать. Все никак руки не доходят сделать бутовый флоп с поддержкой нтфс и слить все это файло. по моему так должно прокатить, ведь солью я без атрибута нтфс, отвечающего за шифрование. правда мне в это чето мало верится. Пасиба, что ответил. Бувай здоровый .
Цитата
Zloy_Enot пишет:
Народ, у кого под руками есть книга "Секреты хакеров 2 издание" ? Там был по моему совет, как расшифровать зашифрованный файл при отсутствии агента восстановления. Может кто сталкивался с такой ерундой?

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

Чуваки, прогнал я. нифига у меня не получилось. Так что сорьте за панику %). Слыхал про подборщик сертификата (ну типа генерит сертификат на основе зашифрованого файла) но чето мне не представляется, сколько ему времени понадобится на подбор ключика %). Написал в мелкософт, но пока ответа нет. Да и вряд ли будет. Не будут же они рассказывать,как их защиту поламать. А инфу жалко %( 2 месяца работы.

Так что совет всем: никогда не юзайте эту злостную галочку. А если юзаете, то сертификат BackUp те.

P.S.
Век живи, век учись, и все равно дураком помрешь.

2Zloy_Enot:
Ну почему-же ?
В свое время SYSKEY, софтина, что ставилось отдельно на NT 4 и вшито в W2K, предназначенная для шифрации SAM-базы реестра, тоже не поощрялась под лозунгом "А как мы пароли будем восстанавливать ?" =)

EFS руль, когда есть возможность, что могут спереть хард.
Агентов восстановления в домене можно наделать сколько угодно, ибо через Certification Service можно эти сертификатов навыписывать бездну (я уже делал, W2KS SP1).

Криптоалгоритм ИМО работает с несколькими private-ключами (такое я видел и в PGP), отсюда и столько агентов восстановления, и один из них -- системный, привязаный к ADMIN SID.

Так проблема то в том, что сертификат утерян. Истественно, пока есть сертификат, которым шифровали, то все Ок. И агентов наплодить можно. но когда сертификат пропадает, то нифига уже не сделаешь. (Ну по крайней мере мои ограниченные знания сделать что - либо мне не позволили).

Может есть идеи? Поделись - богаче станешь.

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

Есть ли какие-нибудь практические подтверждения этим предположениям?
Потому как, при административной смене пароля теряется доступ к private key, который необходим для расшифровки ddf. 2 Snip
ты хочешь сказать, что каждый раз при смене пароля ты теряешь доступ к свом зашифрованым файлам? 2 TeckLord:
При административной смене пароля - да (когда администратор заходит и принудительно меняет пользователю пароль). Если пользователь сам себе меняет пароль (через ctrl+alt+del или через панель управления) то private key сохраняется.

Здравствуйте. ПОМОГИТЕ ПОЖАЛУЙСТА

У меня такая проблема. ПК прекрасно работал, файлы не какие я не шифровала. попался какой-то вирус, когда скачивала с Интернета песню и после этого у меня нужные (некоторые) папки и файлы в них стали подписаны зеленым цветом. У меня 4 пользов. учет. записи но вот уже года 3 я пользуюсь только одной(администратором) к ПК доступа ни у кого нет. Файлы которые не открываются я скинула еще давно с ноутбука, и они до дня когда я поймала вирус - РАБОТАЛИ.

Я уже перепробовала все что знала, и пыталась программами расшифровать файлы, и программы для восстановления применяла. И права администратора выставляла(владельца в безопасности) - первый раз конечно, но думаю все так сделала. И на ошибки диск проверяла. И вирусы все, 5-ю антивир. программами и утилитами погоняла. Сейчас винт к ноуту подключила, тут у меня МАС стит и ХР, все равно пишет доступа нет, я эти файлы даже скопировать не могу на тот же диск где они лежат. Я очень прошу, помогите пожалуйста, готова выполнить все пройденое заново под чутким руководством специалистов! =)

Читайте также: