Версии зашифрованы то взломать эту. Основы взлома шифров: Crack Me

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

Предисловие

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

Введение

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

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

То же самое происходит, когда дело касается паролей, по крайней мере, до определённого момента. Неважно, электронная почта или банковский счёт, – обычно восстановление пароля в интернете – это несложный процесс. Как правило, на сайтах есть ссылка "Forgot Your Password?" ("Забыли пароль?"), которая позволяет вам вновь получить доступ к своему аккаунту. Однако, что касается зашифрованных файлов, перспективы обычно менее радужные. Мы недавно столкнулись с такой проблемой, пытаясь получить доступ к старому зашифрованному архиву WinZip.

Прежде чем мы углубимся в исследование вопросов восстановления паролей, хотелось бы заметить, что существует много способов, чтобы защитить свои данные. Если вам нужно комплексное решение, можем предложить вам такую программу, как TrueCrypt (смотрите статью "Защитите свои данные! Анализ производительности программы TrueCrypt 7.0a" ), которая даже более привлекательна сейчас, поскольку поддерживает AES-NI. И всё же, шифрование архивов остаётся наиболее распространённым способом защиты данных. Являетесь ли вы сотрудником отдела по работе с персоналом, еженедельно рассылающим платёжные ведомости, или голливудской актрисой, пытающейся обеспечить сохранность и защиту своих личных фотографий на iPhone, шифрование архива для вас – это быстрый и лёгкий способ защиты.

Тем не менее, существуют разногласия в том, насколько хорошо защищены ваши данные. Если вы чрезмерно озабочены вопросом безопасности своей информации, то вам, скорее всего, понравится наиболее сильная из всех возможных программ шифрования. Вероятно, вы предположите, что, чем мощнее ПО для шифрования, тем сложнее взломать файл, зашифрованный этой программой, и что шифрование AES-256 лучше, чем AES-128. Но это не совсем так. Считайте шифрование своего рода большим сейфом. Чем толще стенки, тем сложнее в него проникнуть. Однако защита сейфа хороша настолько, насколько хорош замок, защищающий его. Точно так же действует пароль. Это ключ к хранилищу. Чем длиннее ваш пароль, тем более сложен ваш замок и тем сохраннее ваши данные.

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

Тестовая конфигурация

Тестовое аппаратное обеспечение
Процессор Intel Core i5-2500K (Sandy Bridge), 3,3 ГГц, LGA 1155, 6 Мбайт общего кэша L3
Материнская плата Asus P8P67 Deluxe
Память Kingston Hyper-X 8 Гбайт (2 x 4 Гбайт) DDR3-1333 @ DDR3 1333, 1,5 В
Жёсткий диск Samsung 470 256 Гбайт
Видеокарта Palit GeForce GTX 460 1 Гбайт
Asus GeForce GTX 570 1,28 Гбайт
AMD Radeon HD 5870 1 Гбайт
Блок питания Seasonic 760 Ватт, 80 PLUS
Системное ПО и драйверы
Операционная система Windows 7 Ultimate 64-битная ОС
DirectX DirectX 11
Драйверы Nvidia 270.51
Catalyst 11.4
Программное обеспечение
Версия: 6.2
Версия: 4.53
Accent Zip Password Recovery Версия: 2.01
Accent RAR Password Recovery Версия: 2.01
Parallel Password Recovery Версия: 1.6.0
WinZip Версия: 15.5 Pro
Шифрование: Zip 2.0 (по умолчанию), AES-128, AES-256
Сжатие: без сжатия, Zipx/PPMd (по умолчанию), Zip/deflate
WinRAR Версия: x64 4.00
Шифрование: AES-128
Сжатие: стандартное, хранение

Важно отметить, что программа WinZip предлагает три разных варианта шифрования: Zip 2.0, AES-128 и AES-256, а также несколько схем сжатия. WinRAR в этом плане намного проще: он предлагает только шифрование AES-128 и различные уровни этой же схемы сжатия. Мы протестировали разные варианты, чтобы показать вам, как они влияют на скорость взлома пароля.

Шифрование архивов: WinZip и WinRAR

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

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

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

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

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

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

Вам не стoит слишком сильно переживать, если ваш пароль сложный и вы используете хорошую схему шифрования (AES-128 или AES-256). В то же время, если вы не хотите, чтобы посторонние узнали о том, что вы зашифровали при помощи WinZip, лучше используйте неописательные имена файлов вместо таких, как "2011 1040 Декларация о доходах". Конечно же, сильная защита отсечёт оба способа. Если вы сделаете имена файлов неприметными, то не узнаете, что находится в зашифрованном файле, пока он не будет полностью расшифрован. Обычно, если сделать доступ менее удобным, это будет означать, что и для вас он тоже станет менее удобным.

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

Изучаем длину паролей

Восстановление пароля может быть довольно сложным процессом. Шифрование можно сравнить с головоломкой "Судоку". Чем больше и запутаннее головоломка, тем сложнее обойти схему шифрования. Хотя есть два способа, чтобы попытаться это сделать.

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

Намного более примитивный подход к обходу шифрования – просто "гадать и проверять". Этот способ известен как метод подбора. Представьте, что вы приводите каждую единичную комбинацию чисел, которую можно использовать для решения вышеупомянутой головоломки "Судоку", начиная с использования единиц во всех направлениях и заканчивая всеми девятками. Существуют способы, которые позволяют скрыть "проверку", чтобы атака стала более сложной. Но такие простые программы, как WinZip и WinRAR, не имеют такого преимущества. Если вы настойчивы, то можете продолжать угадывать пароли, пока рак на горe не свистнет. Нет предела количеству вариантов, которые вы можете предложить к проверке. Таким образом, настоящая проблема в вопросе восстановления пароля заключается в скорости, с которой вы сможете отгадать правильный вариант.

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

Доступные символы с применением английского алфавита Возможных паролей из двух символов Возможных паролей из четырёх символов Возможных паролей из шести символов
Строчные буквы 676 456 976 308 915 776
Строчные и прописные буквы 2 704 7 311 616 19 770 609 664
Строчные, прописные буквы и цифры 3 844 14 776 336 56 800 235 584
Все символы ASCII 8 836 78 074 896 689 869 781 056

Атаки методом подбора рассчитаны на вероятность. Чем длиннее пароль, тем больше будет паролей на проверку. Здесь полагаются на идею перестановки, то есть расстановки объектов в определённом порядке. Представьте, что пароли – это анаграммы. Если мы дадим вам буквы a, b и c, сколько различных упорядоченных расстановок вы сможете сделать? Всего с тремя буквами вы сможете провести шесть перестановок набора {a,b,c}, а именно: , , , , и .

Вычислить количество возможных паролей просто. Повторения допускаются, поэтому формула будет такой: n(длина пароля), где n – это число возможных символов. Как видите, при шести символах мы уже имеем дело с миллиардами вариантов, если в пароль включены строчные и прописные буквы. Если вы также использовали особые символы и числа (все символы ASCII (American Standard Code for Information Interchange – Американский стандартный код для обмена информацией)), то обнаружите, что число паролей-"кандидатов" резко возрастёт до? триллиона (10 в 12-й степени). И не забывайте, что, если вы не знаете длины своего пароля, то должны будете испробовать все возможные комбинации, начиная с пароля в один символ, пока не доберётесь до выбранного вами пароля.

Понимаете, к чему мы клоним?

Взлом паролей: вычисления на базе CPU

Существует бесчисленное множество программ, из которых можно выбрать ту, которая поможет вам восстанавливать пароли, но две наиболее популярные называются так: Advanced Archive Password Recovery и Visual Zip Password Recovery Processor. Когда мы потеряли пароль к какому-то из WinZip-файлов, то смогли увидеть в деле первую программу, которая восстановила пароль длиной в семь символов за 20 минут. Но это дало нам пищу для размышлений и разожгло наше любопытство. С какой скоростью наш компьютер искал пароли? Что бы произошло, если бы мы использовали более сильный метод шифрования, такой как AES-128?

Ещё важнее следующий вопрос: неужели для открытия всех наших защищённых паролями архивов требуется всего лишь 20 минут, а потом к ним получит доступ кто-то, кто не должен его получить?



Скорость прямого подбора паролей, паролей в секунду Advanced Archive Password Recovery Visual Zip Password Recovery Processor
Сжатие: нет
Шифрование: Zip 2.0
28 357 311 20 943 157
Сжатие: нет
Шифрование: AES-128
9 715 неудача
Сжатие: нет
Шифрование: AES-256
9 713 неудача
Сжатие: Zip
Шифрование: Zip 2.0
28 492 733 20 888 938
Сжатие: Zip
Шифрование: AES-128
9 733 неудача
Сжатие: Zip
Шифрование: AES-256
9 760 неудача
Сжатие: RAR-хранилище
Шифрование: AES-128
213 -
Сжатие: RAR-хранилище
202 -
Сжатие: RAR стандартное
Шифрование: AES-128
213 -
Сжатие: RAR стандартное
Шифрование: AES-128, названия файлов
202 -

Как видите, сжатие лишь в малой степени влияет на скорость, с которой вы можете попытаться подбирать пароли, но самый большой недостаток заключается в старой схеме шифрования Zip 2.0. В результате пароль из пяти символов может быть найден всего лишь за несколько секунд, потому что вы можете обрабатывать данные со скоростью около 28 миллионов паролей в секунду, используя процессор Core i5-2500K. Visual Zip также обнаружил правильный пароль при помощи метода шифрования Zip 2.0, но, вследствие проблем программного обеспечения, эта утилита не смогла восстановить пароль файла, зашифрованного с помощью AES-128.

Несомненно, это ещё не вся история. Нас не интересует производительность CPU только ради того, чтобы можно было похвалиться, что может сделать новый центральный процессор (хотя это могло бы, в сущности, привести нас к проведению интересного эталонного теста). И потому мы беспокоимся о производительности ЦП из-за того, что она воздействует на скорость, с которой мы можем найти пароль.

Общее время подбора, если он идёт со скоростью 28 миллионов паролей/сек. Пароли от 1 до 4 символов Пароли от 1 до 6 символов Пароли от 1 до 8 символов Пароли от 1 до 12 символов
Строчные буквы Мгновенно 11 секунд 2 часа 112 лет
Строчные и прописные буквы Мгновенно 12 минут 22 дня 451 345 лет
Все символы ASCII 3 секунды 7 часов 8 лет 701 193 345 лет

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

К счастью, программа Advanced Archive Password Recovery позволяет приостановить процесс и сохранить позицию, на которой прервался поиск. А если в вашем распоряжении несколько домашних компьютеров, то вы сможете значительно снизить время поиска, распределив объём работ между ними. Вам ещё не страшно?

Взлом паролей: технология GPGPU


Взлом пароля: центральный процессор i5-2500K.

Цель атаки методом подбора – быстро перебрать максимальное количество паролей. Но современные CPU недостаточно хорошо оптимизированы для этого. В то время, как наша рабочая станция на архитектуре Sandy Bridge может обрабатывать около 28 миллионов паролей в секунду, она всё же не использует все доступные такты ЦП. Вспомните, мы ведь только угадываем и проверяем. Вышеприведённый снимок экрана с данными по использованию центрального процессора иллюстрирует это: тогда как тактовая частота, конечно же, помогает в данном процессе, программа способна воспользоваться преимуществом параллелизма, поэтому наличие бoльшего количества ядер поможет ускорить процесс поиска пароля.

Как мы знаем, когда дело доходит до параллельно запущенных задач, с чем иногда очень неплохо справляются центральные процессоры, то арифметико-логические устройства на видеокарте могли бы в большинстве случаев работать и лучше. У компаний AMD и Nvidia работают целые группы, занимающиеся транскодированием видео, участники которых были уверены в этом, до тех пор пока Intel не доказала, что несколько специализированных логических схем в её архитектуре Sandy Bridge могут намного превзойти тяжеловесный графический процессор. Но теперь выходит, что у нас появилось ещё одно приложение, прекрасно подходящее для работы на современных GPU.

Было время, когда взлом паролей при помощи технологии GPGPU (General-purpose graphics processing units – вычисления общего назначения на GPU) не выходил за пределы научного мира: студенты-выпускники прилагали большие усилия для работы со специальными программами, которые так и не находили коммерческого применения. Но теперь всё изменилось. В настоящее время существуют две GPGPU-утилиты, которые может купить любой, у кого есть кредитная карта: Parallel Password Recovery и Accent Password Recovery.

Parallel Password Recovery – это программа, оптимизированная исключительно под архитектуру с параллельными вычислениями Nvidia CUDA. Мы не говорим о том, что ядра CUDA лучше, чем разработка AMD Stream. Однако следует отдать должное Nvidia. Её "вторжение" в область вычислений общего плана при помощи графического процессора началось уже довольно давно и компания предоставила разработчикам доступ к многочисленным библиотекам низкого уровня, необходимым для изучения данной технологии. AMD предприняла ответные действия намного позднее. В действительности, мы всё ещё сталкиваемся с некоторыми проблемами при применении ускорения Stream, включённого в популярные приложения для перекодировки. Это частично объясняет, почему ещё одно решение, Accent Password Recovery, всё же склоняется в сторону применения разработок Nvidia. Хотя эта утилита распознаёт CUDA и Stream, только аппаратное обеспечение от Nvidia оптимизировано для того, чтобы можно было проникнуть в файл с шифрованием Zip 2.0.

Взлом с видеокартой GeForce GTX 460
Parallel Password Recovery Accent Password Recovery
Сжатие: Zip
Шифрование: Zip 2.0
24 111 280 516 096 000
Сжатие: Zip
Шифрование: AES-128
185 072 166 800
Сжатие: Zip
Шифрование: AES-256
185 177 156 138
Сжатие: RAR стандартное
Шифрование: AES-128
3 493 4 231

И, кстати, что за скорости у шифрования Zip 2.0! С видеокартой GeForce GTX 460 мы уже можем подбирать пароли со скоростью около 500 миллионов комбинаций в секунду. Чтобы вы лучше себе представляли, что это значит скажем, что мы можем подобрать любую из возможных комбинаций символов ASCII для пароля длиной от одного до 7 символов меньше, чем за 48 часов. Что касается пароля из восьми символов, то здесь речь пойдёт уже о 168 днях.

Видеокарта GeForce GTX 460
Прямой подбор паролей, все символы ASCII, общее время подбора
Если подбор идёт со скоростью 180.000 паролей в секунду... 50 дней, 20 часов 1 284 года, 79 дней
Если подбор идёт со скоростью 24 миллиона паролей в секунду... 9 часов, 9 минут 9 лет, 230 дней
Если подбор идёт со скоростью 500 миллионов паролей в секунду... 26 минут, 21 секунда 168 дней, 17 часов

Несомненно, Zip 2.0 весьма устаревший алгоритм шифрования. Программа WinZip поддерживает его только из соображений совместимости. Стандарт AES – вот новый "фаворит", к которому все стремятся. Эту схему намного сложнее использовать в параллельных задачах, хотя разработчики ПО, конечно же, предпринимают такие попытки.

Производительность особенно сильно страдает, когда мы начинаем пытаться восстановить пароль, зашифрованный с применением кода AES. Курсор мыши в нашей тестовой системе буквально начал "спотыкаться". Атаки методом подбора на файлы с AES-шифрованием проводятся довольно медленно. Для того, чтобы испробовать все возможные комбинации из символов ASCII для пароля длиной от 1 до 7 символов, понадобится больше 13 лет.

2 х GeForce GTX 570 SLI
Прямой подбор паролей, паролей в секунду Parallel Password Recovery Accent Password Recovery
Сжатие: Zip
Шифрование: Zip 2.0
45 412 290 1 492 279 088
Сжатие: Zip
Шифрование: AES-128
495 133 513 936
Сжатие: Zip
Шифрование: AES-256
496 244 513 880
Сжатие: RAR стандартное
Шифрование: AES-128
13 904 14 605

Вычисления общего плана при помощи GPU связаны с явлением параллелизма и потому, если у кого-то из вас на видеокарте 480 ядер CUDA работают хорошо, то, если объединить ядра с двух карт, получим значение 960, которое, должно быть, намного лучше, не так ли?

Когда мы объединяем вместе две видеокарты GeForce GTX 570 и включаем SLI, шифрование Zip 2.0 перестаёт казаться надёжным. Благодаря оптимизированному коду, мы можем проверять 1,5 миллиарда паролей в секунду. Это кажется даже немного абсурдным. Теперь мы сократили время поиска для паролей длиной от одного до восьми символов с применением всех символов ASCII почти до двух месяцев.

Между тем, защита AES всё же выглядит весьма привлекательной. Если пароль состоит из более чем семи символов, то придётся потратить почти пять лет, подставляя комбинации со скоростью 500 000 паролей в секунду.

Nvidia против AMD: эффективность атаки методом подбора

Этот маленький пример связан с масштабированием. Вы хотите иметь много ядер и хотите, чтобы они быстро работали? Даже несмотря на то, что это в некоторой степени повлияет на наши результаты, давайте на минуту отложим вопросы архитектуры. Тогда как две видеокарты GeForce GTX 570 имеют только 2,8x от числа ядер CUDA в одной GTX 460, мы получили производительность в три раза выше, поскольку все ядра производительных видеокарт также работают на 8% быстрее.

Что касается GeForce GTX 590, то мы получили схожие результаты на конфигурации SLI. На видеокарте 590 больше ядер, но они работают чуть медленнее. Если вам нужна первоклассная видеокарта, то успехи Nvidia намного заметнее, поскольку возглавляет список лучших её модель с 1 024 ядрами CUDA. В то же время, если вы согласны смириться с высоким нагревом и большой прибавкой к стоимости, две GeForce GTX 590 с конфигурацией SLI должны превзойти производительность двух GTX 570 в два раза.

Для сравнения: есть 3072 процессора Stream, работающие при 830 МГц на лучшей видеокарте от AMD - Radeon HD 6990. Не забудьте, что ядро от AMD не похоже на ядро от Nvidia, так что мы не можем сравнить их и провести соответствие между ними, как 1:1.

У нас было время, чтобы поработать с парочкой Radeon HD 5850 в CrossFire, но результаты, тем не менее, оказались впечатляющими. С 2880 процессорами Stream мы подбирали около 1,1 миллиона паролей в секунду, пытаясь взломать зашифрованный с помощью AES-128 WinZip-файл. Две видеокарты Radeon HD 6990 – это, вероятно, лучший выбор, если вы хотите использовать свой компьютер на полную мощность при восстановлении пароля AES. Но даже при наиболее оптимистичном варианте вы сможете работать со скоростями чуть выше 3 миллионов паролей в секунду. Этого всё ещё недостаточно, чтобы взломать пароль, состоящий из восьми символов, менее чем за год.

Видеокарта Ядра с поддержкой технологий CUDA/Stream Производительность ядра при обработке шейдеров
GeForce GTX 460 1 Гбайт 336 1 350 МГц
GeForce GTX 570 480 1 464 МГц
GeForce GTX 590 1 024 1 214 МГц
Radeon HD 5850 1 440 725 МГц
Radeon HD 5970 1 600 725 МГц
Radeon HD 6990 3 072 830 МГц

Пара GeForce GTX 570 в конфигурации SLI – это подходящий набор, который можно увидеть в игровом компьютере. В то время, как вы, вероятно, не ожидаете, что на восстановление старых паролей длиной больше семи символов понадобится продолжительное время, вспомните, что мы всё же говорим о самом неблагоприятном сценарии. Это как если бы мы искали пароль в пределах от 00 до 99, и правильный ответа оказался равным 99. Обычно до такого не доходит и пароль находится где-то в средних значениях в ходе поиска.

Программы восстановления паролей, такие как вышеперечисленные, не проводят полный последовательный поиск, поскольку это не слишком хорошая стратегия для восстановления пароля. На самом деле, успешное восстановление произойдёт, вероятнее всего, где-то в середине поиска. Однако, предоставляя временные рамки, с которыми мы столкнулись, мы не изменили заключения, к которому пришли. По нашему мнению, шифрование Zip 2.0 является абсолютно не надёжным. Несмотря на то, что потребуется продолжительное время, чтобы найти пароль из 9 или 10 символов, определённо, с этим вполне могут справиться несколько приятелей-игроков.

2 x GeForce GTX 570 SLI
Прямой подбор паролей, общее время подбора Длина пароля от 1 до 6 символов Длина пароля от 1 до 8 символов
500 000 паролей в секунду 18 дней, 7 часов 462 года, 116 дней
45 миллионов паролей в секунду 4 часа, 52 минуты 5 лет, 49 дней
1,5 миллиарда паролей в секунду 8 минут 56 дней, 5 часов

Вопросы защиты: WinZip и WinRAR

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

Тогда как обе программы – WinZip и WinRAR – используют трансформации SHA-1, чтобы вывести ключи, механизмы у каждой программы немного отличаются друг от друга. WinZip основывается на PBKDF2 (Password-Based Key Derivation Function 2.0 – Функции вывода ключа на основе пароля) и использует выводы трансформации 2002 SHA-1, чтобы сгенерировать ключ. Тем не менее, это значение постоянно для паролей любой длины (до 64 символов), и именно поэтому пароль из 10 символов с шифрованием AES-256 также просто взломать, как и с AES-128.

Для сравнения: программа WinRAR использует свою собственную схему вывода ключей, которая требует (длина пароля * 2 + 11)*4096 трансформаций SHA-1. Вот почему требуется больше времени, чтобы взломать зашифрованные WinRAR-архивы методом подбора.

2 x GeForce GTX 570 SLI
Прямой подбор паролей, паролей в секунду Parallel Password Recovery Accent Password Recovery
Сжатие: Zip
Шифрование: AES-128
495 133 513 936
Сжатие: Zip
Шифрование: AES-256
496 244 513 880
Сжатие: RAR стандартное
Шифрование: AES-128
13 904 14 605

На практике чаще бывает, что вы, вероятнее всего, забудете свой собственный пароль, нежели ваш зашифрованный файл попадёт в руки кому-то, у кого слишком много свободного времени и достаточно мощное аппаратное обеспечение, чтобы взломать ваш файл. Даже если бы у такого злоумышленника было самое лучшее аппаратное обеспечение из всех доступных вариантов, максимальное время для нахождения пароля из девяти символов для зашифрованного в AES-128 файла WinZip уже превышает 1 000 лет. Тем не менее, ваши перспективы по восстановлению пароля довольно приличные, если вы хотя бы в общих чертах представляете, каким может быть ваш пароль.

Например, если вы помните следующие сведения о своём пароле из 10 символов ASCII:

  • Он начинается с "e";
  • Заканчивается на "a";
  • Не содержит прописных букв;
  • В нём присутствует один знак "!";
  • Не содержит ни одной из следующих букв: B, C, D, Q, T, U, V, W, X, Y, Z.

Tо вам придётся провести поиск только среди 1 триллиона возможных паролей вместо 205 триллионов. Это вполне осуществимая задача с парой видеокарт GeForce GTX 570. Если же вы использовали архив WinRAR, то у вас почти нет надежд восстановить пароль, если только он не короткий.

Заключение

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

В прошлом не было способа, при помощи которого вы бы смогли выяснить пароль длиной в 10 символов ASCII в течение любого приемлемого периода времени. Это было возможно только с аппаратным обеспечением, сделанным на заказ. Именно так и поступил Фонд электронных рубежей (Electronic Frontier Foundation), инвестировав в 1998 г. деньги в свою специализированную машину Deep Crack ("Глубокий взлом"). За конечную стоимость около $250 000 группа экспертов по безопасности собрала машину, которая могла просматривать около 90 миллиардов паролей в секунду, благодаря более чем 1 800 чипов AWT-4500, работающих в тандеме.

Мы не можем добиться такого же уровня производительности на нашей рабочей станции, но две видеокарты GeForce GTX 570 в конфигурации SLI работают со скоростью около 1,5 миллиардов паролей в секунду, если мы имеем дело с шифрованием Zip 2.0. Это составляет 1/60 от производительности при менее чем 1/100 стоимости той знаменитой машины. Очевидно, мы сравниваем абсолютно несравнимые вещи. Кроме того, шифрование Zip 2.0 устарело. Ясно одно: тяжеловесные архитектуры графических процессоров с параллельными вычислениями продолжат придерживаться увеличения "плотности производительности" при ценах, становящихся всё более доступными массовому потребителю, так что в какой-то момент мы сможем позволить себе поиск со скоростью 90 миллиардов паролей в секунду на своём настольном компьютере.

Итак, что же мы узнали? Прежде всего, будем держаться подальше от шифрования Zip 2.0. Это устаревшая схема шифрования, поддерживаемая по традиции и даже сама программа WinZip предлагает вам использовать AES, чтобы предотвратить атаки методом подбора.

Целенаправленные попытки взлома – это уже другая история. Большинство людей используют пароли, которые включают в себя слова и потому такие пароли подвержены атакам методом подбора пароля по словарю, независимо от того, какую схему шифрования вы используете. Количество слов в английском языке – менее 1 миллиона. Однако, видеокарта GeForce GTX 460 может обработать, по меньшей мере, 150 000 паролей в секунду при шифровании AES. Даже если вы добавите несколько изменений, то понадобится всего лишь день, чтобы взломать словесный замок и подобрать пароль. Почему? Да потому, что целое слово в функциональном плане является тем же самым, что и одна буква, например "a".

В идеале вам следует избегать таких ситуаций, если вы стараетесь надёжнее защитить свои файлы:

  • Не используйте слова из словаря. В "Оксфордском словаре английского языка" (The Oxford English dictionary) содержится меньше 300 000 статей, если посчитать слова, находящиеся в употреблении в настоящее время, устаревшие и производные слова. Для GeForce GTX 460 найти такой словесный пароль не составит никакого труда;
  • Старайтесь не использовать слова, после которых стоят цифры. Добавив 1 в конце пароля, вы не сделаете его более защищённым. Мы всё ещё сможем взломать ваш пароль, перебрав весь словарь английского языка и все комбинации чисел, за полдня, использовав пару видеокарт GeForce GTX 570;
  • Избегайте двойных слов и простой замены букв. Вариант "PasswordPassword" только удваивает количество слов, которые нам придётся просмотреть. Также пароль вида p@55w0rd не является надёжным. Взломщики паролей знают все обычные комбинации. Так что не выбирайте такой способ;
  • Не используйте общий последовательный ряд на вашей клавиатуре. Добавить "qwerty" к словарю проверяемых паролей не так уж и сложно. Это второй способ, которого не следует придерживаться;
  • Не используйте обычный числовой ряд. Возможно, 314159 довольно легко запомнить. Всё-таки, это число "ПИ", но также это ещё и значение, которое довольно легко проверить;
  • Избегайте использования любого рода личной информации, такой как номерной знак вашей автомашины, номер карточки социального страхования, бывший телефонный номер, дату рождения и так далее. Мы живём в мире, где много информации находится в общем доступе. Если у вас есть профиль в социальных сетях Facebook или Twitter, количество доступной третьим лица информации возрастает ещё больше.

Схема шифрования файла хороша настолько, насколько хорош пароль, защищающий этот файл. Это слабое место в симметричном пароле, где ключ шифрования такой же, как и ключ для дешифрования. Если вы упрямо продолжаете чрезмерно беспокоиться за сохранность ваших данных, то, скорее всего, вам подойдёт уровень безопасности системы PGP (Pretty Good Privacy) или сертифицированного шифрования. Для ежедневного применения этот вариант неудобен, если только вы и ваша компания не собираетесь перейти на архиватор PKZIP. Тогда длина пароля должна будет стать вашей основной проблемой.

Если вы используете полный набор символов ASCII, тогда надёжность вашего пароля составит 94 (длина пароля), поскольку каждый дополнительный символ делает пароль в 94 раза защищённее. Добавив несколько специальных символов, вы сделаете взлом своего пароля "невыполнимым из-за громадного объёма вычислений" для хакеров, которые попытаются атаковать ваш файл методом подбора. Если 7 298 831 534 994 528 возможных комбинаций (в пароле длиной от одного до девяти символов) – цифра, недостаточная для того, чтобы вас успокоить, используйте пароль из 10 символов, и тогда у хакеров будет возможность попытаться выбрать из 699 823 827 359 474 784 комбинаций.

Основываясь на проведённых нами тестах, вы, вероятно, сможете искать необходимую комбинацию со скоростью чуть больше 3 миллионов паролей в секунду для файла с шифрованием AES, используя пару видеокарт Radeon HD 6990. Это означает, что потребуется 7 397 лет, чтобы провести поиск паролей длиной от одного до 10 символов, используя ускорение AMD Stream. Даже если вы сможете удвоить эту скорость, это вам не сильно поможет. Для того, чтобы взломать файл примерно за год, вы должны будете значительно увеличить свои усилия – до 7 397 машин, работающих круглосуточно.

В будущем, вероятно, среднестатистическому пользователю будет предоставлена возможность получить доступ к такому классу компьютерных мощностей с параллельными вычислениями. Следующим шагом станут распределённые вычисления. Программа Parallel Password Recovery уже работает над способом применения ускоренной при помощи GPU обработки данных для многочисленных клиентов.

В данный момент это не та проблема, из-за которой вы не будете спать по ночам. Как гласит старая пословица, "было бы желание, а возможность найдётся". С тех самых пор, как появились замки, появились и отмычки. Если вы хотите, чтобы ваша информация оставалась надёжно защищённой, то вам необходимо понять, насколько просто (или сложно) подобрать отмычку к вашему замку. Вот что делают утилиты восстановления паролей. Удивительно то, что разработчики WinZip согласны с нами в этом вопросе. Том Воэн (Tom Vaughan), вице-президент компании "WinZip", заявил следующее: "Я вижу создателей утилит по восстановлению паролей как хороших парней, а не злодеев. Только ПО, о котором вы ничего не знаете, должно вас испугать (программное обеспечение, разработанное "плохими парнями", которое работает быстрее или взламывает защиту лучше, чем вы могли бы ожидать)".

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

  • Быть длиной, по меньшей мере, в 9 символов;
  • Содержать хотя бы одну прописную букву;
  • Содержать хотя бы одну строчную букву;
  • Содержать хотя бы один специальный символ, такой как "@" или "!";
  • Содержать хотя бы одну цифру.

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

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

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

Для взлома 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 должен быть, по крайней мере, длиной девять символов.

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