Брут на GPU. Запрягаем видеокарту перебирать пароли

Брут на GPU. Запрягаем видеокарту перебирать пароли

DeepWeb

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

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


EDPR

Наверняка ты уже сталкивался с продуктами компании Elcomsoft. Помню, еще в начале нулевых я тестировал их первые «отмычки» для документов формата Microsoft Office, разных архивов и все думал, когда они выпустят универсальную программу. Ее появление не заставило долго ждать. Поначалу Elcomsoft Distributed Password Recovery (EDPR) просто вобрала в себя прежние наработки, но уже с 2008 года получила самостоятельное развитие. Тогда в нее добавили поддержку GPGPU и постепенно интегрировали все новые плагины, оптимизированные для использования видеокарт в брутфорсе. Последняя (на момент обзора) версия 3.23.1059 содержит 36 плагинов, знает около семидесяти форматов зашифрованных файлов и работает практически в любой версии Windows

36 плагинов для взлома файлов большинства форматов

Запустить EDPR можно как в десктопных версиях Windows (от 32-битной XP до 64-разрядной «десятки»), так и в серверных. Однако для ее самой востребованной функции — аппаратного ускорения перебора паролей на видеокартах Nvidia — требуется Windows 7, 8, 8.1 или 10 либо Windows Server 2003, 2008 или 2012.

Теоретически EDPR может использовать для перебора паролей не только ГП от Nvidia, но и другие графические чипы с универсальной шейдерной архитектурой, выпущенные за последние семь лет. Это игровые видеокарты Nvidia, начиная с GeForce GTX 4xx и новее, AMD Radeon серий HD 5000 — HD 8000, более современные AMD R9 и RX. Поддерживаются также профессиональные видеокарты (все серии Nvidia Quadro и AMD FirePro) и специализированные решения обоих производителей. Последние, кстати, обеспечивают большую скорость перебора в расчете на каждый затраченный ватт энергии. Особенно энергоэффективны для своего техпроцесса оказываются Nvidia GeForce GTX Titan, Tesla K10 и выше, а также AMD Radeon Pro Duo, R9 Nano и R9 Fury X.

Однако для многих алгоритмов восстановления паролей используется не OpenCL, а CUDA-оптимизация. Поэтому ускоренная обработка некоторых форматов в EDPR возможна только с использованием ГП Nvidia. К таким форматам относятся архивы ZIP и RAR, документы PDF, хранилища паролей в macOS, пароли учетных записей в Windows, хеши MD5 и некоторые другие.

 


ЦП и ГП

Вне зависимости от формата зашифрованных файлов, видеокарты всегда используются как ускорители для легко распараллеливаемых операций, в то время как основной код программы исполняется на ЦП. Поэтому всегда требуется выделять одно ядро процессора на каждую задействованную видеокарту. Лучше, если это ядро будет физическим (а не выделенным через гиперпоточность). Процессорозависимость здесь тоже наблюдается, но умеренная. Очевидно, что современные ГП в полной мере не раскрываются даже топовыми ЦП, поскольку развитие последних идет преимущественно по пути увеличения исполнительных блоков (ядер), а не частот и объема кеша на ядро. Однако за пределами 3,5 ГГц и кеша L2 в 2 Мбайт у ЦП разница в производительности одной и той же видеокарты составляет считаные проценты при непропорционально больших затратах энергии. Поэтому, на мой взгляд, разумнее соблюдать баланс между стоимостью и общей производительностью системы, чем просто гнаться за максимальным быстродействием любой ценой.

 

Железо

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

На тесты мы изначально хотели взять как раз GTX 1070 сразу по нескольким причинам.

Во-первых, это очень сбалансированное решение — близкая к флагманской модель со всеми технологическими прелестями топового сегмента. Никаких урезанных регистров, полноценный кеш и шина памяти шириной 256 бит. При этом у GTX 1070 очень умеренный аппетит (тепловой пакет видеокарты составляет всего 150 Вт) и относительно скромные габариты. Из-за небольших размеров ее можно без проблем разместить в большинстве среднеформатных корпусов.

Наш тестовый стенд

Видеокарта спокойно работает с простыми блоками питания мощностью от 400 Вт, но при длительной эксплуатации на 100%-й загрузке рекомендуется выбрать б/п от 500 Вт и с сертификацией 80 Plus любого уровня. Относительно низкая потребляемая мощность GTX 1070 избавляет от необходимости искать более дорогие блоки, которые сейчас тоже найти непросто. Алчные майнеры скупили всё!

Нам досталась видеокарта iChill GeForce GTX 1070 X4 с эталонной версией GeForce GTX 1070 Founders Edition — GPU GP104, 16-нм техпроцесс FinFET и 1920 потоковых процессоров (CUDA-ядер), объединенных в три кластера. Их базовая частота увеличена до 1620 (с референсных 1506 МГц) и автоматически увеличивается до тех пор, пока видеокарта укладывается в температурные ограничения. Забегая вперед, скажу, что в наших тестах ГП автоматически разгонялся до 2012 МГц (при референсном пределе режима boost 1822 МГц) и видеокарта работала исключительно стабильно даже при длительной 100%-й нагрузке.

Помимо характеристик ГП, заметное влияние на скорость перебора паролей оказывает и видеопамять. Здесь у iChill тоже все в порядке — 8 Гбайт памяти GDDR5 производства Micron с частотой 2 ГГц.

С эпизодическими пиковыми нагрузками в играх справляются даже самые дешевые видеокарты, а вот перебор паролей связан с длительной работой всех потоковых процессоров. Поэтому мы искали видеокарту с продвинутым охлаждением, но обязательно воздушным. Водяное требует отдельных заморочек, да и обходится в целом недешево. Система охлаждения iChill GeForce GTX 1070 X4 поначалу казалась мне похожей на ветряную мельницу (шутка ли — четыре вентилятора!), однако все они оказались малошумными.

Равномерный и тихий продув

Фраза про четыре вентилятора у самой iChill X4 сначала сбила меня с толку. На фотографиях их явно было видно три, но почему тогда в названии фигурирует X4? Все оказалось просто: инженеры Inno3D решили поставить дополнительный вентилятор перпендикулярно трем основным. Он меньшего диаметра (50 мм вместо 92 мм) и охлаждает в основном силовые цепи VRM — самого ответственного узла современных видеокарт.

Без дополнительного охлаждения элементы силовых цепей новых видеокарт могут нагреваться до 120 °С и даже выше, поэтому отдельный вентилятор оказался вовсе не лишним. Помнишь, как горели первые GTX 1070 и 1080 от EVGA? Учиться лучше на чужих ошибках.

Индикация температуры видеокарты

Следить за температурой видеокарты помогает фирменный индикатор с подсветкой на RGB-светодиодах. По мере нагрева он меняет цвет с синего на зеленый, а затем на желтый и красный.

Видеокарта под 100%-й нагрузкой

Приятным сюрпризом оказались габариты. Я уже привык, что каждая следующая видюха у меня крупнее предыдущей, но здесь все получилось наоборот. При сравнимой длине (305 мм у старой и 302 мм у новой) прошлая видеокарта занимала три слота из-за массивного радиатора. Тогда мне это казалось оправданным — больше металла, выше теплоемкость. Как еще отводить 200 Вт тепла?

Однако вентиляторы прежней видеокарты с трудом продували крупный радиатор на малых оборотах, а на высоких начинали заметно шуметь. У системы охлаждения iChill X4 другой концепт. Она занимает два слота (два с половиной, если считать рамку и фирменную подсветку), и при TDP 150 Вт этого вполне достаточно. Благодаря адекватным размерам алюминиевый радиатор остается довольно эффективным даже на малых оборотах — сказывается равномерный продув и применение тепловых трубок: двух по 8 мм и трех по 6 мм.

Если раньше в компактных версиях корпусов ATX MidiTower с трудом удавалось поместить даже одну трехслотовую видеокарту старой архитектуры Fermi, то теперь в них легко устанавливаются две с архитектурой Pascal — более шустрые и энергоэффективные. Правда, в таком случае все равно требуется дополнительное охлаждение — как минимум еще один корпусный вентилятор на фронтальной панели.

По умолчанию видеокарта настроена на максимальную производительность. Вот только программа EDPR дает совершенно нетипичную нагрузку, поэтому без твиков TDP периодически вылезало за 140% и система охлаждения работала на пределе. Стоило запустить фирменную утилиту Inno3D TuneIT и задать разумные ограничения, как все мгновенно встало на свои места. Вентиляторы раскручивались на 1300 об/мин, и TDP снова пришло в норму.

Безопасные настройки для длительного перебора

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

 

Универсальная открывашка

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

  • по словарю;
  • по маске;
  • полный брутфорс.

Отдельно для атаки по словарю можно задать мутации: использование цифр, знаков пунктуации, смену регистра и так далее. Поэтому EDPR способен определить не только словарный вариант пароля, вроде password, но и разные его модификации, вроде password123 или PaSSw0rd.

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

Набор предустановленных словарей в EDPR

Дополнительно для алгоритмов шифрования с известной слабиной вместо перебора паролей в EDPR появляется опция подбора непосредственно ключа. Это в разы быстрее.

С атакой по маске все просто — если тебе известны какие-то символы пароля, например ты подсмотрел, что он начинается с a, то просто вписываешь a вместо первого символа маски (знака вопроса). Знаешь другие символы? Отлично! Заполняй их тоже.

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

На вкладке «Комментарий» можно посмотреть все данные о зашифрованном файле. Например, для тестового архива RAR старого формата указывается версия (RAR 3-4), алгоритм шифрования (AES) длина ключа (128 бит) и версия плагина, которым непосредственно выполняется перебор паролей (espr_rar.dll v.3.22.109). Там же можно увидеть дату и время создания задачи по выполнению аудита.

Синхронизация между агентом и сервером в EDPR занимает какое-то время (от нескольких секунд до пары минут — в зависимости от сложности последнего задания). Поэтому, даже если удалить единственное задание в консоли EDPR, сервер продолжит нагружать видеокарту и ЦП до тех пор, пока не завершит перебор текущей порции паролей.

Восстанавливаем документы Microsoft Office

В разных версиях пакета MS Office используются принципиально отличающиеся алгоритмы шифрования. Более того, есть два формата документов Microsoft Office: Open XML и Office 97 совместимый, плюс два типа паролей и множество настроек безопасности.

Сам пароль может быть установлен на открытие документа (в новых версиях Office это довольно надежная защита) и на изменение (это всегда более примитивный вариант). В последнем случае для старых версий Office не обязательно вычислять пароль — можно просто посмотреть или даже удалить его. Само содержимое документа с защитой от исправлений не зашифровано. Просто сохрани его в формат XML, открой в «Блокноте» и найди в полученном файле строку, содержащую unprotectPassword=". Можно удалить ее целиком или увидеть сохраненный пароль в незашифрованном виде.

В старых версиях Office 97 и 2000 с паролем на открытие тоже все плохо. В них использовался не самый стойкий алгоритм шифрования RC4, а российские пользователи и вовсе довольствовались его ослабленным вариантом — с ключом в 40 бит и дополнительными упрощениями в механизме генерации ключей. Перебор паролей на открытие в таких документах возможен на скорости в десятки миллионов вариантов в секунду даже без использования видеокарты. Множество вероятных ключей оказалось меньше множества вероятных паролей (эффект коллизии слабых хеш-функций). Поэтому открыть такие файлы можно очень быстро и независимо от того, насколько сложный пароль был установлен.

Подбираем ключ вместо пароля

Чуть сложнее вскрываются документы, созданные в MS Office XP или 2003, из-за использования при генерации ключей RC4 более продвинутого алгоритма хеширования — SHA-160 вместо MD5. Еще труднее вскрыть документ Office 2007 (AES 128 бит и несколько циклов хеширования).

Однако действительно сложным стало шифрование только в Office 2010. В нем появилась возможность использовать через CryptoAPI сторонние алгоритмы шифрования доступных в системе провайдеров службы криптографии. Поэтому зашифрованные документы Office 2010 и более новых версий, сохраненные в формате Open XML (docx, xlsx и так далее), — непростая добыча. Немного упрощает ситуацию то, что практически никто не заморачивается с дополнительной настройкой шифрования и почти все оставляют дефолтные значения: AES 128.

Без использования видеокарты документы Office 2013 и новее вскрыть практически невозможно. Пароли до пяти символов и те перебираются на процессоре полгода со скоростью 57 штук в секунду.

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

С видеокартой — в 115 раз быстрее!

 

Вскрываем архивы

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

Мгновенное восстановление коротких паролей для ZIP-архивов

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

Пароли к ZIP-архивам быстро перебираются и на процессоре

В чистом брутфорсе EDPR не успевает нагрузить все CUDA-ядра. Загрузка видеокарты не превышает 15%. Поэтому именно для атаки на ZIP-архивы стоит выбирать процессор с максимальной частотой. С другими форматами важнее производительность видеокарты.

Перебор паролей к архивам ZIP слабо нагружает видеокарту

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

Даже короткие пароли, состоящие только из цифр, у архивов RAR перебираются несколько суток с черепашьей скоростью 263 штуки в секунду.

Неторопливый перебор

Стоит добавить видеокарту, как картина резко меняется. Скорость взлетает в 74 раза — до 19 400 паролей в секунду. Та же самая задача требует уже чуть больше часа вместо рабочей недели.

Перебор паролей архивов RAR старых версий (v.3.0–v.4.x) упрощен за счет использования 128-битного ключа AES. В новой (пятой) версии RAR длина ключа увеличена до 256 бит. Однако и оптимизация в EDPR выполнена с прицелом на новый формат RAR. Поэтому для архивов пятой версии скорость перебора на видеокарте еще быстрее — 26 500 паролей в секунду

Брутфорс архива RAR нового формата


 

Вскрываем пароли точек доступа Wi-Fi

EDPR умеет восстанавливать пароли Wi-Fi из перехваченных хендшейков всех популярных форматов: cap, pcap, hccap, hccapx, ncf, wkp и wph.

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

Словарная атака WPA на процессоре

При добавлении в список вычислителей одной видеокарты GTX 1070 такая же задача выполняется уже на скорости 391 тысяча паролей в секунду — почти в 32 раза быстрее. Ее решение займет менее пяти минут.

Видеокарта ускоряет атаку по словарю в 32 раза


Полный перебор пароля минимально возможной длины и состоящего только из цифр потребует проверки 100 миллионов комбинаций. EDPR решает эту задачу на GTX 1070 менее чем за шесть минут.

WPA-пароли из восьми цифр раскалываются на ГП за минуты

Если мы добавим к цифрам символы одного регистра, то число возможных комбинаций возрастет на четыре порядка. Вместо 10^8 их будет уже (10 + 26)^8 = 2 821 109 907 456. Почти три триллиона паролей наша тестовая система смогла бы перебрать за четыре месяца.

Рекомендованная структура паролей WPA (минимум восемь символов, хотя бы один из них в верхнем и нижнем регистре) и вовсе дает (10 + 26 + 26)^8 = 218 340 105 584 896 вариантов. Такую прорву паролей одна видюха будет перебирать 23 года, что делает задачу в таком варианте практически бессмысленной.

Однако тем и интересен EDPR, что он позволяет выполнять распределенный брутфорс в локальной сети или через интернет, объединяя до десяти тысяч узлов. Если среди них будут не только простые компы, но и серверы с Nvidia Tesla или популярные среди майнеров «фермы», то 218 триллионов паролей WPA удастся сбрутить… всего за сутки.

Иными словами, скорость перебора паролей — всего лишь вопрос масштабирования, а EDPR прекрасно решает задачу объединения узлов. Просто добавляй новые на вкладке «Вычислители» в Elcomsoft Password Recovery Agent.

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



Report Page