В данной статье пойдет речь о прозрачном шифровании, реализуемом с помощью программы CyberSafe Top Secret. Кроме самой программы CyberSafe Top Secret будет показано, как можно расшифровать файлы, зашифрованные с помощью EFS.
Ранее в наших статьях было показано, как использовать программу CyberSafe Top Secret для шифрования физических дисков и создания виртуальных зашифрованных дисков. Однако не всегда такое шифрование удобно.
Во-первых, не всегда есть возможность зашифровать весь физический диск. Во-вторых, если вы используете виртуальные диски, то файлы контейнеров, как правило, занимают сотни мегабайт дискового пространства и их весьма просто обнаружить злоумышленнику. Да, есть методы сокрытия данных, но побеждает человеческая лень. В-третьих, зашифрованная папка может постоянно расти, а размер криптодиска ограничен величиной, указанной при его создании.
Всем хочется и удобно работать с файлами, и чтобы при этом файлы были надежно защищены. Такой компромисс есть — это прозрачное шифрование файлов, когда файлы зашифровываются и расшифровываются «на лету» — в процессе работы с ними. Файлы остаются зашифрованными, а вы работаете с ними, как с обычными файлами. Например, если вы зашифровали папку C:\Documents и поместили в нее свои документы, то при открытии документа из этой папки запускается Word или Excel и они даже не подозревают, что они являются зашифрованными. Вы работаете с зашифрованными файлами, как с самыми обычными, совершенно не задумываясь о шифровании, монтировании, виртуальных дисках и т.д.
Кроме удобства использования у прозрачного шифрования есть еще одно весомое преимущество. Как правило, на виртуальных зашифрованных дисках хранится большое количество файлов. Для работы даже с одним из них вам нужно подключать весь криптодиск. В результате становятся уязвимыми все остальные файлы. Конечно, можно создать множество небольших криптодисков, присвоить каждому отдельный пароль, но это не очень удобно.
В случае с прозрачным шифрованием можно создать столько зашифрованных папок, сколько вам нужно и поместить в каждую из них различные группы файлов — документы, личные фото и т.д. При этом расшифровываются только те файлы, к которым осуществляется доступ, а не все файлы криптодиска сразу.
В Windows (начиная с Windows 2000 и кроме Home-выпусков) традиционно для организации прозрачного шифрования используется шифрованная файловая система — EFS (Encrypting File System).
EFS предназначена, чтобы один пользователь не мог получить доступ к файлам (зашифрованным) другого пользователя. Зачем нужно было создавать EFS, если NTFS поддерживает разграничение прав доступа? Хотя NTFS и является довольно безопасной файловой системой, но со временем появились различные утилиты (одной из первых была NTFSDOS, позволяющая читать файлы, находящиеся на NTFS-разделе, из DOS-окружения), игнорирующие права доступа NTFS. Появилась необходимость в дополнительной защите. Такой защитой должна была стать EFS.
По сути, EFS является надстройкой над NTFS. EFS удобна тем, что входит в состав Windows и для шифрования файлов вам не нужно какое-либо дополнительное программное обеспечение — все необходимое уже есть в Windows. Для начала шифрования файлов не нужно совершать какие-либо предварительные действия, поскольку при первом шифровании файла для пользователя автоматически создается сертификат шифрования и закрытый ключ.
Также преимуществом EFS является то, что при перемещении файла из зашифрованной папки в любую другую он остается зашифрованным, а при копировании файла в зашифрованную папку он автоматически шифруется. Нет необходимости выполнять какие-либо дополнительные действия.
Такой подход, конечно же, очень удобен, и пользователю кажется, что от EFS одна только польза. Но это не так. С одной стороны, при неблагоприятном стечении обстоятельств, пользователь может вообще потерять доступ к зашифрованным файлам. Это может произойти в следующих случаях:
Когда пользователи (особенно начинающие) начинают использовать EFS, об этом мало кто задумывается. Но, с другой стороны, существует специальное программное обеспечение (и далее оно будет продемонстрировано в работе), позволяющее получить доступ к данным, даже если система была переустановлена, и были потеряны некоторые ключи. И я даже не знаю к преимуществам или недостаткам отнести сей факт — данное ПО позволяет восстановить доступ к данным, но в то же время оно может использоваться злоумышленником для получения несанкционированного доступа к зашифрованным файлам.
Казалось бы, данные с помощью EFS зашифрованы очень надежны. Ведь файлы на диске шифруются с помощью ключа FEK (File Encryption Key), который хранится в атрибутах файлов. Сам FEK зашифрован master-ключом, который, в свою очередь, зашифрован ключами пользователей системы, имеющих доступ к этому файлу. Ключи пользователей зашифрованы хэшами паролей этих пользователей, а хэши паролей — зашифрованы еще и SYSKEY.
Казалось бы, такая цепочка шифрования должна была обеспечить надежную защиту данных, но все банально сводится к логину и паролю. Стоит пользователю сбросить пароль или переустановить систему, получить доступ к зашифрованным данным уже не получится.
Разработчики EFS перестраховались и реализовали агентов восстановления (EFS Recovery Agent), то есть пользователей, которые могут расшифровать данные, зашифрованные другими пользователями. Однако использовать концепцию EFS RA не очень удобно и даже сложно, особенно для начинающих пользователей. В итоге, эти самые начинающие пользователи знают, как зашифровать с помощью EFS файлы, но не знают, что делать в нештатной ситуации. Хорошо, что есть специальное ПО, которое может помочь в этой ситуации, но это же ПО может использоваться и для несанкционированного доступа к данным, как уже отмечалось.
К недостаткам EFS можно также отнести невозможность сетевого шифрования (если оно вам нужно, то необходимо использовать другие протоколы шифрования данных, например, IPSec) и отсутствие поддержки других файловых систем. Если вы скопируете зашифрованный файл на файловую систему, которая не поддерживает шифрование, например, на FAT/FAT32, файл будет дешифрован и его можно будет просмотреть всем желающим. Ничего удивительного в этом нет, EFS — всего лишь надстройка над NTFS.
Получается, что от EFS вреда больше, чем пользы. Но, чтобы не быть голословным, приведу пример использования программы Advanced EFS Data Recovery для получения доступа к зашифрованным данным. Сценарий будет самый простой: сначала я войду в систему под другим пользователем и попытаюсь получить доступ к зашифрованному файлу, который зашифровал другой пользователь. Затем я смоделирую реальную ситуацию, когда сертификат пользователя, зашифровавшего файл, был удален (это может произойти, например, в случае переустановки Windows). Как вы увидите, программа без особых проблем справится и с этой ситуацией.
Посмотрим, как можно расшифровать зашифрованные с помощью EFS файлы. Первым делом нужно включить шифрование для одной из папок. Для демонстрации я специально создал папку EFS-Crypted. Чтобы включить EFS-шифрование для папки, нужно просто включить соответствующий атрибут в ее свойствах (рис. 1).
Рис. 1. Включение шифрования для папки
Название зашифрованной папки и всех помещенных в нее файлов (которые автоматически будут зашифрованы) в Проводнике отображается зеленым цветом. Как показано на рис. 2, в зашифрованную папку я добавил текстовый файл config.txt, содержимое которого мы попытаемся просмотреть, войдя в систему под другим пользователем. Для теста был создан другой пользователь с правами администратора (такие права нужны программе Advanced EFS Data Recovery (AEFSDR) компании ElcomSoft), см рис. 3.
Рис. 2. Содержимое зашифрованной папки
Рис. 3. Создан новый пользователь
Естественно, если зайти под другим пользователем и попытаться прочитать файл config.txt, у вас ничего не выйдет (рис. 4).
Рис. 4. Отказано в доступе
Но не беда — запускаем программу Advanced EFS Data Recovery и переходим сразу в Expert mode (можно, конечно, воспользоваться мастером, который открывается при первом запуске (рис. 5)), но мне больше нравится экспертный режим.
Рис. 5. Мастер при запуске Advanced EFS Data Recovery
Рис. 6. Экспертный режим Advanced EFS Data Recovery
Итак, перейдите на вкладку Encrypted files и нажмите кнопку Scan for encrypted files. На рис. 6 уже изображен результат сканирования — найден наш единственный зашифрованный файл C:\EFS-Crypted\config.txt. Выделите его и нажмите кнопку Decrypt. Программа предложит вам выбрать каталог, в который нужно дешифровать файлы (рис. 7).
Рис. 7. Выберите каталог, в который будут дешифрованы файлы
Поскольку у меня пробная версия программы, то для продолжения нужно нажать Continue (рис. 8). Расшифрованные файлы помещаются в подпапку AEFS_<имя_диска>_DECRYPTED (рис. 9). Обратите внимание — наш файл config.txt уже не выделен зеленым и мы можем просмотреть его содержимое (рис. 10).
Рис. 8. Нажмите кнопку Continue
Рис. 9. Расшифрованные файлы
Рис. 10. Содержимое файла config.txt
Теперь усложним задачу программе Advanced EFS Data Recovery, а именно — удалим личный сертификат. Войдите как пользователь, создавший зашифрованную папку, и запустите консоль mmc, выберите команду меню Файл, Добавить или удалить оснастку. Далее выберите оснастку Сертификаты и нажмите кнопку Добавить (рис. 11). В появившемся окне выберите моей учетной записи пользователя (рис. 12).
Рис. 11. Добавление оснастки
Рис. 12. Оснастка диспетчера сертификатов
Далее нажмите кнопку OK и в появившемся окне перейдите в Сертификаты, Личное, Сертификаты. Вы увидите созданные сертификаты для текущего пользователя (рис. 13). В моем случае пользователь называется тест. Щелкните на его сертификате правой кнопкой мыши и выберите команду Удалить для удаления сертификата. Вы увидите предупреждение о том, что расшифровать данные, зашифрованные с помощью этого сертификата, будет уже невозможно. Что ж, скоро мы это проверим.
Рис. 13. Личные сертификаты
Рис. 14. Предупреждение при удалении сертификата
Далее выполните следующие действия:
Рис. 15. Поиск ключей
Рис. 16. Окно сканирования
Рис. 17. Файл опять расшифрован
К стыду EFS или к чести Advanced EFS Data Recovery, в обоих случаях файл был расшифрован. При этом, как видите, мне не понадобились какие-то специальные знания или навыки. Достаточно запустить программу, которая сделает за вас всю работу. О том, как работает программа можно прочитать на сайте разработчиков (http://www.elcomsoft.ru/), подробно принцип ее работы рассматривать в этой статье не будем, поскольку AEFSDR не является предметом статьи.
Справедливости ради нужно сказать, что специалисты могут настроить систему так, чтобы Advanced EFS Data Recovery будет бессильна. Однако, мы рассмотрели самое обычное использование EFS для подавляющего большинства пользователей.
Рассмотрим, как реализовано прозрачное шифрование в CyberSafe. Для прозрачного шифрования используется драйвер Alfa Transparent File Encryptor (http://www.alfasp.com/products.html), который шифрует файлы с помощью алгоритма AES-256 или алгоритмом ГОСТ 28147-89 (при использовании Крипто-Про).
В драйвер передается правило шифрования (маска файлов, разрешенные/запрещенные процессы и т.д.), а также ключ шифрования. Сам ключ шифрования хранится в ADS папки (Alternate Data Streams, eb.by/Z598) и зашифрован с помощью OpenSSL (алгоритм RSA) или ГОСТ Р 34.10-2001 — для этого используются сертификаты.
Логика следующая: добавляем папку, CyberSafe создает ключ для драйвера, шифрует его выбранными публичными сертификатами (они должна быть предварительно созданы или импортированы в CyberSafe). При попытке доступа какого-либо пользователя к папке CyberSafe открывает ADS папки и читает зашифрованный ключ. Если у этого пользователя есть приватный ключ сертификата (у него может быть один или несколько своих сертификатов), который применялся для шифрования ключа, он может открыть эту папку и прочитать файлы. Нужно отметить, что драйвер расшифровывает только то, что нужно, а не все файлы при предоставлении доступа к файлу. Например, если пользователь открывает большой документ Word, то расшифровывается только та часть, которая сейчас загружается в редактор, по мере необходимости загружается остальная часть. Если файл небольшой, то он расшифровывается полностью, но остальные файлы остаются зашифрованными.
Если папка — сетевая расшаренная, то в ней файлы так и остаются зашифрованными, драйвер клиента расшифровывает только файл или часть файла в памяти, хотя это справедливо и для локальной папки. При редактировании файла драйвер шифрует изменения в памяти и записывает в файл. Другими словами, даже когда папка включена (далее будет показано, что это такое), данные на диске всегда остаются зашифрованными.
Настало время рассмотреть практическое использование программы CyberSafe Top Secret. Для шифрования папки перейдите в раздел программы Прозрачное шифрование (вкладка Шифрование файлов), см. рис. 18. Затем из Проводника перетащите папки, которые вы хотите зашифровать, в рабочую область программы. Можете также воспользоваться кнопкой Доб. папку. Я добавил одну папку — C:\CS-Crypted.
Рис. 18. Программа CyberSafe Top Secret
Нажмите кнопку Применить. В появившемся окне (рис. 19) нажмите кнопку Да или Да для всех (если за один раз вы пытаетесь зашифровать несколько папок). Далее вы увидите окно выбора сертификатов, ключи которых будут использоваться для прозрачного шифрования папки (рис. 20). Как правило, сертификаты создаются сразу после установки программы. Если вы этого еще не сделали, придется вернуться в раздел Личные ключи и нажать кнопку Создать.
Рис. 19. Нажмите кнопку Да
Рис. 20. Выбор сертификатов для прозрачного шифрования
Следующий вопрос программы — нужно ли установить ключ администратора для этой папки (рис. 21). Без ключа администратора вы не сможете вносить изменения в папку, поэтому нажмите кнопку Да.
Рис. 21. Опять нажмите Да
После этого вы вернетесь в основное окно программы. Прежде, чем начать работу с зашифрованной папкой, нужно ее выделить и нажать кнопку Включить. Программа запросит пароль сертификата (рис. 22), указанного для шифрования этой папки. После этого работа с зашифрованной папкой не будет отличаться от работы с обычной папкой. В окне CyberSafe папка будет отмечена, как открытая, а слева от пиктограммы папки появится значок замка (рис. 23).
Рис. 22. Вводим пароль сертификата
Рис. 23. Зашифрованная папка подключена
В Проводнике ни зашифрованная папка, ни зашифрованные файлы никак не помечаются. Внешне они выглядят так же, как и остальные папки и файлы (в отличие от EFS, где имена зашифрованных файлов/папок выделяются зеленым цветом), см. рис. 24.
Рис. 24. Зашифрованная папка CS-Crypted в Проводнике
Нужно отметить, что аналогичным образом вы можете зашифровать и сетевую папку. При этом программа CyberSafe должна находиться только на компьютере пользователей, а не на файловом сервере. Все шифрование осуществляется на клиенте, а на сервер передаются уже зашифрованные файлы. Такое решение более чем оправдано. Во-первых, по сети передаются уже зашифрованные данные. Во-вторых, даже если администратор сервера захочет получить доступ к файлам, у него ничего не выйдет, поскольку расшифровать файлы могут только пользователи, сертификаты которых были указаны при шифровании. Зато администратор при необходимости может выполнить резервное копирование зашифрованных файлов.
Когда зашифрованная папка больше не нужна, нужно перейти в программу CyberSafe, выделить папку и нажать кнопку Выключить. Такое решение может показаться вам не столь удобным, как EFS — нужно нажимать кнопки включения/выключения. Но это только на первый взгляд. Во-первых, у пользователя есть четкое понимание, что папка зашифрована и он уже не забудет об этом факте, когда будет переустанавливать Windows. Во-вторых, при использовании EFS, если вам нужно отойти от компьютера, вам нужно выходить из системы, поскольку за время вашего отсутствия кто угодно может подойти к компьютеру и получить доступ к вашим файлам. Все, что ему нужно будет сделать — это скопировать ваши файлы на устройство, которое не поддерживает шифрование, например, на FAT32-флешку. Далее он сможет просматривать файлы вне вашего компьютера. С программой CyberSafe все немного удобнее. Да, вам нужно сделать дополнительное действие («выключить» папку) и все зашифрованные файлы станут недоступны. Но зато вам не нужно будет заново запускать все программы и открывать все документы (в том числе и незашифрованные) — как после повторного входа в систему.
Впрочем, у каждого продукта есть свои особенности. CyberSafe — не исключение. Представим, что вы зашифровали папку C:\CS-Crypted и поместили туда файл report.txt. Когда папка выключена, понятное дело, прочитать файл вы не сможете. Когда папка включена, вы можете получить доступ к файлу и, соответственно, скопировать его в любую другую, незашифрованную папку. Но после копирования файла в незашифрованную папку он продолжает жить собственной жизнью. С одной стороны, не так удобно, как в случае с EFS, с другой стороны, зная такую особенность программы, пользователь будет более дисциплинированным и будет хранить свои секретные файлы только в зашифрованных папках.
Сейчас попытаемся выяснить, что быстрее — EFS или CyberSafe Top Secret. Все испытания проводятся на реальной машине — никаких виртуалок. Конфигурация ноутбука следующая — Intel 1000M (1.8 GHz)/4 Гб ОЗУ/WD WD5000LPVT (500 Гб, SATA-300, 5400 RPM, буфер 8 Мб/Windows 7 64-bit). Машина не очень мощная, но какая есть.
Тест будет предельно прост. Мы скопируем в каждую из папок файлы и посмотрим, сколько времени займет копирование. Выяснить, какое средство прозрачного шифрования быстрее, нам поможет следующий простой сценарий:
Не нужно быть гуру программирования, чтобы догадаться, что делает этот сценарий. Не секрет, что мы чаще работаем с относительно небольшими файлами с размером от нескольких десятков до нескольких сотен килобайт. Данный сценарий копирует дистрибутив Joomla! 3.3.6, в котором находится 5580 таких небольших файлов сначала в папку, зашифрованную EFS, а затем в папку, зашифрованную CyberSoft. Посмотрим, кто будет победителем.
Команда robocopy используется для рекурсивного копирования файлов, в том числе пустых (параметр /E), а ее вывод сознательно перенаправляется в текстовый файл (при желании можно просмотреть, что скопировалось, а что нет), чтобы не засорять вывод сценария.
Результаты второго теста изображены на рис. 25. Как видите, EFS справилась с этим заданием за 74 секунды, а CyberSoft — всего за 32 секунды. Учитывая, что в большинстве случаев пользователи работают с множеством мелких файлов, CyberSafe будет более чем в два раза быстрее, чем EFS.
Рис. 25. Результаты тестирования
Теперь немного подытожим. К преимуществам прозрачного шифрования CyberSafe можно отнести следующие факты:
Последние два преимущества заслуживают отдельного внимания. Чтобы обезопаситься от доступа к личным ключам пользователя, вы можете защитить саму программу CyberSafe. Для этого выполните команду Инструменты, Настройки (рис. 26). В окне Настройки на вкладке Аутентификация вы можете включить или аутентификацию по паролю или двухфакторную аутентификацию. Подробно о том, как это сделать, можно прочитать в руководстве по программе CyberSafe на странице 119.
Рис. 26. Защита самой программы CyberSafe
На вкладке Разрешен. приложения можно определить доверенные приложения, которым разрешено работать с зашифрованными файлами. По умолчанию все приложения являются доверенными. Но для большей безопасности вы можете задать приложения, которым разрешено работать с зашифрованными файлами. На рис. 27 я указал в качестве доверенных приложения MS Word и MS Excel. Если какая-то другая программа попытается обратиться к зашифрованной папке, ей будет отказано в доступе. Дополнительную информацию вы можете найти в статье «Прозрачное шифрование файлов на локальном компьютере при помощи CyberSafe Files Encryption» (http://habrahabr.ru/company/cybersafe/blog/210458/).
Рис. 27. Доверенные приложения
На этом все. Рекомендуем ознакомиться со следующими статьями:
Прозрачное шифрование файлов на локальном компьютере при помощи CyberSafe Files Encryption
Прозрачное шифрование сетевых папок в корпоративном пространстве
Методы сокрытия информации
Шифрование облачных сервисов в компаниях и организациях
Несколько слов о прозрачном шифровании
Ранее в наших статьях было показано, как использовать программу CyberSafe Top Secret для шифрования физических дисков и создания виртуальных зашифрованных дисков. Однако не всегда такое шифрование удобно.
Во-первых, не всегда есть возможность зашифровать весь физический диск. Во-вторых, если вы используете виртуальные диски, то файлы контейнеров, как правило, занимают сотни мегабайт дискового пространства и их весьма просто обнаружить злоумышленнику. Да, есть методы сокрытия данных, но побеждает человеческая лень. В-третьих, зашифрованная папка может постоянно расти, а размер криптодиска ограничен величиной, указанной при его создании.
Всем хочется и удобно работать с файлами, и чтобы при этом файлы были надежно защищены. Такой компромисс есть — это прозрачное шифрование файлов, когда файлы зашифровываются и расшифровываются «на лету» — в процессе работы с ними. Файлы остаются зашифрованными, а вы работаете с ними, как с обычными файлами. Например, если вы зашифровали папку C:\Documents и поместили в нее свои документы, то при открытии документа из этой папки запускается Word или Excel и они даже не подозревают, что они являются зашифрованными. Вы работаете с зашифрованными файлами, как с самыми обычными, совершенно не задумываясь о шифровании, монтировании, виртуальных дисках и т.д.
Кроме удобства использования у прозрачного шифрования есть еще одно весомое преимущество. Как правило, на виртуальных зашифрованных дисках хранится большое количество файлов. Для работы даже с одним из них вам нужно подключать весь криптодиск. В результате становятся уязвимыми все остальные файлы. Конечно, можно создать множество небольших криптодисков, присвоить каждому отдельный пароль, но это не очень удобно.
В случае с прозрачным шифрованием можно создать столько зашифрованных папок, сколько вам нужно и поместить в каждую из них различные группы файлов — документы, личные фото и т.д. При этом расшифровываются только те файлы, к которым осуществляется доступ, а не все файлы криптодиска сразу.
Преимущества и недостатки EFS
В Windows (начиная с Windows 2000 и кроме Home-выпусков) традиционно для организации прозрачного шифрования используется шифрованная файловая система — EFS (Encrypting File System).
EFS предназначена, чтобы один пользователь не мог получить доступ к файлам (зашифрованным) другого пользователя. Зачем нужно было создавать EFS, если NTFS поддерживает разграничение прав доступа? Хотя NTFS и является довольно безопасной файловой системой, но со временем появились различные утилиты (одной из первых была NTFSDOS, позволяющая читать файлы, находящиеся на NTFS-разделе, из DOS-окружения), игнорирующие права доступа NTFS. Появилась необходимость в дополнительной защите. Такой защитой должна была стать EFS.
По сути, EFS является надстройкой над NTFS. EFS удобна тем, что входит в состав Windows и для шифрования файлов вам не нужно какое-либо дополнительное программное обеспечение — все необходимое уже есть в Windows. Для начала шифрования файлов не нужно совершать какие-либо предварительные действия, поскольку при первом шифровании файла для пользователя автоматически создается сертификат шифрования и закрытый ключ.
Также преимуществом EFS является то, что при перемещении файла из зашифрованной папки в любую другую он остается зашифрованным, а при копировании файла в зашифрованную папку он автоматически шифруется. Нет необходимости выполнять какие-либо дополнительные действия.
Такой подход, конечно же, очень удобен, и пользователю кажется, что от EFS одна только польза. Но это не так. С одной стороны, при неблагоприятном стечении обстоятельств, пользователь может вообще потерять доступ к зашифрованным файлам. Это может произойти в следующих случаях:
- Аппаратные проблемы, например, вышла из строя материнская плата, испорчен загрузчик, повреждены системные файлы из-за сбоя жесткого диска (bad sectors). В итоге жесткий диск можно подключить к другому компьютеру, чтобы скопировать с него файлы, но если они зашифрованы EFS, у вас ничего не выйдет.
- Система переустановлена. Windows может быть переустановлена по самым разнообразным причинам. В этом случае доступ к зашифрованным данным, понятно, будет потерян.
- Удален профиль пользователя. Даже если создать пользователя с таким же именем, ему будет присвоен другой ID, и расшифровать данные все равно не получится.
- Системный администратор или сам пользователь сбросил пароль. После этого доступ к EFS-данным также будет потерян.
- Некорректный перенос пользователя в другой домен. Если перенос пользователя выполнен неграмотно, он не сможет получить доступ к своим зашифрованным файлам.
Когда пользователи (особенно начинающие) начинают использовать EFS, об этом мало кто задумывается. Но, с другой стороны, существует специальное программное обеспечение (и далее оно будет продемонстрировано в работе), позволяющее получить доступ к данным, даже если система была переустановлена, и были потеряны некоторые ключи. И я даже не знаю к преимуществам или недостаткам отнести сей факт — данное ПО позволяет восстановить доступ к данным, но в то же время оно может использоваться злоумышленником для получения несанкционированного доступа к зашифрованным файлам.
Казалось бы, данные с помощью EFS зашифрованы очень надежны. Ведь файлы на диске шифруются с помощью ключа FEK (File Encryption Key), который хранится в атрибутах файлов. Сам FEK зашифрован master-ключом, который, в свою очередь, зашифрован ключами пользователей системы, имеющих доступ к этому файлу. Ключи пользователей зашифрованы хэшами паролей этих пользователей, а хэши паролей — зашифрованы еще и SYSKEY.
Казалось бы, такая цепочка шифрования должна была обеспечить надежную защиту данных, но все банально сводится к логину и паролю. Стоит пользователю сбросить пароль или переустановить систему, получить доступ к зашифрованным данным уже не получится.
Разработчики EFS перестраховались и реализовали агентов восстановления (EFS Recovery Agent), то есть пользователей, которые могут расшифровать данные, зашифрованные другими пользователями. Однако использовать концепцию EFS RA не очень удобно и даже сложно, особенно для начинающих пользователей. В итоге, эти самые начинающие пользователи знают, как зашифровать с помощью EFS файлы, но не знают, что делать в нештатной ситуации. Хорошо, что есть специальное ПО, которое может помочь в этой ситуации, но это же ПО может использоваться и для несанкционированного доступа к данным, как уже отмечалось.
К недостаткам EFS можно также отнести невозможность сетевого шифрования (если оно вам нужно, то необходимо использовать другие протоколы шифрования данных, например, IPSec) и отсутствие поддержки других файловых систем. Если вы скопируете зашифрованный файл на файловую систему, которая не поддерживает шифрование, например, на FAT/FAT32, файл будет дешифрован и его можно будет просмотреть всем желающим. Ничего удивительного в этом нет, EFS — всего лишь надстройка над NTFS.
Получается, что от EFS вреда больше, чем пользы. Но, чтобы не быть голословным, приведу пример использования программы Advanced EFS Data Recovery для получения доступа к зашифрованным данным. Сценарий будет самый простой: сначала я войду в систему под другим пользователем и попытаюсь получить доступ к зашифрованному файлу, который зашифровал другой пользователь. Затем я смоделирую реальную ситуацию, когда сертификат пользователя, зашифровавшего файл, был удален (это может произойти, например, в случае переустановки Windows). Как вы увидите, программа без особых проблем справится и с этой ситуацией.
Использование программы Advanced EFS Data Recovery для расшифровки зашифрованных EFS файлов
Посмотрим, как можно расшифровать зашифрованные с помощью EFS файлы. Первым делом нужно включить шифрование для одной из папок. Для демонстрации я специально создал папку EFS-Crypted. Чтобы включить EFS-шифрование для папки, нужно просто включить соответствующий атрибут в ее свойствах (рис. 1).
Рис. 1. Включение шифрования для папки
Название зашифрованной папки и всех помещенных в нее файлов (которые автоматически будут зашифрованы) в Проводнике отображается зеленым цветом. Как показано на рис. 2, в зашифрованную папку я добавил текстовый файл config.txt, содержимое которого мы попытаемся просмотреть, войдя в систему под другим пользователем. Для теста был создан другой пользователь с правами администратора (такие права нужны программе Advanced EFS Data Recovery (AEFSDR) компании ElcomSoft), см рис. 3.
Рис. 2. Содержимое зашифрованной папки
Рис. 3. Создан новый пользователь
Естественно, если зайти под другим пользователем и попытаться прочитать файл config.txt, у вас ничего не выйдет (рис. 4).
Рис. 4. Отказано в доступе
Но не беда — запускаем программу Advanced EFS Data Recovery и переходим сразу в Expert mode (можно, конечно, воспользоваться мастером, который открывается при первом запуске (рис. 5)), но мне больше нравится экспертный режим.
Рис. 5. Мастер при запуске Advanced EFS Data Recovery
Рис. 6. Экспертный режим Advanced EFS Data Recovery
Итак, перейдите на вкладку Encrypted files и нажмите кнопку Scan for encrypted files. На рис. 6 уже изображен результат сканирования — найден наш единственный зашифрованный файл C:\EFS-Crypted\config.txt. Выделите его и нажмите кнопку Decrypt. Программа предложит вам выбрать каталог, в который нужно дешифровать файлы (рис. 7).
Рис. 7. Выберите каталог, в который будут дешифрованы файлы
Поскольку у меня пробная версия программы, то для продолжения нужно нажать Continue (рис. 8). Расшифрованные файлы помещаются в подпапку AEFS_<имя_диска>_DECRYPTED (рис. 9). Обратите внимание — наш файл config.txt уже не выделен зеленым и мы можем просмотреть его содержимое (рис. 10).
Рис. 8. Нажмите кнопку Continue
Рис. 9. Расшифрованные файлы
Рис. 10. Содержимое файла config.txt
Теперь усложним задачу программе Advanced EFS Data Recovery, а именно — удалим личный сертификат. Войдите как пользователь, создавший зашифрованную папку, и запустите консоль mmc, выберите команду меню Файл, Добавить или удалить оснастку. Далее выберите оснастку Сертификаты и нажмите кнопку Добавить (рис. 11). В появившемся окне выберите моей учетной записи пользователя (рис. 12).
Рис. 11. Добавление оснастки
Рис. 12. Оснастка диспетчера сертификатов
Далее нажмите кнопку OK и в появившемся окне перейдите в Сертификаты, Личное, Сертификаты. Вы увидите созданные сертификаты для текущего пользователя (рис. 13). В моем случае пользователь называется тест. Щелкните на его сертификате правой кнопкой мыши и выберите команду Удалить для удаления сертификата. Вы увидите предупреждение о том, что расшифровать данные, зашифрованные с помощью этого сертификата, будет уже невозможно. Что ж, скоро мы это проверим.
Рис. 13. Личные сертификаты
Рис. 14. Предупреждение при удалении сертификата
Далее выполните следующие действия:
- Закройте оснастку и попробуйте обратиться к зашифрованному файлу. У вас ничего не выйдет, не смотря на то, что вы зашифровали этот файл. Ведь сертификат то удален.
- Смените пользователя, запустите программу Advanced EFS Data Recovery. Попробуйте расшифровать файл, как было показано ранее. Сначала программа сообщит, что сертификат не найден. Поэтому нужно перейти на вкладку EFS related files и нажать кнопку Scan for keys. Через некоторое время программа сообщит вам, что нашла ключи, но вероятно не все (рис. 15). Программа рекомендует вам просканировать ключи еще раз, но на этот раз с включенной опцией Scan by sectors (рис. 16), но я этого не делал и сразу перешел на вкладку Encrypted files. Программа успешно нашла и дешифровала файл. На рис. 17 показано, что я уже сохранил расшифрованный файл на рабочий стол.
Рис. 15. Поиск ключей
Рис. 16. Окно сканирования
Рис. 17. Файл опять расшифрован
К стыду EFS или к чести Advanced EFS Data Recovery, в обоих случаях файл был расшифрован. При этом, как видите, мне не понадобились какие-то специальные знания или навыки. Достаточно запустить программу, которая сделает за вас всю работу. О том, как работает программа можно прочитать на сайте разработчиков (http://www.elcomsoft.ru/), подробно принцип ее работы рассматривать в этой статье не будем, поскольку AEFSDR не является предметом статьи.
Справедливости ради нужно сказать, что специалисты могут настроить систему так, чтобы Advanced EFS Data Recovery будет бессильна. Однако, мы рассмотрели самое обычное использование EFS для подавляющего большинства пользователей.
Система прозрачного шифрования, реализованная в CyberSafe Top Secret
Рассмотрим, как реализовано прозрачное шифрование в CyberSafe. Для прозрачного шифрования используется драйвер Alfa Transparent File Encryptor (http://www.alfasp.com/products.html), который шифрует файлы с помощью алгоритма AES-256 или алгоритмом ГОСТ 28147-89 (при использовании Крипто-Про).
В драйвер передается правило шифрования (маска файлов, разрешенные/запрещенные процессы и т.д.), а также ключ шифрования. Сам ключ шифрования хранится в ADS папки (Alternate Data Streams, eb.by/Z598) и зашифрован с помощью OpenSSL (алгоритм RSA) или ГОСТ Р 34.10-2001 — для этого используются сертификаты.
Логика следующая: добавляем папку, CyberSafe создает ключ для драйвера, шифрует его выбранными публичными сертификатами (они должна быть предварительно созданы или импортированы в CyberSafe). При попытке доступа какого-либо пользователя к папке CyberSafe открывает ADS папки и читает зашифрованный ключ. Если у этого пользователя есть приватный ключ сертификата (у него может быть один или несколько своих сертификатов), который применялся для шифрования ключа, он может открыть эту папку и прочитать файлы. Нужно отметить, что драйвер расшифровывает только то, что нужно, а не все файлы при предоставлении доступа к файлу. Например, если пользователь открывает большой документ Word, то расшифровывается только та часть, которая сейчас загружается в редактор, по мере необходимости загружается остальная часть. Если файл небольшой, то он расшифровывается полностью, но остальные файлы остаются зашифрованными.
Если папка — сетевая расшаренная, то в ней файлы так и остаются зашифрованными, драйвер клиента расшифровывает только файл или часть файла в памяти, хотя это справедливо и для локальной папки. При редактировании файла драйвер шифрует изменения в памяти и записывает в файл. Другими словами, даже когда папка включена (далее будет показано, что это такое), данные на диске всегда остаются зашифрованными.
Использование программы CyberSafe Top Secret для прозрачного шифрования файлов и папок
Настало время рассмотреть практическое использование программы CyberSafe Top Secret. Для шифрования папки перейдите в раздел программы Прозрачное шифрование (вкладка Шифрование файлов), см. рис. 18. Затем из Проводника перетащите папки, которые вы хотите зашифровать, в рабочую область программы. Можете также воспользоваться кнопкой Доб. папку. Я добавил одну папку — C:\CS-Crypted.
Рис. 18. Программа CyberSafe Top Secret
Нажмите кнопку Применить. В появившемся окне (рис. 19) нажмите кнопку Да или Да для всех (если за один раз вы пытаетесь зашифровать несколько папок). Далее вы увидите окно выбора сертификатов, ключи которых будут использоваться для прозрачного шифрования папки (рис. 20). Как правило, сертификаты создаются сразу после установки программы. Если вы этого еще не сделали, придется вернуться в раздел Личные ключи и нажать кнопку Создать.
Рис. 19. Нажмите кнопку Да
Рис. 20. Выбор сертификатов для прозрачного шифрования
Следующий вопрос программы — нужно ли установить ключ администратора для этой папки (рис. 21). Без ключа администратора вы не сможете вносить изменения в папку, поэтому нажмите кнопку Да.
Рис. 21. Опять нажмите Да
После этого вы вернетесь в основное окно программы. Прежде, чем начать работу с зашифрованной папкой, нужно ее выделить и нажать кнопку Включить. Программа запросит пароль сертификата (рис. 22), указанного для шифрования этой папки. После этого работа с зашифрованной папкой не будет отличаться от работы с обычной папкой. В окне CyberSafe папка будет отмечена, как открытая, а слева от пиктограммы папки появится значок замка (рис. 23).
Рис. 22. Вводим пароль сертификата
Рис. 23. Зашифрованная папка подключена
В Проводнике ни зашифрованная папка, ни зашифрованные файлы никак не помечаются. Внешне они выглядят так же, как и остальные папки и файлы (в отличие от EFS, где имена зашифрованных файлов/папок выделяются зеленым цветом), см. рис. 24.
Рис. 24. Зашифрованная папка CS-Crypted в Проводнике
Нужно отметить, что аналогичным образом вы можете зашифровать и сетевую папку. При этом программа CyberSafe должна находиться только на компьютере пользователей, а не на файловом сервере. Все шифрование осуществляется на клиенте, а на сервер передаются уже зашифрованные файлы. Такое решение более чем оправдано. Во-первых, по сети передаются уже зашифрованные данные. Во-вторых, даже если администратор сервера захочет получить доступ к файлам, у него ничего не выйдет, поскольку расшифровать файлы могут только пользователи, сертификаты которых были указаны при шифровании. Зато администратор при необходимости может выполнить резервное копирование зашифрованных файлов.
Когда зашифрованная папка больше не нужна, нужно перейти в программу CyberSafe, выделить папку и нажать кнопку Выключить. Такое решение может показаться вам не столь удобным, как EFS — нужно нажимать кнопки включения/выключения. Но это только на первый взгляд. Во-первых, у пользователя есть четкое понимание, что папка зашифрована и он уже не забудет об этом факте, когда будет переустанавливать Windows. Во-вторых, при использовании EFS, если вам нужно отойти от компьютера, вам нужно выходить из системы, поскольку за время вашего отсутствия кто угодно может подойти к компьютеру и получить доступ к вашим файлам. Все, что ему нужно будет сделать — это скопировать ваши файлы на устройство, которое не поддерживает шифрование, например, на FAT32-флешку. Далее он сможет просматривать файлы вне вашего компьютера. С программой CyberSafe все немного удобнее. Да, вам нужно сделать дополнительное действие («выключить» папку) и все зашифрованные файлы станут недоступны. Но зато вам не нужно будет заново запускать все программы и открывать все документы (в том числе и незашифрованные) — как после повторного входа в систему.
Впрочем, у каждого продукта есть свои особенности. CyberSafe — не исключение. Представим, что вы зашифровали папку C:\CS-Crypted и поместили туда файл report.txt. Когда папка выключена, понятное дело, прочитать файл вы не сможете. Когда папка включена, вы можете получить доступ к файлу и, соответственно, скопировать его в любую другую, незашифрованную папку. Но после копирования файла в незашифрованную папку он продолжает жить собственной жизнью. С одной стороны, не так удобно, как в случае с EFS, с другой стороны, зная такую особенность программы, пользователь будет более дисциплинированным и будет хранить свои секретные файлы только в зашифрованных папках.
Производительность
Сейчас попытаемся выяснить, что быстрее — EFS или CyberSafe Top Secret. Все испытания проводятся на реальной машине — никаких виртуалок. Конфигурация ноутбука следующая — Intel 1000M (1.8 GHz)/4 Гб ОЗУ/WD WD5000LPVT (500 Гб, SATA-300, 5400 RPM, буфер 8 Мб/Windows 7 64-bit). Машина не очень мощная, но какая есть.
Тест будет предельно прост. Мы скопируем в каждую из папок файлы и посмотрим, сколько времени займет копирование. Выяснить, какое средство прозрачного шифрования быстрее, нам поможет следующий простой сценарий:
@echo off
echo "Копирование 5580 файлов в EFS-Crypted"
echo %time%
robocopy c:\Joomla c:\EFS-Crypted /E > log1
echo %time%
echo "Копирование 5580 файлов в CS-Crypted"
echo %time%
robocopy c:\Joomla c:\CS-Crypted /E > log2
echo %time%
Не нужно быть гуру программирования, чтобы догадаться, что делает этот сценарий. Не секрет, что мы чаще работаем с относительно небольшими файлами с размером от нескольких десятков до нескольких сотен килобайт. Данный сценарий копирует дистрибутив Joomla! 3.3.6, в котором находится 5580 таких небольших файлов сначала в папку, зашифрованную EFS, а затем в папку, зашифрованную CyberSoft. Посмотрим, кто будет победителем.
Команда robocopy используется для рекурсивного копирования файлов, в том числе пустых (параметр /E), а ее вывод сознательно перенаправляется в текстовый файл (при желании можно просмотреть, что скопировалось, а что нет), чтобы не засорять вывод сценария.
Результаты второго теста изображены на рис. 25. Как видите, EFS справилась с этим заданием за 74 секунды, а CyberSoft — всего за 32 секунды. Учитывая, что в большинстве случаев пользователи работают с множеством мелких файлов, CyberSafe будет более чем в два раза быстрее, чем EFS.
Рис. 25. Результаты тестирования
Преимущества прозрачного шифрования CyberSafe
Теперь немного подытожим. К преимуществам прозрачного шифрования CyberSafe можно отнести следующие факты:
- При выключении папки файлы могут быть скопированы в зашифрованном виде куда угодно, что позволяет организовать облачное шифрование.
- Драйвер программы CyberSafe позволяет работать по сети, что дает возможность организовать корпоративное шифрование.
- Для расшифровки папки не только нужно знать пароль, необходимо иметь соответствующие сертификаты. При использовании Крипто-Про ключ можно вынести на токен.
- Приложение CyberSafe поддерживает набор инструкций AES-NI, что положительно сказывается на производительности программы (было доказано тестами выше).
- Защититься от несанкционированного доступа к личным ключам можно с помощью двухфакторной аутентификации.
- Поддержка доверенных приложений
Последние два преимущества заслуживают отдельного внимания. Чтобы обезопаситься от доступа к личным ключам пользователя, вы можете защитить саму программу CyberSafe. Для этого выполните команду Инструменты, Настройки (рис. 26). В окне Настройки на вкладке Аутентификация вы можете включить или аутентификацию по паролю или двухфакторную аутентификацию. Подробно о том, как это сделать, можно прочитать в руководстве по программе CyberSafe на странице 119.
Рис. 26. Защита самой программы CyberSafe
На вкладке Разрешен. приложения можно определить доверенные приложения, которым разрешено работать с зашифрованными файлами. По умолчанию все приложения являются доверенными. Но для большей безопасности вы можете задать приложения, которым разрешено работать с зашифрованными файлами. На рис. 27 я указал в качестве доверенных приложения MS Word и MS Excel. Если какая-то другая программа попытается обратиться к зашифрованной папке, ей будет отказано в доступе. Дополнительную информацию вы можете найти в статье «Прозрачное шифрование файлов на локальном компьютере при помощи CyberSafe Files Encryption» (http://habrahabr.ru/company/cybersafe/blog/210458/).
Рис. 27. Доверенные приложения
На этом все. Рекомендуем ознакомиться со следующими статьями:
Прозрачное шифрование файлов на локальном компьютере при помощи CyberSafe Files Encryption
Прозрачное шифрование сетевых папок в корпоративном пространстве
Методы сокрытия информации
Шифрование облачных сервисов в компаниях и организациях