Взлом шифрования. Взлом систем шифрования жестких дисков путем «холодной перезагрузки

ВСТУПЛЕНИЕ

Кракми это
программа (обычно небольшого размера 1-2
килобайта), к которой нужно подобрать пароль
или составить ключ. Кракми пишутся обычно
для проверки уровня знаний людей в области
криптографии и взлома программ. Крак ми
пошло от английского словосочетания Crack Me -
взломай меня.

Как-то мне
потребовалось вставить поддержку "регистрационных"
ключей в одну из коммерческих программ. На
тот момент опыта в этом деле у меня было
совсем немного, как-то я пробовал взломать
несколько crackme, но ничего не получалось и я
быстро бросал. Но когда появился стимул, я
решил начать с crackme и сейчас занимаюсь
изучением различных алгоритмов шифрования
данных (таких как DES, TWODES, RSA и прочих). Вполне
возможно, что следующие мои статьи будут об
алгоритмах шифрования, так как
использование этих алгоритмов значительно
увеличивает время затрачиваемое на взлом.

ВИДЫ CRACKME

Рассматривая
различные кракми, я выделил два основных
типа: зашифрованные кракми и содержащие
только алгоритм.

Расшифровщик
кракми первого вида обычно содержит
множество анти-отладочных “приёмов” (сложность
этих приемов зависит от уровня знаний
человека написавшего кракми, самые
распространенные приемы легко обходятся
людьми и отладчиками, работающими под
защищенным режимом (protected mode)) и прежде чем
начинать анализ алгоритма, нужно получить
расшифрованный код. Чем сложнее
расшифровать, тем (скорее всего) сложнее
будет алгоритм подбора пароля (или паролей)
к нему. Очень часто получается так, что
алгоритм из 300 байт бывает сломать тяжелее,
чем расшифровать кракми. Без знаний
математики так же не советую ломать кракми
в которых используется алгоритм RSA(алгоритм
шифрования данных с открытым ключем) или
похожий. Естественно, начинать лучше с
нешифрованных кракми. Так же не советую
пытаться сломать кракми от групп UCL, UCF, rPG, SOS
– вы просто потратите время зря.

В некоторых
кракми требуется узнать не пароль, а
сделать регистрационный ключ. Процесс
слома подобного кракми не сильно
отличается от “парольного”, но он более “приближен”
к слому программ.

АЛГОРИТМ СЛОМА
CRACKME

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

Алгоритм:

    Анализ
    алгоритма проверки пароля

    Написание
    кейгена (программы подбирающей пароль)

    Запуск кейгена

АНАЛИЗ АЛГОРИТМА
ПРОВЕРКИ ПАРОЛЯ

Для анализа
следует внимательно изучить алгоритм
проверки пароля. Для этого используется ваш
любимый отладчик (Soft Ice, TD, DeGlucker...), нужно
внимательно посмотреть по чему проверяется
пароль. Он может проверяться по контрольной
сумме (crc), в этом случае скорее всего пароль
придется искать перебором, или он может
проверяться по какому-нибудь символу, тогда
можно "угадать" весь пароль или хотя бы
несколько его символов, остальные придется
искать перебором.

Контрольная
сумма участка кода, это число (обычно два
или четыре байта, в кракми может
использоваться и один байт) которое
содержит информацию об этом участке кода.
Для кракми обычно используются процедуры
примитивного расчета контрольной суммы (например
архиваторы используют crc32). Рассмотрим
пример алгоритма рассчитывающего
контрольную сумму:

Например, все
байты участка складываются, и получается
число – это число и является контрольной
суммой участка. Например, у нас есть участок
кода, состоящий из 5 байт:

001 004 000 005 100

Контрольная
сумма его будет равняться 1+4+0+5+100=110.

Основная
сложность взлома кракми, которые проверяют
пароль по crc в том, что crc нельзя разложить! Т.е.
зная контрольную сумму пароля - 110 мы не
можем узнать, чему равен хотя бы один из
элементов пароля.

НАПИСАНИЕ КЕЙГЕНА

Практически для
всех видов кракми нужно писать кейген,
кроме легких. Можно легко сломать
практически любой кракми бит хаком (bit hack,
замена нескольких байт), но авторы просят
сказать пароль, а самое главное теряется
интерес.

Для того, что
бы найти пароль из 3 символов необходимо
примерно перебрать: 255
* 255 * 255 КОМБИНАЦИЙ

Можно уменьшить
количество комбинаций, например зная, что в
пароле используются только английские
буквы (большие и маленькие), то вместо 255
символов придется перебирать только 52. Если
только цифры, что будем перебирать только 10
символов.

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

ЗАПУСК КЕЙГЕНА

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

Для взлома Encrypted File System (EFS) может быть использовано программное обеспечение Advanced EFS Data Recovery производства компании "Элкомсофт". Демонстрационную версию данного программного обеспечения можно получить по адресу http://www.elcomsoft.com/aefsdr.html

Стартовое окно программы

Рис 3. Окно программы Advanced EFS Data Recovery

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

Для файлов, зашифрованных в операционной системе Windows 2000, если Ключ Базы данных Учетной записи (SYSKEY) сохранена на гибком диске, или если опция "Password Startup" была установлена, Вы должны знать один из следующих паролей, чтобы быть суметь расшифровать файлы:

    пароль запуска или гибкий диск запуска

    пароль пользователя, который зашифровал файлы

    пароль Агента Восстановления (если - возможно)

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

Взлом паролей ос Windows 9x

Однако не стоит забывать, что существует гораздо более простой способ взлома сетевых паролей. Так как в большинстве организаций сегодня ОС клиентской машины является Windows 95/98, то соответственно, гораздо проще организовать взлом парольной защиты данной ОС, ведь пароль в таком файле хранится только в верхнем регистре (большими буквами), зная это гораздо удобнее и проще затем подобрать необходимый пароль сети.

Для взлома паролей Windows 95/98 существует большое количество программ, но остановимся на самой популярной из них PwlTool 6.0, на примере которой производились исследования.

На рисунке 3 приведено основное рабочее окно этой программы, предназначенной для работы на компьютерах с ОС Windows 95/98, Windows NT/2000.

PwlTool - набор инструментальных средств восстановления пароля. Основная программа - RePwl. Эта программа позволяет восстановить иногда забытый или потерянный пароль входа в систему для Windows 95 (первоначальная версия и OSR2) и Windows 98. Это также дает возможность просмотреть пароли, сохраненные в PWL файле.

Что такое - pwl файл?

Windows 95/98 сохраняет пароль в PWL файле. PWL файлы могут быть найдены в каталоге Windows. Их имена обычно сохраняются как USERNAME.PWL. PWL файл зашифрован и не просто из него извлечь пароли. Первый алгоритм шифрования версии Windows 95 был создан таким, который позволял создать программы для расшифровки PWL файлов. Однако в версии OSR2 этот недостаток был устранен.

Оценка надежности pwl файлов.

Система защиты паролей в OSR2 сделана профессионально и достоверна в терминах криптографии. Однако, несмотря на это, содержит несколько серьезных недостатков, а именно:

    все пароли преобразованы к верхнему регистру, это значительно уменьшает количество возможных паролей;

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

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

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

Предисловие

Так как для доступа к зашифрованному жесткому диску необходимо иметь ключ, а он, разумеется, хранится в RAM – все, что нужно, это получить физический доступ к ПК на несколько минут. После перезагрузки с внешнего жесткого диска или с USB Flash делается полный дамп памяти и в течение считанных минут из него извлекается ключ доступа.

Таким способом удается получить ключи шифрования (и полный доступ к жесткому диску), используемые программами BitLocker, FileVault и dm-crypt в операционных системах Windows Vista, Mac OS X и Linux, а также популярной свободно распространяемой системой шифрования жестких дисков TrueCrypt.

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

Наглядная демонстрация процесса представлена в видеоролике .

Аннотация

Вопреки устоявшемуся мнению, память DRAM, использующаяся в большинстве современных компьютеров, хранит в себе данные даже после отключения питания в течение нескольких секунд или минут, причём, это происходит при комнатной температуре и даже, в случае извлечения микросхемы из материнской платы. Этого времени оказывается вполне достаточно для снятия полного дампа оперативной памяти. Мы покажем, что данное явление позволяет злоумышленнику, имеющему физический доступ к системе, обойти функции ОС по защите данных о криптографических ключах. Мы покажем, как перезагрузка может использоваться для того, чтобы совершать успешные атаки на известные системы шифрования жёстких дисков, не используя каких-либо специализированных устройств или материалов. Мы экспериментально определим степень и вероятность сохранения остаточной намагниченности и покажем что время, за которое можно снять данные, может быть существенно увеличено при помощи простых приёмов. Так же будут предложены новые методы для поиска криптографических ключей в дампах памяти и исправления ошибок, связанных с потерей битов. Будет также рассказано о несколько способах уменьшения данных рисков, однако простого решения нам не известно.

Введение

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

Мы покажем ряд атак, которые, используя эффекты остаточной намагниченности DRAM, позволят нам восстановить хранимые в памяти ключи шифрования. Это представляет собой реальную угрозу для пользователей ноутбуков, которые полагаются на системы шифрования жёсткого диска. Ведь в случае, если злоумышленник похитит ноутбук, в тот момент, когда зашифрованный диск подключён, он сможет провести одну из наших атак для доступа к содержимому, даже если сам ноутбук заблокирован или находится в спящем режиме. Мы это продемонстрируем, успешно атакуя несколько популярных систем шифрования, таких как – BitLocker, TrueCrypt и FileVault. Эти атаки должны быть успешны и в отношении других систем шифрования.

Хотя мы сосредоточили наши усилия на системах шифрования жёстких дисков, в случае физического доступа к компьютеру злоумышленника, любая важная информация хранящаяся в оперативной памяти может стать объектом для атаки. Вероятно, и многие другие системы безопасности уязвимы. Например, мы обнаружили, что Mac OS X оставляет пароли от учётных записей в памяти, откуда мы смоги их извлечь, так же мы совершили атаки на получение закрытых RSA ключей веб-сервера Apache.

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

Атаки на зашифрованные диски

Шифрование жёстких дисков это известный способ защиты против хищения данных. Многие полагают, что системы шифрования жёстких дисков позволят защитить их данные, даже в том случае, если злоумышленник получил физических доступ к компьютеру (собственно для этого они и нужны, прим. ред.). Закон штата Калифорния, принятый в 2002 году, обязывает сообщать о возможных случаях раскрытия персональных данных, только в том случае, если данные не были зашифрованы, т.к. считается, что шифрование данных - это достаточная защитная мера. Хотя закон не описывает никаких конкретных технических решений, многие эксперты рекомендуют использовать системы шифрования жёстких дисков или разделов, что будет считаться достаточными мерами для защиты. Результаты нашего исследования показали, что вера в шифрование дисков необоснованна. Атакующий, далеко не самой высокой квалификации, может обойти многие широко используемые системы шифрования, в случае если ноутбук с данными похищен, в то время когда он был включён или находился в спящем режиме. И данные на ноутбуке могут быть прочитаны даже в том случае, когда они находятся на зашифрованном диске, поэтому использование систем шифрования жёстких дисков не является достаточной мерой.

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

BitLocker

BitLocker – система, входящая в состав некоторых версий ОС Windows Vista. Она функционирует как драйвер работающий между файловой системой и драйвером жёсткого диска, шифруя и расшифровывая по требованию выбранные секторы. Используемые для шифрования ключи находятся в оперативной памяти до тех пор, пока зашифрованный диск подмантирован.

Для шифрования каждого сектора жёсткого диска BitLocker использует одну и ту же пару ключей созданных алгоритмом AES: ключ шифрования сектора и ключ шифрования, работающий в режиме сцепления зашифрованных блоков (CBC). Эти два ключа в свою очередь зашифрованы мастер ключом. Чтобы зашифровать сектор, проводится процедура двоичного сложения открытого текста с сеансовым ключом, созданным шифрованием байта смещения сектора ключом шифрования сектора. Потом, полученные данные обрабатываются двумя смешивающими функциями, которые используют разработанный Microsoft алгоритм Elephant. Эти безключевые функции используются с целью увеличения количества изменений всех битов шифра и, соответственно, увеличения неопределённости зашифрованных данных сектора. На последнем этапе, данные шифруются алгоритмом AES в режиме CBC, с использованием соответствующего ключа шифрования. Вектор инициализации определяется путём шифрования байта смещения сектора ключом шифрования, используемом в режиме CBC.

Нами была реализована полностью автоматизированная демонстрационная атака названная BitUnlocker. При этом используется внешний USB диск с ОС Linux и модифицированным загрузчиком на основе SYSLINUX и драйвер FUSE позволяющий подключить зашифрованные BitLocker диски в ОС Linux. На тестовом компьютере с работающей Windows Vista отключалось питание, подключался USB жёсткий диск, и с него происходила загрузка. После этого BitUnlocker автоматически делал дамп оперативной памяти на внешний диск, при помощи программы keyfind осуществлял поиск возможных ключей, опробовал все подходящие варианты (пары ключа шифрования сектора и ключа режима CBC), и в случае удачи подключал зашифрованный диск. Как только диск подключался, появлялась возможность с ним работать как с любым другим диском. На современном ноутбуке с 2 гигабайтами оперативной памяти процесс занимал около 25 минут.

Примечательно, что данную атаку стало возможным провести без реверс-инжиниринга какого-либо ПО. В документации Microsoft система BitLocker описана в достаточной степени, для понимания роли ключа шифрования сектора и ключа режима CBC и создания своей программы реализующей весь процесс.

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

По всей видимости, специалисты Microsoft знакомы с данной проблемой и поэтому рекомендуют настроить BitLocker в улучшенный режим, где защита ключей осуществляется, не только при помощи TPM, но и паролем или ключом на внешнем USB носителе. Но, даже в таком режиме, система уязвима, если злоумышленник получит физический доступ к ПК в тот момент, когда он работает (он даже может быть заблокирован или находиться в спящем режиме, (состояния - просто выключен или hibernate в это случае считаются не подверженными данной атаке).

FileVault

Система FileVault от Apple была частично исследована и проведён реверс-инжиниринг. В Mac OS X 10.4 FileVault использует 128-битный ключ AES в режиме CBC. При введении пароля пользователя, расшифровывается заголовок, содержащий ключ AES и второй ключ K2, используемый для расчёта векторов инициализации. Вектор инициализации для I-того блока диска рассчитывается как HMAC-SHA1 K2(I).

Мы использовали нашу программу EFI для получения образов оперативной памяти для получения данных с компьютера Макинтош (базирующимся на процессоре Intel) с подключённым диском, зашифрованным FileVault. После этого программа keyfind безошибочно автоматически находила AES ключи FileVault.

Без вектора инициализации, но с полученным AES ключом появляется возможность расшифровать 4080 из 4096 байт каждого блока диска (всё кроме первого AES блока). Мы убедились, что инициализационный вектор так же находится в дампе. Предполагая, что данные не успели исказиться, атакующий может определить вектор, поочерёдно пробуя все 160-битовые строки в дампе и проверяя, могут ли они образовать возможный открытый текст, при их бинарном сложении с расшифрованной первой частью блока. Вместе, используя программы типа vilefault, AES ключи и инициализационный вектор позволяют полностью расшифровывать зашифрованный диск.

В процессе исследования FileVault, мы обнаружили, что Mac OS X 10.4 и 10.5 оставляют множественные копии пароля пользователя в памяти, где они уязвимы к данной атаке. Пароли учётных записей часто используются для защиты ключей, которые в свою очередь, могу использоваться для защиты ключевых фраз зашифрованных FileVault дисков.

TrueCrypt

TrueCrypt – популярная система шифрования с открытым кодом, работающая на ОС Windows, MacOS и Linux. Она поддерживает множество алгоритмов, включая AES, Serpent и Twofish. В 4-ой версии, все алгоритмы работали в режиме LRW; в текущей 5-ой версии, они используют режим XTS. TrueCrypt хранит ключ шифрования и tweak ключ в заголовке раздела на каждом диске, который зашифрован другим ключом получающимся из вводимого пользователем пароля.

Мы тестировали TrueCrypt 4.3a и 5.0a работающие под ОС Linux. Мы подключили диск, зашифрованный при помощи 256-битного AES ключа, потом отключили питание и использовали для загрузки собственное ПО для дампа памяти. В обоих случаях, keyfind обнаружила 256-битный неповреждённый ключ шифрования. Так же, в случае TrueCrypt 5.0.a, keyfind смогла восстановить tweak ключ режима XTS.

Чтобы расшифровать диски созданные TrueCrypt 4, необходим tweak ключ режима LRW. Мы обнаружили, что система хранит его в четырёх словах перед ключевым расписанием ключа AES. В нашем дампе, LRW ключ не был искажён. (В случае появления ошибок, мы все равно смогли бы восстановить ключ).

Dm-crypt

Ядро Linux, начиная с версии 2.6, включает в себя встроенную поддержку dm-crypt – подсистемы шифрования дисков. Dm-crypt использует множество алгоритмов и режимов, но, по умолчанию, она использует 128-битный шифр AES в режиме CBC с инициализационными векторами создаваемыми не на основе ключевой информации.

Мы тестировали созданный dm-crypt раздел, используя LUKS (Linux Unified Key Setup) ветку утилиты cryptsetup и ядро 2.6.20. Диск был зашифрован при помощи AES в режиме CBC. Мы ненадолго отключили питание и, используя модифицированный PXE загрузчик, сделали дамп памяти. Программа keyfind обнаружила корректный 128-битный AES ключ, который и был восстановлен без каких-либо ошибок. После его восстановления, злоумышленник может расшифровать и подключить раздел зашифрованный dm-crypt, модифицируя утилиту cryptsetup таким образом, чтобы она воспринимала ключи в необходимом формате.

Способы защиты и их ограничения

Реализация защиты от атак на оперативную память нетривиальна, поскольку используемые криптографические ключи необходимо где-либо хранить. Мы предлагаем сфокусировать усилия на уничтожении или скрытии ключей до того, как злоумышленник сможет получить физический доступ к ПК, предотвращая запуск ПО для дампа оперативной памяти, физически защищая микросхемы ОЗУ и по возможности снижая срок хранения данных в ОЗУ.

Перезапись памяти

Прежде всего, надо по-возможности избегать хранения ключей в ОЗУ. Необходимо перезаписывать ключевую информацию, если она больше не используется, и предотвращать копирование данных в файлы подкачки. Память должна очищаться заблаговременно средствами ОС или дополнительных библиотек. Естественно, эти меры не защитят используемые в данный момент ключи, поскольку они должны храниться в памяти, например такие ключи как, используемые для шифрованных дисков или на защищённых веб серверах.

Так же, ОЗУ должна очищаться в процессе загрузки. Некоторые ПК могут быть настроены таким образом, чтобы очищать ОЗУ при загрузке при помощи очищающего POST запроса (Power-on Self-Test) до того как загружать ОС. Если злоумышленник не сможет предотвратить выполнение данного запроса, то на данном ПК у него не будет возможности сделать дамп памяти с важной информацией. Но, у него всё ещё остаётся возможность вытащить микросхемы ОЗУ и вставить их в другой ПК с необходимыми ему настройками BIOS.

Ограничение загрузки из сети или со съёмных носителей

Многие наши атаки были реализованы с использованием загрузки по сети или со съёмного носителя. ПК должен быть настроен так, чтобы требовать пароль администратора для загрузки с этих источников. Но, необходимо отметить, что даже если система настроена на загрузку только с основного жёсткого диска, атакующий может сменить сам жёсткий диск, или во многих случаях, сбросить NVRAM компьютера для отката на первоначальные настройки BIOS.

Безопасный спящий режим

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

В большинстве систем шифрования жёстких дисков, пользователи могут защититься выключением ПК. (Система Bitlocker в базовом режиме работы TPM модуля остаётся уязвимой, поскольку диск будет подключен автоматически, когда ПК будет включён). Содержимое памяти может сохраняться в течение короткого периода после отключения, поэтому рекомендуется понаблюдать за своей рабочей станцией ещё в течение пары минут. Несмотря на свою эффективность, данная мера крайне неудобна в связи с долгой загрузкой рабочих станций.

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

Отказ от предварительных вычислений

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

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

Расширение ключей

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

На практике, представьте, что у нас есть 256-битный AES ключ K, который в данный момент не используется, но понадобится позднее. Мы не можем перезаписать его, но мы хотим сделать его стойким к попыткам восстановления. Один из способов добиться этого – это выделить большую B-битную область данных, заполнить её случайными данными R, после чего хранить в памяти результат следующего преобразования K+H(R) (суммирование двоичное, прим. ред.), где H – это хэш функция, например SHA-256.

Теперь представьте, что электричество было отключено, это приведёт к тому, что d бит в данной области будут изменены. Если хэш функция стойкая, при попытке восстановления ключа K, злоумышленник может рассчитывать только на то, что он сможет угадать какие биты области B были изменены из приблизительно половины, которые могли изменится. Если d бит были изменены, злоумышленнику придётся провести поиск области размером (B/2+d)/d чтобы найти корректные значения R и уже после этого восстановить ключ K. Если область B велика, такой поиск может быть очень долог, даже если d относительно мала.

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

Физическая защита

Некоторые из наших атак основывались на наличии физического доступа к микросхемам памяти. Такие атаки могут быть предотвращены физической защитой памяти. Например, модули памяти находиться в закрытом корпусе ПК, или залиты эпоксидным клеем, чтобы предотвратить попытки их извлечения или доступа к ним. Так же, можно реализовать затирание памяти как ответную реакцию на низкие температуры или попытки открыть корпус. Такой способ потребует установки датчиков с независимой системой питания. Многие из таких способов связаны с аппаратурой, защищённой от несанкционированного вмешательства (например, сопроцессор IBM 4758) и могут сильно повысить стоимость рабочей станции. С другой стороны, использование памяти, припаянной к материнской плате, обойдётся гораздо дешевле.

Изменение архитектуры

Можно изменить архитектуру ПК. Что невозможно для уже используемых ПК, зато позволит обезопасить новые.

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

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

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

Доверенные вычисления

Аппаратура, соответствующая концепции «доверенных вычислений», например, в виде TPM модулей уже используется в некоторых ПК. Несмотря на свою полезность в защите от некоторых атак, в своей нынешней форме такое оборудование не помогает предотвратить описанные нами атаки.

Используемые TPM модули не реализуют полное шифрование. Вместо этого, они наблюдают за процессом загрузки для принятия решения о том, безопасно ли загружать ключ в ОЗУ или нет. Если ПО необходимо использовать ключ, то можно реализовать следующую технологию: ключ, в пригодной для использования форме не будет храниться в ОЗУ, до тех пор пока процесс загрузки не пройдёт по ожидаемому сценарию. Но, как только ключ оказывается в оперативной памяти – он сразу становиться мишенью для наших атак. TPM модули могут предотвратить загрузку ключа в память, но они не предотвращают его считывание из памяти.

Выводы

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

Но и другие виды ПО также уязвимы. Системы управления цифровыми правами (DRM) часто используют симметричные ключи, хранящиеся в памяти, и их так же можно получить, используя описанные методы. Как мы показали, веб-сервера с поддержкой SSL тоже уязвимы, поскольку они хранят в памяти закрытые ключи необходимые для создания SSL сеансов. Наши способы поиска ключевой информации, скорее всего, будут эффективны для поиска паролей, номеров счетов и любой другой важной информации, хранящейся в ОЗУ.

Похоже что нет простого способа устранить найденные уязвимости. Изменение ПО скорее всего не будет эффективным; аппаратные изменения помогут, но временные и ресурсные затраты будут велики; технология «доверенных вычислений» в её сегодняшней форме так же мало эффективна, поскольку она не может защитить ключи находящиеся в памяти.

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

В итоге, возможно, придётся рассматривать DRAM память как не доверенную компоненту современного ПК, и избегать обработки важной конфиденциальной информации в ней. Но на данный момент это нецелесообразно, до тех пор, пока архитектура современных ПК не изменится, чтобы позволить ПО хранить ключи в безопасном месте.

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

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

  • Предисловие
  • Как работает 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 упрощает еще и то, что в 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 пароль, то просто поищите файл с ключом восстановления. Наверняка он будет сохранен среди документов текущего пользователя или на его флешке. Может быть, он даже напечатан на листочке, как это рекомендует сделать Microsoft.

Для быстрого обнаружения ключа восстановления удобно ограничить поиск по расширению (txt), дате создания (если знаете, когда примерно могли включить BitLocker) и размеру файла (1388 байт, если файл не редактировали). Найдя ключ восстановления, скопируйте его. С ним вы сможете в любой момент обойти стандартную авторизацию в BitLocker. Для этого достаточно нажать Esc и ввести ключ восстановления. Вы залогинитесь без проблем и даже сможете сменить пароль в 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 и «незаметно» сделаем дамп памяти. Так мы смоделируем ситуацию, в которой коллега вышел на обед и не заблокировал свой компьютер. Запускаем RAM Capture и меньше чем через минуту получаем полный дамп в файле с расширением.mem и размером, соответствующим объему оперативки, установленной на компьютере жертвы.

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

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

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

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

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

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

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

BitLocker To Go

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

В статье использованы материалы сайта: