Как и для чего осуществляется шифрование файлов на диске
Настраиваем шифрование жесткого диска, чтобы избежать утечек данных
В каждой компании есть сотрудники, которые хранят на рабочем компьютере конфиденциальную информацию, и её утечка может оказаться катастрофой. Среди таких данных, как минимум, доступ к VPN, почте, а то и к коду различных сервисов и другой коммерческой тайне. Вместе со специалистом по безопасности REG.RU Филиппом Охонько расскажем, как защитить данные с помощью шифрования жёсткого диска.
Для пользователей Windows и macOS этот процесс очень прост. В случае с Linux всё немного сложнее, но раз уж вы выбрали Linux, то явно были готовы к этому. Let’s encrypt!
Придумайте надёжный пароль
В первую очередь вы должны придумать хороший пароль, которым будет зашифрован диск. Иначе все нижеописанные действия теряют смысл, а защита данных и шифрование не спасут от взлома. Чтобы создать надёжный пароль, воспользуйтесь следующими советами:
Теперь можно переходить к настройкам шифрования.
macOS
Зашифровать диск в macOS можно с помощью стандартного инструмента FileVault. Инструкцию можно найти здесь.
Источник: support.apple.com
Процесс займёт всего несколько минут вашего времени, но нужно будет подождать, пока файлы зашифруются.
Windows
Есть два популярных способа зашифровать диск в Windows:
Veracrypt
Мы рекомендуем использовать решение VeraCrypt. Это ПО неоднократно подвергалось независимым аудитам и считается достаточно надёжным.
Инструкцию по шифрованию диска с VeraCrypt вы сможете найти здесь. Настройка займёт около 10 минут вашего времени, а само шифрование продлится до 1-2 часов. Рекомендуем зашифровать весь диск.
BitLocker
В Windows имеется встроенная система шифрования BitLocker (начиная с Профессиональной версии ОС).
Шифрование в Windows 10
Введите в поиск Windows «Управление BitLocker» и откройте панель настроек. По умолчанию BitLocker использует аппаратный криптопроцессор Trusted Platform Module (TPM), который может отсутствовать в материнской плате. Но последние версии Windows поддерживают использование BitLocker без TPM.
Здесь можно прочитать инструкцию, как использовать BitLocker без модуля TPM. Многие эксперты считают шифрование BitLocker ненадёжным. Однако в случае риска простой утери или кражи устройства этой утилиты будет достаточно.
Linux
Самый простой способ — настроить шифрование диска при установке системы. Для этого используется технология LUKS.
Ещё один вариант — отформатировать отдельный раздел с поддержкой шифрования и все важные данные (например документы или код) хранить там. Для этого запустите утилиту gnome-disks с root-правами, выберите нужный раздел и отформатируйте его, поставив галочку напротив шифрования LUKS:
Ключи восстановления
При включении шифрования любая из вышеперечисленных утилит предложит вам сохранить ключ или образ восстановления. Он понадобится в случае, если вы забудете пароль. Ключ восстановления обязательно нужно хранить отдельно от компьютера, например на флешке, так как в случае его утечки злоумышленнику не составит труда получить доступ к зашифрованным данным.
Что ещё учесть при шифровании
Стоит отметить несколько важных вещей, которые могут скомпрометировать устройство вне зависимости от ОС и типа шифрования:
1. Ключи шифрования данных хранятся в оперативной памяти (ОЗУ), если вы используете спящий режим вместо выключения ПК. Это опасно тем, что в случае кражи устройства злоумышленники могут сохранить образ оперативной памяти и извлечь из неё нужные данные. Чтобы решить проблему, можно использовать режим гибернации. Гибернация — это тот же спящий режим, но данные о состоянии ПК выгружаются на диск, а не в ОЗУ.
Инструкция по включению гибернации вместо сна в Windows.
Для включения гибернации в macOS выполните в терминале:
sudo pmset hibernatemode 1
2. Если кто-то отключит питание ПК, то ключи шифрования могут остаться на жёстком диске в файлах гибернации или подкачки (swap-файл), поэтому эти файлы обязательно должны находиться на зашифрованном разделе.
В первую очередь шифрование помогает в случае утери или кражи компьютера. Если вы используете рабочий ноутбук и часто разъезжаете с ним, всегда выключайте устройство при транспортировке или настройте режим гибернации.
Включив шифрование, не забывайте завершать работу своего ПК, и тогда у злоумышленников не останется шансов — разумеется, если у вас хороший пароль. Кстати, инсайд от безопасников: самое надёжное место хранения паролей — в вашей голове. Поэтому несколько наиболее важных паролей (например от личного кабинета банка или менеджера паролей) лучше нигде не хранить, а постараться запомнить.
И не забывайте о безопасности своего сайта: для шифрования данных пользователей используйте SSL-сертификаты.
Взлом и защита шифрования дисков LUKS
Шифрование дисков предназначено для защиты данных в компьютере от несанкционированного физического доступа. Бытует распространённое заблуждение, что дисковое шифрование с этой задачей действительно справляется, а сценарии, в которых это не так, представляются уж слишком экзотическими и нереалистичными. В этой статье показано, что извлечение мастер-ключа шифрованного тома LUKS легко осуществимо на практике, и предложен (давно не новый) метод защиты.
Суть проблемы
Отдельно стоит остановиться на предназначении дискового шифрования. Действительно, когда физический доступ невозможен и данными владеет запущенная система, проблем никаких нет. Могут быть проблемы с безопасностью самой системы, но тут шифрование дисков никак не поможет. Дисковое шифрование должно оберегать данные, когда у любопытствующей стороны есть возможность получить доступ к дискам минуя систему, например физически подключив диски к своей системе или загрузив свою ОС на инспектируемом компьютере. Сценарий физического доступа — единственный сценарий, при котором дисковое шифрование имеет какой-то смысл.
Проблема состоит в том, что атакующий может незаметно вмешаться в цепь загрузки ОС и вынудить систему выдать ключи шифрования, как только она их получит при очередном запуске.
Такая атака требует лишь одного акта доступа к компьютеру: данные с диска можно скопировать совместно с подменой цепи загрузки, а потом расшифровать их, дождавшись появления ключа. В сравнении с незашифрованными дисками неудобство состоит только в том, что нужно озаботиться тем, как ключ будет передан, и дождаться запуска.
Далее перейдём к демонстрации такой техники на практике. Может оказаться так, что для её реализации атакующему потребуется меньше усилий, чем владелец системы затратил на настройку какого-то своего экзотического метода разблокировки дисков (например, удалённо).
Практическая демонстрация
Демо я проведу на примере виртуальной машины с Debian 9, на которой шифрование дисков было включено при установке системы.
Установка Debian 9 с шифрованием создаёт загрузочный раздел и раздел с шифрованным LVM. Снимок экрана установленной системы с запросом пароля расшифровки для наглядности:
Всё готово, можно приступать. Выключаем машину, копируем диск. В моем случае это выглядит так:
Монтируем диск машины, извлекаем инитрамдрайв:
Готово, можно редактировать инитрамдрайв. Зная, что машина имеет постоянное сетевое подключение, я хочу организовать зашифрованную отправку мастер-ключа после открытия дисков. Для этого мне потребуется:
250 КБ и 120 КБ после сжатия UPX. Сам secsend просто читает стандартный вход, шифрует его cryptobox-ом из libsodium с использованием заданного публичного ключа Curve25519 и отправляет данные на заданный адрес по TCP. Его использование непринципиально для основной цели демонстрации, он скорее показывает что атакующий по сути ничем не ограничен: можно запускать код, который делает что хочет атакующий и как он этого хочет.
После добавления этих трёх файлов и редактирования ещё одного можно запаковывать всё обратно и возвращать изменённый файл на место:
Потребуется некоторый сервер для приёма зашифрованного мастер-ключа, например такой (Python 3.5.3+). Запустив его с указанием секретной части ключевой пары, дожидаемся, пока условная жертва включит свой компьютер:
При включении виртуальной машины с зашифрованным диском всё внешне выглядит как обычно, ничего не изменилось:
А вот на стороне слушателя подключений появился секретный мастер-ключ:
С этого момента сама виртуальная машина с данными и её пользователь со знанием пароля шифрования уже не представляют интереса для злоумышленника. Особо отмечу, что смена парольной фразы не меняет мастер-ключ, которым зашифрован весь том. Даже если между снятием копии и отправкой ключа как-то затесалась смена парольной фразы — это не помеха. Воспользуемся мастер-ключом для открытия тома. Для этого преобразуем его 16ричную запись в логе в бинарный файл:
Монтируем диски со снятой копии:
Меры защиты
Как можно заключить — корень проблемы в запуске недоверенного кода. Вот небольшой обзор методик, которые стоит рассмотреть в контексте этого вопроса.
Шифрование загрузочного раздела
Некоторые дистрибутивы предлагают и такую возможность при установке (например OpenSuSE). В таком случае загрузочный раздел расшифровывается загрузчиком, а затем с него загружаются ядро и инитрамдрайв. Такой подход не имеет особого смысла по следующим причинам:
Использование TPM для хранения ключа шифрования и валидации безопасной среды загрузки
Использование UEFI Secure Boot для полного покрытия загрузочной цепи электронной подписью
Существуют дистрибутивы (Fedora, OpenSuSE) и одиночные решения, которые позволяют использовать Secure Boot в Linux. Однако, коробочные решения зачастую не обеспечивают целостность кода в цепи загрузки. Они предназначены преимущественно для того, чтобы Linux просто запускался при включенном Secure Boot. Обычно просто используется EFI shim, подписанный сертификатом Microsoft, который дальше запускает всё что угодно. Соответственно, при использовании внешнего сертифицирования покрыть подписью инитрамдрайв, который генерируется прямо в установленной системе, просто невозможно.
Доступное решение
Мне встретился подход к полноценному внедрению Secure Boot, совместимый с общепринятой схемой загрузки и не требующий серьёзного вмешательства в систему: отдельный загрузчик, отдельный рамдрайв, отдельное ядро. UEFI проверяет подпись только загрузчика GRUB2, загрузчик имеет вшитый конфиг с ключом для проверки подписи и паролем администратора, и дальше проверяет ядро и рамдрайв. Подписанный загрузчик устанавливается параллельно со старым и при необходимости сохраняется возможность запуститься обычным образом, выключив Secure Boot. Разумеется, эта возможность должна быть закрыта паролем администратора в меню настроек UEFI.
Я решил автоматизировать процесс внедрения Secure Boot с собственным PKI и сделать его простым и независимым от дистрибутива насколько возможно. В результате получился вот такой набор из рецепта Makefile и утилит: https://github.com/Snawoot/linux-secureboot-kit. Для debian, ubuntu, fedora и centos весь процесс требует всего несколько команд.
Конкретно на примере Debian 9 установка выглядит примерно следующим образом (предполагая, что UEFI уже в Setup Mode):
Здесь все команды введены от имени суперпользователя. В итоге остаётся только убедиться, что Secure Boot включён в меню BIOS и защитить настройки BIOS паролем администратора.
А вот как выглядит попытка подмены рамдрайва на такой инсталляции:
Подмена загрузчика (внешний вид зависит от платформы):
Одного лишь дискового шифрования недостаточно для обеспечения конфиденциальности данных. Подпись всей цепи загрузки с использованием UEFI Secure Boot и GPG позволяет достичь хорошего уровня защиты от подмены исполняемого кода при условии, что эксплуатант компьютера способен распознать сброс или подмену системной платы, или даже всего компьютера. В противном случае крайне трудно предложить адекватные способы защиты, если пользователь готов ввести пароль/передать ключ в любую машину, которая случайно оказалась на столе или в серверной.
ОБНОВЛЕНИЕ (2020-09-24 20:24:24+00:00): NSA опубликовало технический отчёт со схожими рекомендациями по усилению безопасности загрузочной цепи: ссылка, зеркало.
Шифрование жесткого диска в Windows 10: зачем это нужно и как сделать
Содержание
Содержание
Безопасность данных на компьютере — одна из главных прерогатив для многих пользователей. Комплексный подход — это защитить от стороннего вмешательства весь жесткий диск. Сделать это можно с помощью стандартного средства шифрования в Windows 10.
Чем эффективна такая защита
Зачем выполнять шифрование данных, если есть учетная запись пользователя с паролем? На самом деле это самая простая защита, которую могут сломать даже новички, четко выполняя действия определенной инструкции.
Проблема заключается в том, что злоумышленник может использовать загрузочную флешку и получить доступ к файлам и реестру операционной системы. Далее всего в несколько действий легко узнать введенный пароль или просто отключить его и получить доступ к рабочему столу.
Вопрос защиты файлов будет особенно важен для корпоративного сектора. Например, только в США ежегодно в аэропортах теряются больше 600 тысяч ноутбуков.
Стоит отметить, что с помощью встроенного средства BitLocker шифруются даже флеш-накопители, поскольку они распознаются системой как отдельные тома. При необходимости можно создать виртуальный диск VHD с важными данными и шифровать его, а сам файл хранить на обычной флешке.
Будет ли тормозить?
Шифрование всего диска действительно скажется на производительности системы, в частности, на скорости чтения/записи данных. Тесты различных пользователей показывают, что на относительно современном железе падение скорости на SSD — не более 10%, у жестких дисков падения могут быть больше.
Например, на ноутбуке Dell Inspiron 15 7577 с процессором i7-7700HQ и накопителем Samsung 950 Pro с 256 ГБ разница в ежедневном использовании будет практически незаметна.
Средство BitLocker использует шифрование AES 128/256. Соответственно, задействуются вычислительные ресурсы процессора. Если вы используете старые модели на 1-2 ядра, то BitLocker или аналогичный софт может ухудшить производительность.
Использование BitLocker при наличии чипа TPM
Чип TPM (Trusted Platform Module) — это специальный модуль, в котором хранятся криптографические ключи для защиты информации. Обычно он располагается на материнской плате, но далеко не каждая модель оснащается TPM. Ключ для расшифровки логического тома выдается только в коде загрузчика ОС, поэтому злоумышленникине смогут достать его непосредственно из жесткого диска.
Чтобы проверить, есть ли на вашем компьютере или ноутбуке модуль TPM, в окне «Выполнить» введите команду «tpm.msc».
При наличии чипа вы увидите окно с основной информацией, включая состояние модуля и версию.
Перед использованием системы шифрования TPM модуль необходимо инициализировать по следующей инструкции:
1. В панели управления зайдите в раздел «Шифрование диска BitLocker».
2. Напротив системного диска кликните по строке «Включить BitLocker». Система начнет проверку на соответствие конфигурации компьютера.
3. В следующем окне система предупредит пользователя, что для продолжения процесса будут выполнены два действия: активация оборудования безопасности и последующий запуск шифрования. Необходимо нажать «Далее».
4. Для включения TPM система попросит перезагрузить компьютер, поэтому нажмите соответствующую кнопку.
5. При следующей загрузке перед пользователями появится окно активации чипа TPM. Нажмите соответствующую клавишу для подтверждения (в данном случае F1).
6. Как только Windows прогрузится, мастер шифрования продолжит свою работу и предложит следующее меню с выбором места сохранения ключа восстановления.
Данные логического тома будут зашифрованы, а для разблокировки вам придется ввести пароль от учетной записи. При попытке войти в систему через загрузочную флешку или путем перемещения HDD в другой компьютер посторонние не смогут получить доступ к вашим данным. Ключ доступа будет надежно спрятан в TPM модуле.
Преимущество TPM заключается в простоте настройки и высокой безопасности — ключи хранятся в отдельной микросхеме. С другой стороны, если злоумышленники каким-либо образом узнают пароль от учетной записи, то без проблем смогут зайти в нее даже с шифрованием.
Шифрование BitLocker без модуля TPM
Что делать, если при вводе команды «tpm.msc» TPM модуль не был найден? Использовать BitLocker вы сможете по-прежнему, но теперь ключ вам придется сохранять в другом месте.
Для активации BitLocker следуйте инструкции:
1. Перейдите в меню групповых политик. В окне выполнить введите «gpedit.msc» и нажмите Enter. Необходимо открыть раздел «Конфигурация компьютера», а в нем перейти по «Административные шаблоны» и далее открыть «Компоненты Windows».
2. В компонентах найдите папку «Шифрование диска» и выберите подпункт «Диски операционной системы». Перейдите на вкладку «Стандартный» и дважды кликните ЛКМ по строке «Этот параметр позволяет настроить требования дополнительной проверки подлинности» (выделен на скриншоте).
3. Параметр необходимо перевести в состояние «Включено», а также поставить галочку в строке «Использовать BitLocker без совместимого TPM». Для сохранения изменений нажмите кнопку «Применить» и OK.
На этом настройка групповой политики завершена, и пользователи могут защититься стандартным средством шифрования BitLocker. Как и в предыдущей инструкции, вам необходимо перейти в раздел шифрования и включить BitLocker для системного или другого диска, на котором вы собираетесь зашифровать данные.
Меню настройки будет немного отличаться от вышеописанного:
1. Уже на первом окне вас попросят выбрать способ разблокировки диска. Пароль аналогичен предыдущей защите, вам будет достаточно ввести его при входе в учетную запись. Более надежный способ — флешка + PIN. Для входа в систему вам придется также вставить накопитель в USB-порт, после чего ввести пароль.
2. Если вы указали flash-накопитель, то система предложит выбрать его. В случае с паролем вам достаточно дважды ввести его и перейти в следующее окно.
3. Пользователь должен выбрать, куда сохранить ключ восстановления. Поскольку на шифруемый диск его записать нельзя, то доступны 4 варианта: учетная запись Майкрософт, флеш-накопитель, в качестве отдельного файла на другом диске или просто распечатать.
4. Выберем «Сохранить в файл». В этом случае достаточно указать место и убедиться, что соответствующий txt файл появился по указанному пути.
5. Выберите, как будет шифроваться диск — полностью или только занятая информацией часть. Второй вариант оптимален для новых ПК, на которых только недавно был установлен весь необходимый софт.
6. Выбор режима шифрования. Для несъемных накопителей укажите «новый», но для флешек или переносимых HDD лучше выбрать «Режим совместимости», чтобы при необходимости получить доступ к файлам на другом компьютере.
7. После завершения настроек в трее появится иконка BitLocker. Кликните по ней и подтвердите перезагрузку компьютера.
8. После перезагрузки начнется процесс шифрования, а его прогресс можно узнать из соответствующего значка в трее.
Теперь диск зашифрован и при каждом включении Windows будет просить ввести пароль BitLocker. Это относится и к съемным накопителям, если они были зашифрованы таким способом.
В разделе шифрования также появятся подробные настройки, где вы сможете удалить или сменить пароль, приостановить защиту, архивировать ключ восстановления или отключить шифрование.
Неправильный ввод пароля несколько раз приведет к блокировке, и получить доступ к диску можно будет только с помощью ключа восстановления
Самыми надежными считаются специальные смарт-карты, которые визуально выглядят как обычные флешки. Однако они имеют специальные библиотеки и отображаются отдельными устройствами в диспетчере задач. Соответственно, воспроизвести смарт-карту намного сложнее в отличие от обычной флешки-ключа.
Альтернативы BitLocker
Если по каким-либо причинам стандартная система шифрования вас не устраивает или в вашей редакции Windows ее просто нет, то можно воспользоваться сторонним софтом.
Однако будьте осторожны. Во-первых, сторонние программы в отличие от системных средств могут ощутимо сказываться на производительности компьютера, особенно, если они не оптимизированы под конкретные ОС. Во-вторых, нет гарантий, что такой софт не имеет уязвимостей, которыми могут воспользоваться злоумышленники или даже разработчики.
BitLocker Anywhere
Популярный софт для шифрования дисков, работающий под операционными системами Windows 7/8/10 различных редакций. У софта есть пробная версия на 15 суток, однако в ней запрещено шифровать системный раздел, поэтому пользователи смогут защитить только флешки и другие логические тома жесткого диска.
Базовая версия стоит 14,99$, а профессиональная с возможностью шифровать тома больше 2 ТБ — 19,99$. В функционал BitLocker Anywhere входит шифрование и дешифрование дисков, создание ключей восстановления с их экспортом. По сути, это аналог стандартному BitLocker с технической поддержкой со стороны разработчиков. Очевидный минус — в качестве защиты доступен только пароль, никаких смарт-карт или USB Flash здесь нет.
Для шифрования достаточно выбрать диск, указать пароль, место для сохранения ключа восстановления и дождаться окончания процесса. Интерфейс на английском языке, но программой можно пользоваться даже с минимальными знаниями иностранного.
7 zip
Если вы предпочитаете создавать VHD-образы и при необходимости подключать их к системе, то для шифрования вполне подойдет обычный архиватор 7zip.
Выберите виртуальный образ жесткого диска (формат VHD/VHDX) и нажмите «Добавить в архив». Далее в окне настроек укажите имя, пароль для шифрования и метод (желательно, AES-256).
Теперь для дешифровки вам придется ввести пароль и только потом монтировать VHD файл.
Нюансы восстановления зашифрованного диска
Что делать, если Windows с зашифрованным логическим диском не запускается? Это не проблема, если у вас есть необходимые данные доступа. Чтобы снять блокировку BitLocker, вам следует иметь хотя бы один из следующих элементов:
Если ничего этого у вас нет, то про данные можно забыть и единственный способ вернуть диск — отформатировать его. Конечно, есть специфические способы «выловить» ключ среди метаданных или дампа оперативной памяти, но и они не дают стопроцентной гарантии успеха, не говоря о сложности реализации. К этим методикам могут прибегать специализированные сервисы.
Если Windows не прогружается, то вам необходимо запустить среду восстановления, или воспользоваться установочным диском. Если это возможно, запустите командную строку (для стандартных средств Windows это команда Shift+F10). Теперь выполните следующие действия:
Если пароль не известен, то можно использовать ключ восстановления, напечатав в командной строке:
В этом случае поврежденные данные с диска F будут перекопированы на диск G, при этом последний должен быть по объему больше диска F. Ключ восстановления — это 48-цифровой код, который и печатается в этой команде.
Для flash-ключа формата «.bek», который в данном примере находится на флешке I, используется следующая строка:
Перед открытием расшифрованного диска обязательно выполните проверку на ошибки стандартной командой Chkdsk.