BitLocker. +1 к защите
Когда речь заходит о безопасности информации, все начинают вспоминать антивирусные системы, сетевые экраны, настройки прав пользователей, права доступа к файлам и т.д. Конечно, то, что я сейчас перечислил, имеет прямое отношение к защите данных и безопасности информационных технологий, однако в большинстве случаев мало кто говорит о шифровании. Эта тема как-то не популярна в кругу рядовых пользователей, то ли из-за стереотипа, сложившегося еще со времен "холодной войны", то ли просто от некоторой необразованности в этом вопросе, но большинство пользователей считают, что шифрование – это довольно крупная вещь и имеет смысл только для каких-либо компаний и спецслужб. Однако такая реальность может и имела место, но давно уже в прошлом. На данный момент существует много программных девайсов, которые способны шифровать данные, ставить их под пароль либо использовать более хитроумные варианты аутентификации пользователя, перед открытием доступа к файлам. Не осталась в стороне, в свое время, и корпорация Microsoft. Общеизвестно ее стремление дать пользователю полный набор необходимых и совершенно бесполезных утилит собственного производства в одном пакете, т.е. в дистрибутиве операционной системы. Именно так и появилась EFS (Encrypting File System, Файловая система шифрования). Сама по себе эта технология весьма привлекательна, так как алгоритм шифрования уже со второго сервисного пакета используется мощный, а, значит, пробить ее очень сложно. Однако, при всех достоинствах EFS, она не сильно удобна при реализации комплексной защиты, так как целью шифрования могут быть только файлы и папки. Этот факт делает ее специализированной, исключая универсальность. Сегодня я хотел бы остановиться на некотором новшестве, которое компания Microsoft внедрила в свою ОС Vista. Эта идея не нова, однако впервые реализована именно Майкрософтом.
Введение в технологию BitLocker
Есть такой тип атак – offline, который подразумевает выключенное состояние атакуемого компьютера. Сводится он обычно к банальной операции. Давайте представит такую ситуацию: работник крупной компании скопировал секретные данные на лэптоп, для того, чтобы удаленно от офиса работать с ними. И ноут у него украли. Естественно, имеются определенные барьеры, которые не позволят злоумышленникам загрузить операционную систему (от простого пароля до аутентификации пользователя, скажем, биометрической). Но зачем идти в гору, если можно ее обойти? Все просто: достал винчестер и подключил к другой машине, на выходе получил slave накопитель, с которого скачал всю необходимую информацию. Проще не бывает.
И что же делать в такой ситуации? Майкрософт предусмотрел это, и в новой операционной системе присутствует технология BitLocker, которая шифрует целые тома на жестком диске. Именно этой технологии и посвящен сегодняшний материал. Конечно, революцию я не произведу, однако продукт такого рода от Майкрософт – новшество, по-моему, его стоит рассмотреть поближе. Позднее, думаю, мы с вами проведем подробный тест технологии, где более четко рассмотрим алгоритм шифрования и попробуем обойти его реализацию от Майкрософта или же подтвердим ее твердость. А сегодня подробно рассмотрим саму реализацию, процедуры аутентификации и т.д.
Полное шифрование тома
Технология, по сути, осуществляет две функции: она шифрует весь том, содержащий операционную систему, и позволяет проверить целостность загрузочных компонентов (один из методов защиты от руткит-технологий). При этом вторая функция доступна только в том случае, если техническая начинка полностью поддерживает BitLocker. Что это значит? А то, что полная реализация возможностей системы шифрования возможна, если компьютер оснащен совместимым БИОС и микросхемой TPM (от версии 1.2 и выше). На какие возможности влияет наличие полной совместимости, я расскажу ниже, а сейчас добавлю, что ее отсутствие не исключает использование BitLocker.
При использовании BitLocker шифруется весь системный раздел HDD, со всеми файлами и данными. Это является своего рода "изюминкой" в подобной защите, то есть зашифровано все, что мы видим, работая в системе, и что не видим - тоже. Автоматизм и прозрачность – вот то, что отличат эту систему шифрования от EFS и RMS.
После обработки тома незашифрованными остаются лишь три элемента, которые, собственно, и не нуждаются в таковом, так как не несут абсолютно никакой критической информации. К этим элементам относятся: поврежденные сектора, загрузочный сектор и метаданные тома. Последние включают в себя информацию о теме и защищенные копии ключей расшифровки.
При шифровании BitLocker использует алгоритм AES с ключом в 128 бит, но для большего спокойствия длину ключика можно увеличить до 256 бит (так сказать, опция для параноиков :) ). Увеличить длину ключа можно используя групповые политики или через инструментарий WMI для BitLocker. Каждый из секторов шифруется отдельно, участок ключа для шифрования определяется номером сектора, это позволяет достичь результата несхожести зашифрованных секторов, даже если до шифровки на них была абсолютно идентичная информация. Такой поворот делает невозможным подбор ключа путем шифрования заранее известных данных. Перед началом шифрования BitLocker применяет еще один алгоритм, который носит название диффузор. В результате малейшее изменение исходного текста приводит к кардинальному изменению всего сектора данных.
Ключи
Вот теперь самое интересное. BitLocker — достаточно прозрачная система шифрования, потому как методики использования ключей открыты всем и каждому. Однако это абсолютно не влияет на защиту, а почему, вы сейчас поймете сами :) .
Непосредственное шифрование секторов всего тома производится ключом шифрования всего тома (full-volume encryption key, FVEK). После шифровки секторов этот ключ шифруется, результат записывается в область метаданных тома и все. Пользователь не имеет доступа к этому ключу, этот ключ никогда не хранится на томе в расшифрованном виде, из соображений безопасности.
Шифровка ключа FVEK производится, в свою очередь, основным ключом тома (volume master key, VMK). С VMK ключом уже активно работает система аутентификации. Он тоже шифруется или, точнее будет сказать, охраняется несколькими предохранителями ключа. По дефолту предохранителем ключа является совместимая микросхема TPM, о которой я говорил выше, однако есть альтернативы. Создается также пароль восстановления, на случай непредвиденной ситуации (всякое бывает, не мне это вам рассказывать).
Можно совместить работу TPM с вводом ПИН-кода из четырех символов или записать частичный ключ на USB Flash Drive. Получим двухфакторную проверку подлинности, что весьма полезно. Ну, а если совместимого TPM-чипа нет, то весь предохранитель ключа можно записать на USB, и тогда получим ключ запуска. Что-то похожее на дополнительное шифрование SAM библиотеки в Windows XP через утилиту syskey, только там используется дискета.
При запуске система опрашивает все usb порты и TPM-чип, чтобы найти подходящий предохранитель ключа. Если есть необходимость, то запрашивает пользователя. После обнаружения предохранителя расшифровывается ключ VMK, а им расшифровывается FVEK. Последний расшифровывает том и открывает системе доступ к нему. Весь алгоритм показан на схеме (рис.1).
Целостность компонентов загрузки
Шифрование тома частично решает проблему проверки целостности. Так как если системные файлы были изменены несанкционированно, то доступ к тому просто не будет открыт. Перед разработчиками оставалась последняя задача, для реализации полного комплекта проверки целостности: проверка целостности компонентов загрузки. Тут и пригодился совместимый TPM-чип. Посредством реализованной технологии проверки целостности компонентов загрузки можно проконтролировать неизменность БИОСа, MBR, загрузочного сектора и кода диспетчера загрузки. Алгоритм имеет такой вид: при загрузке системы досчитывается контрольная сумма каждого из проверяемых компонентов. Значение записывается в регистры конфигурации платформы (platform configuration registers, PCR), находящиеся в TPM. Опираясь на контрольную сумму, создается предохранитель ключа, которым шифруется VMK ключ, таким образом воедино связываются компоненты защиты.
BitLocker без TPM
Сначала я хотел бы немного отступить от темы подраздела и обратить ваше внимание, что технология BitLocker доступна в операционных системах Window Vista Enterprise, Window Vista Ultimate и Windows Server Longhorn.
Теперь вернемся к нашим баранам. Как уже оговаривалось – имеется возможность использования BitLocker без TPM, как следствие, с ограниченными возможностями. Для работы в таком режиме платформа должна поддерживать чтение с usb накопителя до загрузки системы (сейчас это скорее стандарт, чем особенность). Для включения выполним следующие операции:
1. Нажмите кнопку Пуск, введите gpedit.msc в поле поиска и нажмите ВВОД.
2. Если появится диалоговое окно контроля учетных записей, подтвердите желаемость действия, нажав кнопку "Продолжить".
3. В дереве консоли редактора объектов групповых политик выберите пункт "Редактор локальной политики", щелкните "Административные шаблоны", затем "Компоненты Windows", после чего дважды щелкните "Шифрование диска BitLocker".
4. Дважды щелкните настройку "Установка панели управления: включить дополнительные параметры запуска". Появится одноименное диалоговое окно.
5. Выберите вариант "Включить", установите флажок "Разрешить использование BitLocker без совместимого TPM" и нажмите кнопку "ОК". Теперь вместо TPM можно использовать ключ запуска.
6. Закройте редактор объектов групповой политики.
7. Чтобы новые настройки групповых политик вступили в силу немедленно, нажмите кнопку "Пуск", введите gpupdate.exe /force в поле поиска и нажмите клавишу ВВОД. Дождитесь завершения процесса.
Стоит обратить внимание, что разделы жесткого диска должны быть правильно настроены. Все мы знаем, что система активно работает с разделом, на котором установлена: это и файл подкачки, и загрузка/выгрузка компонентов, и временный доступ к файлам, и т.д. Да и при загрузке прошедшие проверку на целостность компоненты должны куда-то загрузиться. Поэтому рекомендуется создать отдельно активный раздел, с которым будет работать система, а системные файлы хранить на системном разделе, соответственно. В руководстве по BitLocker сказано, что достаточно 1.5 гигабайта на активный раздел, собственно, я тоже думаю, что этого будет достаточно.
Настроить диски можно воспользовавшись руководством BitLocker или автоматизированным средством подготовки дисков – все это можно найти на официальном сайте Майкрософт.
После активации BitLocker вы увидите диалоговое окно, которое будет отображать теперешнее состояние шифровки/дешифровки системного раздела (рис.2).
Дальше от вас будет требоваться только следовать указанием мастера. После перезагрузки появится еще одно окошко, которое будет предлагать варианты сохранения ключа восстановления (рис.3). Необходимо выбрать вариант, при этом сохранить ключ возможно в нескольких экземплярах.
Заключение
В заключение я хотел бы сказать, что BitLocker можно рассматривать не только как отличный способ шифрования и защиты от offline атак, но и как возможность утилизации информации без возможности восстановления средствами системы без затирания кластеров. Все что необходимо – просто уничтожить все копии ключа восстановления, стереть метаданные тома и зашифрованный FVEK ключ и уничтожить предохранители ключа. А с другой стороны, предохранители можно хранить в надежно защищенном месте и из горы списанных винчестеров получится архив, в любой момент готовый поделиться с вами информаций.
Шифрование тома системы очень интересный пункт в процессе безопасности, который без сомнений принесет свои плоды в лице недоступности данных при отключенном состоянии. Мы познакомились с новой технологией от компании Microsoft, которая как раз и заключается в шифровании томов. С теоретической точки зрения эта система шифрования безупречна и неприступна, однако будем ждать практических выводов, которые, полагаю, не заставят себя ждать. А пока я бы советовал вам обратить свое внимание на Windows BitLocker как на приемлемую альтернативу.
Евгений Кучук, q@sa-sec.org SASecurity gr.
Введение в технологию BitLocker
Есть такой тип атак – offline, который подразумевает выключенное состояние атакуемого компьютера. Сводится он обычно к банальной операции. Давайте представит такую ситуацию: работник крупной компании скопировал секретные данные на лэптоп, для того, чтобы удаленно от офиса работать с ними. И ноут у него украли. Естественно, имеются определенные барьеры, которые не позволят злоумышленникам загрузить операционную систему (от простого пароля до аутентификации пользователя, скажем, биометрической). Но зачем идти в гору, если можно ее обойти? Все просто: достал винчестер и подключил к другой машине, на выходе получил slave накопитель, с которого скачал всю необходимую информацию. Проще не бывает.
И что же делать в такой ситуации? Майкрософт предусмотрел это, и в новой операционной системе присутствует технология BitLocker, которая шифрует целые тома на жестком диске. Именно этой технологии и посвящен сегодняшний материал. Конечно, революцию я не произведу, однако продукт такого рода от Майкрософт – новшество, по-моему, его стоит рассмотреть поближе. Позднее, думаю, мы с вами проведем подробный тест технологии, где более четко рассмотрим алгоритм шифрования и попробуем обойти его реализацию от Майкрософта или же подтвердим ее твердость. А сегодня подробно рассмотрим саму реализацию, процедуры аутентификации и т.д.
Полное шифрование тома
Технология, по сути, осуществляет две функции: она шифрует весь том, содержащий операционную систему, и позволяет проверить целостность загрузочных компонентов (один из методов защиты от руткит-технологий). При этом вторая функция доступна только в том случае, если техническая начинка полностью поддерживает BitLocker. Что это значит? А то, что полная реализация возможностей системы шифрования возможна, если компьютер оснащен совместимым БИОС и микросхемой TPM (от версии 1.2 и выше). На какие возможности влияет наличие полной совместимости, я расскажу ниже, а сейчас добавлю, что ее отсутствие не исключает использование BitLocker.
При использовании BitLocker шифруется весь системный раздел HDD, со всеми файлами и данными. Это является своего рода "изюминкой" в подобной защите, то есть зашифровано все, что мы видим, работая в системе, и что не видим - тоже. Автоматизм и прозрачность – вот то, что отличат эту систему шифрования от EFS и RMS.
После обработки тома незашифрованными остаются лишь три элемента, которые, собственно, и не нуждаются в таковом, так как не несут абсолютно никакой критической информации. К этим элементам относятся: поврежденные сектора, загрузочный сектор и метаданные тома. Последние включают в себя информацию о теме и защищенные копии ключей расшифровки.
При шифровании BitLocker использует алгоритм AES с ключом в 128 бит, но для большего спокойствия длину ключика можно увеличить до 256 бит (так сказать, опция для параноиков :) ). Увеличить длину ключа можно используя групповые политики или через инструментарий WMI для BitLocker. Каждый из секторов шифруется отдельно, участок ключа для шифрования определяется номером сектора, это позволяет достичь результата несхожести зашифрованных секторов, даже если до шифровки на них была абсолютно идентичная информация. Такой поворот делает невозможным подбор ключа путем шифрования заранее известных данных. Перед началом шифрования BitLocker применяет еще один алгоритм, который носит название диффузор. В результате малейшее изменение исходного текста приводит к кардинальному изменению всего сектора данных.
Ключи
Вот теперь самое интересное. BitLocker — достаточно прозрачная система шифрования, потому как методики использования ключей открыты всем и каждому. Однако это абсолютно не влияет на защиту, а почему, вы сейчас поймете сами :) .
Непосредственное шифрование секторов всего тома производится ключом шифрования всего тома (full-volume encryption key, FVEK). После шифровки секторов этот ключ шифруется, результат записывается в область метаданных тома и все. Пользователь не имеет доступа к этому ключу, этот ключ никогда не хранится на томе в расшифрованном виде, из соображений безопасности.
Шифровка ключа FVEK производится, в свою очередь, основным ключом тома (volume master key, VMK). С VMK ключом уже активно работает система аутентификации. Он тоже шифруется или, точнее будет сказать, охраняется несколькими предохранителями ключа. По дефолту предохранителем ключа является совместимая микросхема TPM, о которой я говорил выше, однако есть альтернативы. Создается также пароль восстановления, на случай непредвиденной ситуации (всякое бывает, не мне это вам рассказывать).
Можно совместить работу TPM с вводом ПИН-кода из четырех символов или записать частичный ключ на USB Flash Drive. Получим двухфакторную проверку подлинности, что весьма полезно. Ну, а если совместимого TPM-чипа нет, то весь предохранитель ключа можно записать на USB, и тогда получим ключ запуска. Что-то похожее на дополнительное шифрование SAM библиотеки в Windows XP через утилиту syskey, только там используется дискета.
При запуске система опрашивает все usb порты и TPM-чип, чтобы найти подходящий предохранитель ключа. Если есть необходимость, то запрашивает пользователя. После обнаружения предохранителя расшифровывается ключ VMK, а им расшифровывается FVEK. Последний расшифровывает том и открывает системе доступ к нему. Весь алгоритм показан на схеме (рис.1).
Целостность компонентов загрузки
Шифрование тома частично решает проблему проверки целостности. Так как если системные файлы были изменены несанкционированно, то доступ к тому просто не будет открыт. Перед разработчиками оставалась последняя задача, для реализации полного комплекта проверки целостности: проверка целостности компонентов загрузки. Тут и пригодился совместимый TPM-чип. Посредством реализованной технологии проверки целостности компонентов загрузки можно проконтролировать неизменность БИОСа, MBR, загрузочного сектора и кода диспетчера загрузки. Алгоритм имеет такой вид: при загрузке системы досчитывается контрольная сумма каждого из проверяемых компонентов. Значение записывается в регистры конфигурации платформы (platform configuration registers, PCR), находящиеся в TPM. Опираясь на контрольную сумму, создается предохранитель ключа, которым шифруется VMK ключ, таким образом воедино связываются компоненты защиты.
BitLocker без TPM
Сначала я хотел бы немного отступить от темы подраздела и обратить ваше внимание, что технология BitLocker доступна в операционных системах Window Vista Enterprise, Window Vista Ultimate и Windows Server Longhorn.
Теперь вернемся к нашим баранам. Как уже оговаривалось – имеется возможность использования BitLocker без TPM, как следствие, с ограниченными возможностями. Для работы в таком режиме платформа должна поддерживать чтение с usb накопителя до загрузки системы (сейчас это скорее стандарт, чем особенность). Для включения выполним следующие операции:
1. Нажмите кнопку Пуск, введите gpedit.msc в поле поиска и нажмите ВВОД.
2. Если появится диалоговое окно контроля учетных записей, подтвердите желаемость действия, нажав кнопку "Продолжить".
3. В дереве консоли редактора объектов групповых политик выберите пункт "Редактор локальной политики", щелкните "Административные шаблоны", затем "Компоненты Windows", после чего дважды щелкните "Шифрование диска BitLocker".
4. Дважды щелкните настройку "Установка панели управления: включить дополнительные параметры запуска". Появится одноименное диалоговое окно.
5. Выберите вариант "Включить", установите флажок "Разрешить использование BitLocker без совместимого TPM" и нажмите кнопку "ОК". Теперь вместо TPM можно использовать ключ запуска.
6. Закройте редактор объектов групповой политики.
7. Чтобы новые настройки групповых политик вступили в силу немедленно, нажмите кнопку "Пуск", введите gpupdate.exe /force в поле поиска и нажмите клавишу ВВОД. Дождитесь завершения процесса.
Стоит обратить внимание, что разделы жесткого диска должны быть правильно настроены. Все мы знаем, что система активно работает с разделом, на котором установлена: это и файл подкачки, и загрузка/выгрузка компонентов, и временный доступ к файлам, и т.д. Да и при загрузке прошедшие проверку на целостность компоненты должны куда-то загрузиться. Поэтому рекомендуется создать отдельно активный раздел, с которым будет работать система, а системные файлы хранить на системном разделе, соответственно. В руководстве по BitLocker сказано, что достаточно 1.5 гигабайта на активный раздел, собственно, я тоже думаю, что этого будет достаточно.
Настроить диски можно воспользовавшись руководством BitLocker или автоматизированным средством подготовки дисков – все это можно найти на официальном сайте Майкрософт.
После активации BitLocker вы увидите диалоговое окно, которое будет отображать теперешнее состояние шифровки/дешифровки системного раздела (рис.2).
Дальше от вас будет требоваться только следовать указанием мастера. После перезагрузки появится еще одно окошко, которое будет предлагать варианты сохранения ключа восстановления (рис.3). Необходимо выбрать вариант, при этом сохранить ключ возможно в нескольких экземплярах.
Заключение
В заключение я хотел бы сказать, что BitLocker можно рассматривать не только как отличный способ шифрования и защиты от offline атак, но и как возможность утилизации информации без возможности восстановления средствами системы без затирания кластеров. Все что необходимо – просто уничтожить все копии ключа восстановления, стереть метаданные тома и зашифрованный FVEK ключ и уничтожить предохранители ключа. А с другой стороны, предохранители можно хранить в надежно защищенном месте и из горы списанных винчестеров получится архив, в любой момент готовый поделиться с вами информаций.
Шифрование тома системы очень интересный пункт в процессе безопасности, который без сомнений принесет свои плоды в лице недоступности данных при отключенном состоянии. Мы познакомились с новой технологией от компании Microsoft, которая как раз и заключается в шифровании томов. С теоретической точки зрения эта система шифрования безупречна и неприступна, однако будем ждать практических выводов, которые, полагаю, не заставят себя ждать. А пока я бы советовал вам обратить свое внимание на Windows BitLocker как на приемлемую альтернативу.
Евгений Кучук, q@sa-sec.org SASecurity gr.
Компьютерная газета. Статья была опубликована в номере 04 за 2009 год в рубрике безопасность