Distributed Password Recovery: поддержка видеокарт NVIDIA Blackwell

26 марта, 2026, Oleg Afonin
Рубрика: «Разное»

В новой версии Elcomsoft Distributed Password Recovery появилась поддержка видеокарт NVIDIA последнего поколения Blackwell. Небольшое обновление? Напротив: EDPR 5.0 — самое крупное обновление продукта за последние годы. Мы полностью пересобрали продукт, осуществив переход с 32-битного кода на 64-разрядный. Почему это важно и при чём здесь NVIDIA Blackwell? Подробности — в этой статье.

Аппаратное ускорение: от специализированных «ускорителей» к видеокартам

Современные графические ускорители работают по принципу SIMD (Single Instruction Multiple Data) — «одна инструкция, разные данные». Смысл в том, что одна и та же операция (один и тот же код) выполняется на тысячах, а иногда и десятках тысяч вычислителей, работающих параллельно. Код — один и тот же, но на каждый вычислитель можно подать собственные данные. Такой подход позволяет за один цикл проверить столько паролей, сколько имеется вычислителей. Каждый отдельный вычислитель работает намного медленнее ядер центрального процессора (CPU), зато их намного больше — на два, а иногда и на три порядка; так, ускоритель NVIDIA RTX 5090 оборудован 21,760 ядрами CUDA. Соответственно, одна и та же атака на GPU, в котором много тысяч вычислителей, будет выполнена в сотни раз быстрее, чем если бы ту же атаку запустили только на центральном процессоре. Сегодня это кажется очевидным, но так было не всегда. Первыми, кто догадался подключить видеокарты к процессу перебора паролей, стала наша компания.

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

В то же время компания NVIDIA выпустила CUDA — программную платформу (фреймворк), которая предоставила независимым разработчикам доступ к ресурсам GPU для вычислений общего назначения. С этого момента индустрия изменилась безвозвратно.

Несмотря на наличие альтернатив (OpenCL, Vulkan), для работы с картами NVIDIA мы используем исключительно CUDA: только в этой платформе доступны все оптимизации и открывается доступ ко всем возможностям GPU. В те годы наш код был 32-битным; о 64-разрядных вычислениях на потребительском уровне тогда не задумывались. Со временем 64-битная архитектура стала стандартом де-факто, но мы продолжали развивать Elcomsoft Distributed Password Recovery в том же виде. Почему? Всё отлично работало, а реальных преимуществ от перехода на новую кодовую базу мы не видели. Скажу больше: не видим и сейчас. Сами по себе 64-битные инструкции не дают прироста производительности в задачах, не требующих огромных страниц памяти, а перебор паролей их не требует. Проблема была в другом — и нельзя сказать, что мы её не ждали.

Уже давно NVIDIA подавала недвусмысленные сигналы об отказе от поддержки 32-битных вычислений. Поддержка 32-битной архитектуры x86 была объявлена устаревшей ещё в 2018 году с выходом CUDA 10, а в версии CUDA 11 её убрали окончательно. Однако настоящий «час икс» настал с выходом архитектуры Blackwell (серия видеокарт RTX 50), для которой требуется CUDA версии 12.8 или новее. В инструментарии, который нужен для работы с этими видеокартами, поддержка 32-битных вычислений вырезана полностью; 32-битный код CUDA на Blackwell просто не запустится.

Мы долго поддерживали EDPR в 32-битном варианте, так как он исправно работал на предыдущих поколениях видеокарт (Ampere, Ada Lovelace). Но с выходом Blackwell стало окончательно ясно, что новый 64-разрядный движок нужен здесь и сейчас.

Архитектура EDPR: взгляд изнутри

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

  • Сервер: Фоновый процесс, который управляет очередью, разбивает задачи по восстановлению паролей на фрагменты и распределяет их между доступными агентами.
  • Консоль: Графический интерфейс, где эксперт настраивает параметры атаки, задаёт маски и следит за прогрессом.
  • Агенты: Это «рабочие лошадки». Они запускаются на сетевых рабочих станциях (в том числе на локальной машине), получают задачи от сервера, выполняют атаку и отправляют результат обратно на сервер.

Как можно видеть, сервер и консоль могут работать в любом режиме, а вот агент должен быть 64-разрядным. Казалось бы, достаточно переписать агент, и всё заработает? Увы, нет.

Проблема с плагинами

Сам по себе агент не выполняет код на видеокарте. Агент — это очередной диспетчер, который передаёт задачу одному из полутора сотен плагинов-расширений, каждый из которых выполнен в виде отдельной динамической библиотеки (DLL). Всего в EDPR порядка 160 отдельных плагинов, каждый из которых работает с конкретным форматом данных — будь то ZIP-архив, файл RAR5, том BitLocker или резервная копия iOS. Каждый из этих плагинов тщательно оптимизирован. В деле восстановления паролей ценность оптимизации трудно переоценить; падение скорости даже на 5% может затянуть перебор на несколько дней. Чтобы добиться от установленного в компьютер аппаратного обеспечения максимальной скорости, многие плагины писались с активным использованием ассемблерных вставок и низкоуровневых оптимизаций, использующих особенности именно под 32-битные регистры и наборы инструкций.

Дальнейшее очевидно. Когда NVIDIA убрала поддержку 32-битных вычислений, мы не могли просто выбрать «x64» в Visual Studio и запустить компиляцию; ассемблерный код таким образом не переносится. 64-битная архитектура — это не только другие инструкции и регистры; переход на новую архитектуру фактически обесценил многие годы тщательной оптимизации 32-битного кода, благодаря которым наш продукт так долго оставался одним из самых быстрых на рынке. Увы, но оптимизировать код под 64-разрядные вычисления нам пришлось с чистого листа.

Трудности перехода

Мы начали работу над 64-битной версией сразу же, как только NVIDIA объявила о прекращении поддержки 32-битной архитектуры, но процесс шёл очень и очень медленно. Для каждого из более чем 160 плагинов нужно было переписать 32-битные ассемблерные вставки под 64 бита, и неожиданно (на самом деле — вполне предсказуемо) оказалось, что код, который просто портировали с одной архитектуры на другую, стал работать заметно медленнее.

Таким образом, нам предстояло решить две крупных проблемы:

  • Портировать код: а точнее, создать 64-разрядные вставки с чистого листа для полутора сотен алгоритмов, на кропотливую оптимизацию которых изначально у нас ушли годы.
  • Регрессия скорости: в большинстве случаев портированные на 64-битный код плагины работали медленнее своих 32-битных предшественников, иногда — заметно медленнее. Нам пришлось потратить месяцы на профилирование и повторную оптимизацию, чтобы переход на 64 бита не ударил по скорости на старых процессорах и видеокартах. Даже сегодня некоторые 64-битные плагины всё ещё работают медленнее своих 32-битных предшественников, так как простая миграция кода не даёт того же уровня оптимизации. Разумеется, мы будем продолжать работу над ними.

Результат: работает на RTX 5090!

Что в итоге? Мы выпустили полностью 64-битную версию EDPR. Это не просто обновление цифр версии; это — полностью переписанный и оптимизированный код, и это — долгожданная поддержка архитектуры NVIDIA Blackwell, видеокарт семейства RTX 50 и последних версий CUDA.

Если вы уже закупили для лаборатории RTX 5090 или 5080, новая версия EDPR позволит использовать их с максимальной эффективностью. Перехода на 128 бит в ближайшее десятилетие не ожидается, так что продукт останется совместим и с будущими поколениями видеокарт.

Насколько быстрее работают новые видеокарты? Мы постоянно тестируем производительность, по нескольку раз запуская каждый отдельный плагин как на старых видеокартах RTX 4080 Super и 4090, так и на новых RTX 5080 и 5090. На ряде форматов прирост впечатляющий; полный отчёт с графиками производительности скоро появится в блоге.

Напоследок отметим, что мощные видеокарты и оптимизированное ПО — не панацея. Даже с тысячей видеокарт некоторые типы защиты невозможно вскрыть лобовой атакой — методом полного перебора. Для эффективной атаки нужен свой подход. Работа начинается с быстрых решений — например, использования Elcomsoft Quick Triage для мгновенного извлечения паролей из браузеров и составления целевого словаря. Если это не помогло, придётся составить цифровой профиль подозреваемого, создать более подробные словари, использовать целевые маски и правила мутации — всё это позволяет сосредоточить вычислительную мощь на наиболее вероятных комбинациях, вместо того чтобы тратить время на математически безнадёжный полный перебор.

Графики производительности

REFERENCES:

Elcomsoft Distributed Password Recovery

Производительное решение для восстановление паролей к десяткам форматов файлов, документов, ключей и сертификатов. Аппаратное ускорение с использованием потребительских видеокарт и лёгкое масштабирование до 10,000 рабочих станций делают решение Элкомсофт оптимальным для исследовательских лабораторий и государственных агентств.

Официальная страница Elcomsoft Distributed Password Recovery »

НАШИ НОВОСТИ