Главная » Компьютеры » Безопасность Windows » Возможен ли взлом Bitlocker?

Возможен ли взлом Bitlocker?

Взлом Bitlocker

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

Кстати, о том, как настроить Битлокер вы можете прочитать в статье «Шифрование BitLocker«.

Взлом Bitlocker

Содержание

  • Предисловие
  • Как работает Bitlocker
  • Взлом Bitlocker
    • Уязвимости
    • Ключи восстановления
    • Вскрываем BitLocker
    • BitLocker To Go
  • Заключение
Статья написана в исследовательских целях. Вся информация в ней носит ознакомительный характер. Она адресована специалистам по безопасности и тем, кто хочет ими стать.

Как работает Bitlocker

Что такое Bitlocker?

BitLocker — это родная функция шифрования дисков в операционных системах Windows 7, 8, 8.1, 10. Данная функция позволяет надежно зашифровать конфиденциальные данные на компьютере, как на HDD и SSD, так и на съемных носителях.

Как устроен BitLocker?

О надежности BitLocker не следует судить по репутации AES. Популярный стандарт шифрования может и не иметь откровенно слабых мест, а вот его реализации в конкретных криптографических продуктах ими часто изобилуют. Полный код технологии BitLocker компания Microsoft не раскрывает. Известно лишь, что в разных версиях Windows она базировалась на разных схемах, а изменения никак не комментировались. Более того, в сборке 10586 Windows 10 он просто исчез, а спустя два билда появился вновь. Впрочем, обо всем по порядку.

Первая версия BitLocker использовала режим сцепления блоков шифртекста (CBC). Уже тогда были очевидны его недостатки: легкость атаки по известному тексту, слабая стойкость к атакам по типу подмены и так далее. Поэтому в Microsoft сразу решили усилить защиту. Уже в Vista к схеме AES-CBC был добавлен алгоритм Elephant Diffuser, затрудняющий прямое сравнение блоков шифртекста. С ним одинаковые содержимое двух секторов давало после шифрования одним ключом совершенно разный результат, что усложняло вычисление общего паттерна. Однако сам ключ по умолчанию использовался короткий — 128 бит. Через административные политики его можно удлинить до 256 бит, но стоит ли это делать?

Для пользователей после изменения ключа внешне ничего не изменится — ни длина вводимых паролей, ни субъективная скорость выполнения операций. Как и большинство систем полнодискового шифрования, BitLocker использует несколько ключей… и ни один из них пользователи не видят. Вот принципиальная схема BitLocker.

  • При активации BitLocker с помощью генератора псевдослучайных чисел создается главная битовая последовательность. Это ключ шифрования тома — FVEK (full volume encryption key). Именно им отныне шифруется содержимое каждого сектора.
  • В свою очередь, FVEK шифруется при помощи другого ключа — VMK (volume master key) — и сохраняется в зашифрованном виде среди метаданных тома.
  • Сам VMK тоже шифруется, но уже разными способами по выбору пользователя.
  • На новых материнских платах ключ VMK по умолчанию шифруется с помощью ключа SRK (storage root key), который хранится в отдельном криптопроцессоpе — доверенном модуле (TPM, trusted platform module). У пользователя нет доступа к содержимому TPM, и оно уникально для каждого компьютера.
  • Если отдельного чипа TPM на плате нет, то вместо SRK для шифрования ключа VMK используется вводимый пользователем пин-код или подключаемый по запросу USB-Flash-накопитель с предварительно записанной на нем ключевой информацией.
  • Дополнительно к TPM или флешке можно защитить ключ VMK паролем.

Такая общая схема работы BitLocker сохранялась и в последующих выпусках Windows вплоть до нестоящего времени. Однако способы генерации ключей и режимы шифрования в BitLocker менялись. Так, в октябре 2014 года Microsoft по-тихому убрала дополнительный алгоритм Elephant Diffuser, оставив только схему AES-CBC с ее известными недостатками. Поначалу об этом не было сделано никаких официальных заявлений. Людям просто выдали ослабленную технологию шифрования с прежним названием под видом обновления. Туманные объяснения этого шага последовали уже после того, как упрощения в BitLocker заметили независимые исследователи.

Формально отказ от Elephant Diffuser потребовался для обеспечения соответствия Windows требованиям федеральных стандартов обработки информации США (FIPS), однако один аргумент опровергает эту версию: Vista и Windows 7, в которых использовался Elephant Diffuser, без проблем продавались в Америке.

Еще одна мнимая причина отказа от дополнительного алгоритма — это отсутствие аппаратного ускорения для Elephant Diffuser и потеря в скорости при его использовании. Однако в прежние годы, когда процессоры были медленнее, скорость шифрования почему-то устраивала. Да и тот же AES широко применялся еще до того, как появились отдельные наборы команд и специализированные чипы для его ускорения. Со временем можно было сделать аппаратное ускорение и для Elephant Diffuser или хотя бы предоставить клиентам выбор между скоростью и безопасностью.

Более реалистичной выглядит другая, неофициальная версия. «Слон» мешал сотрудникам АНБ, которым хотелось тратить меньше усилий при расшифровке очередного диска, а Microsoft охотно взаимодействует с органами власти даже в тех случаях, когда их запросы не вполне законны. Косвенно подтверждает теорию заговора и тот факт, что до Windows 8 при создании ключей шифрования в BitLocker применялся встроенный в Windows генератор псевдослучайных чисел. Во многих (если не во всех) выпусках Windows это был Dual_EC_DRBG — «криптографический стойкий ГПСЧ», разработанный Агентством национальной безопасности США и содержащий ряд изначально заложенных в него уязвимостей.

Разумеется, тайное ослабление встроенного шифрования вызвало мощную волну критики. Под ее давлением Microsoft вновь переписала BitLocker, заменив в новых выпусках Windows ГПСЧ на CTR_DRBG. Дополнительно в Windows 10 (начиная со сборки 1511) схемой шифрования по умолчанию стала AES-XTS, иммунная к манипуляциям с блоками шифртекста. В последних сборках «десятки» были устранены и другие известные недочеты BitLocker, но главная проблема по-прежнему осталась. Она настолько абсурдна, что делает бессмысленными остальные нововведения. Речь идет о принципах управления ключами.

Взлом Bitlocker

Как хакер может обойти или взломать Bitlocker?

Задачу дешифрования дисков BitLocker упрощает еще и то, что в Microsoft активно продвигают альтернативный метод восстановления доступа к данным через Data Recovery Agent. Смысл «Агента» в том, что он шифрует ключи шифрования всех накопителей в пределах сети предприятия единым ключом доступа. Заполучив его, можно расшифровать любой ключ, а значит, и любой диск, используемый в той же компании. Удобно? Да, особенно для взлома.

Идея использовать один ключ для всех замков уже скомпрометировала себя многократно, однако к ней продолжают возвращаться в той или иной форме ради удобства. Вот как записал Ральф Лейтон воспоминания Ричарда Фейнмана об одном характерном эпизоде его работы над проектом «Манхэттен» в Лос-Аламосской лаборатории: «…я открыл три сейфа — и все три одной комбинацией. Я уделал всех их: открыл сейфы со всеми секретами атомной бомбы — технологией получения плутония, описанием процесса очистки, сведениями о том, сколько нужно материала, как работает бомба, как получаются нейтроны, как устроена бомба, каковы ее размеры, — словом, все, о чем знали в Лос-Аламосе, всю кухню!».

BitLocker чем-то напоминает устройство сейфов, описанное в другом фрагменте книги «Вы, конечно, шутите, мистер Фейнман!». Самый внушительный сейф сверхсекретной лаборатории имел ту же самую уязвимость, что и простой шкафчик для документов. «…Это был полковник, и у него был гораздо более хитрый, двухдверный сейф с большими ручками, которые вытаскивали из рамы четыре стальных стержня толщиной три четверти дюйма. Я осмотрел заднюю сторону одной из внушительных бронзовых дверей и обнаружил, что цифровой лимб соединен с маленьким замочком, который выглядел точно так же, как и замок моего шкафа в Лос-Аламосе. Было очевидно, что система рычагов зависит от того же маленького стержня, который запирал шкафы для документов.. Изображая некую деятельность, я принялся наугад крутить лимб. Через две минуты — щелк! — сейф открылся. Когда дверь сейфа или верхний ящик шкафа для документов открыты, очень легко найти комбинацию. Именно это я проделал, когда Вы читали мой отчет, только для того, чтобы продемонстрировать Вам опасность».

Криптоконтейнеры BitLocker сами по себе достаточно надежны. Если вам принесут неизвестно откуда взявшуюся флешку, зашифрованную BitLocker To Go, то вы вряд ли расшифруете ее за приемлемое время. Однако в реальном сценарии использования зашифрованных дисков и съемных носителей полно уязвимостей, которые легко использовать для обхода BitLocker.

Уязвимости BitLocker

Наверняка вы заметили, что при первой активации Битлокер приходится долго ждать. Это неудивительно — процесс посекторного шифрования может занять несколько часов, ведь даже прочитать все блоки терабайтных HDD быстрее не удается. Однако отключение BitLocker происходит практически мгновенно — как же так?

Дело в том, что при отключении Битлокер не выполняет расшифровку данных. Все секторы так и останутся зашифрованными ключом FVEK. Просто доступ к этому ключу больше никак не будет ограничиваться. Все проверки отключатся, а VMK останется записанным среди метаданных в открытом виде. При каждом включении компьютера загрузчик ОС будет считывать VMK (уже без проверки TPM, запроса ключа на флешке или пароля), автоматически расшифровывать им FVEK, а затем и все файлы по мере обращения к ним. Для пользователя все будет выглядеть как полное отсутствие шифрования, но самые внимательные могут заметить незначительное снижение быстродействия дисковой подсистемы. Точнее — отсутствие прибавки в скорости после отключения шифрования.

Интересно в этой схеме и другое. Несмотря на название (технология полнодискового шифрования), часть данных при использовании BitLocker все равно остается незашифрованной. В открытом виде остаются MBR и BS (если только диск не был проинициализирован в GPT), поврежденные секторы и метаданные. Открытый загрузчик дает простор фантазии. В псевдосбойных секторах удобно прятать руткиты и прочую малварь, а метаданные содержат много всего интересного, в том числе копии ключей. Если Битлокер активен, то они будут зашифрованы (но слабее, чем FVEK шифрует содержимое секторов), а если деактивирован, то просто будут лежать в открытом виде. Это все потенциальные векторы атаки. Потенциальные они потому, что, помимо них, есть куда более простые и универсальные.

Ключ восстановления Bitlocker

Помимо FVEK, VMK и SRK, в BitLocker используется еще один тип ключей, создаваемый «на всякий случай». Это ключи восстановления, с которыми связан еще один популярный вектор атаки. Пользователи боятся забыть свой пароль и потерять доступ к системе, а Windows сама рекомендует им сделать аварийный вход. Для этого мастер шифрования BitLocker на последнем этапе предлагает создать ключ восстановления. Отказ от его создания не предусмотрен. Можно только выбрать один из вариантов экспорта ключа, каждый из которых очень уязвим.

В настройках по умолчанию ключ экспортируется как простой текстовый файл с узнаваемым именем: «Ключ восстановления BitLocker #», где вместо # пишется идентификатор компьютера (да, прямо в имени файла!). Сам ключ выглядит так.

Взлом BitlockerЕсли вы забыли (или никогда не знали) заданный в BitLocker пароль, то просто поищите файл с ключом восстановления. Наверняка он будет сохранен среди документов текущего пользователя или на его флешке. Может быть, он даже напечатан на листочке, как это рекомендует сделать Microsoft.

Взлом Bitlocker

Для быстрого обнаружения ключа восстановления удобно ограничить поиск по расширению (txt), дате создания (если знаете, когда примерно могли включить BitLocker) и размеру файла (1388 байт, если файл не редактировали). Найдя ключ восстановления, скопируйте его. С ним вы сможете в любой момент обойти стандартную авторизацию в BitLocker. Для этого достаточно нажать Esc и ввести ключ восстановления. Вы залогинитесь без проблем и даже сможете сменить пароль в BitLocker на произвольный, не указывая старый!

Взлом BitlockerВскрываем BitLocker

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

В случае Microsoft такой «специфики» хватает. Например, копии ключей BitLocker по умолчанию отправляются в SkyDrive и депонируются в Active Directory.

Зачем?

Ну, вдруг вы их потеряетеили агент Смит спросит. Клиента неудобно заставлять ждать, а уж агентатем более. По этой причине сравнение криптостойкости AES-XTS и AES-CBC с Elephant Diffuser отходит на второй план, как и рекомендации увеличить длину ключа. Каким бы длинным он ни был, атакующий легко получит его в незашифрованном виде.

Получение депонированных ключей из учетной записи Microsoft или ADосновной способ вскрытия BitLocker. Если же пользователь не регистрировал учетку в облаке Microsoft, а его компьютер не находится в домене, то все равно найдутся способы извлечь ключи шифрования. В ходе обычной работы их открытые копии всегда сохраняются в оперативной памяти (иначе не было бы «прозрачного шифрования»). Это значит, что они доступны в ее дампе и файле гибернации.

Почему они вообще там хранятся?

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

Проверим? Все описанные выше методы взлома BitLocker собраны в одной программеForensic Disk Decryptor, разработанной в отечественной компании «Элкомсофт». Она умеет автоматически извлекать ключи шифрования и монтировать зашифрованные тома как виртуальные диски, выполняя их расшифровку на лету.

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

bitlocker надежностьДля примера просто запустим тестовую систему с активным BitLocker и «незаметно» сделаем дамп памяти. Так мы смоделируем ситуацию, в которой коллега вышел на обед и не заблокировал свой компьютер. Запускаем RAM Capture и меньше чем через минуту получаем полный дамп в файле с расширением .mem и размером, соответствующим объему оперативки, установленной на компьютере жертвы.

bitlocker надежностьЧем делать дамп — по большому счету без разницы. Независимо от расширения это получится бинарный файл, который дальше будет автоматически проанализирован EFDD в поисках ключей.

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

bitlocker надежностьВыбираем опцию «Извлечь ключи» и в качестве источника ключей вводим путь до файла с дампом памяти.

bitlocker надежностьBitLocker — типичный кpиптоконтейнер, вроде PGP Disk или TrueCrypt. Эти контейнеры получились достаточно надежными сами по себе, но вoт клиентские приложения для работы с ними под Windows мусорят ключами шифрования в оперативной памяти. Поэтому в EFDD реализован сценарий универсальной атаки. Программа мгновенно отыскивает ключи шифрования от всех трех видов популярных криптоконтейнеров. Поэтому можно оставить отмеченными все пункты — вдруг жертва тайком использует TrueCrypt или PGP!

bitlocker надежностьСпустя несколько секунд Elcomsoft Forensic Disk Decryptor показывает все найденные ключи в своем окне. Для удобства их можно сохранить в файл — это пригодится в дальнейшем.

bitlocker надежностьТеперь BitLocker больше не помеха! Можно провести классическую офлайновую атаку — например, вытащить жесткий диск и скопировать его содержимое. Для этого просто подключите его к своему компьютеру и запустите EFDD в режиме «расшифровать или смонтировать диск».

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

BitLocker To Go

Начиная с «семерки» в Windows появилась возможность шифровать флешки, USB-HDD и прочие внешние носители. Технология под названием BitLocker To Go шифрует съемные накопители точно так же, как и локальные диски. Шифрование включается соответствующим пунктом в контекстном меню «Проводника».

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

взломать BitLocker Даже быстрое шифрование только занятой области занимает от нескольких минут до нескольких часов. Это время зависит от объема данных, пропускной способности интерфейса, характеристик накопителя и скорости криптографических вычислений процессора. Поскольку шифрование сопровождается сжатием, свободное место на зашифрованном диске обычно немного увеличивается.

При следующем подключении зашифрованной флешки к любому компьютеру с Windows 7 и выше автоматически вызовется мастер BitLocker для разблокировки диска. В «Провoднике» же до разблокировки она будет отображаться как диск, закрытый на замок.

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

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

  • использовать встроенный мастер BitLocker для непосредственной работы с флешкой;
  • использовать EFDD для полной расшифровки флешки и создания ее посекторного образа.

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

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

Разумеется, помимо обнаружения ключа восстановления для BitLocker2Go, в EFDD поддерживаются и все остальные методы обxода BitLocker. Просто перебирайте все доступные варианты подряд, пока не найдете ключ любого типа. Остальные (вплоть до FVEK) сами будут расшифрованы по цепочке, и вы получите полный доступ к диску.

Заключение

Технология полнодискового шифрования BitLocker отличается в разных версиях Windows. После адекватной настройки она позволяет создавать криптоконтейнеры, теоретически сравнимые по стойкости с TrueCrypt или PGP. Однако встроенный в Windows механизм работы с ключами сводит на нет все алгоритмические ухищрения. В частности, ключ VMK, используемый для дешифровки основного ключа в BitLocker, восстанавливается с помощью EFDD за несколько секунд из депонированного дубликата, дампа памяти, файла гибeрнации или атакой на порт FireWire.

Получив ключ, можно выполнить классическую офлайновую атаку, незаметно скопировать и автоматически расшифровать все данные на «защищенном» диске. Поэтому BitLocker целесообразно использовать только вместе с другими средствами защиты: шифрованной файловой системой (EFS), службой управления правами (RMS), контролем запуска программ, контролем установки и подключения устройств, а также более жесткими локальными политиками и общими мерами безопасности.

В статье использованы материалы сайта: Хaкер.ру (84ckf1r3), Technet Microsoft.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *