Лаборатория Элкомсофт: как и зачем мы тестируем скорость перебора паролей

9 июня, 2023, Oleg Afonin
Рубрика: «Разное»
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

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

Для чего мы тестируем скорость перебора

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

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

  1. При оптимизации алгоритмов: получить данные о приросте производительности в сравнении с предыдущей версией алгоритма и не случилось ли такого, что скорость перебора возросла, к примеру, на центральном процессоре и видеокарте, установленных в компьютере разработчика, но просела при использовании других моделей видеокарт. Такие замеры производятся на разнообразных аппаратных конфигурациях, но только для одного алгоритма. Эти же тесты дают нам возможность похвастать возросшей в результате оптимизации производительностью.
  2. При добавлении нового формата данных: сравнить цифры с теоретическим пределом, определить степень оптимизации алгоритма. И в этом случае мы стараемся охватить максимально широкий круг вариантов аппаратных конфигураций. Конечно же, результаты тестирования публикуются в нашем блоге в момент анонса поддержки очередного нового формата.
  3. При добавлении поддержки новой архитектуры видеокарт (например, Ada Lovelace от NVIDIA или Xe от Intel): тестирование проводится на видеокартах с новой архитектурой для максимального числа форматов. Измеренная производительность сравнивается с теоретической (в частности — на видеокартах, построенных на предыдущей версии архитектуры), что позволяет определить степень оптимизация алгоритма. Этот подход позволяет нам проконтролировать качество работы нашего кода на новом аппаратном обеспечении. По возможности дополнительно производятся свежие замеры на видеокартах разных моделей и версий архитектуры; именно эти цифры мы предпочитаем публиковать в виде графиков в нашем блоге.
  4. Во всех случаях: сравнить наши данные с данными конкурирующих продуктов. Сильный разброс (более 20%) в сравнении с конкурентами в любую сторону ведёт к необходимости дополнительных проверок. Существенно меньшая производительность может указывать на недостаточную степень оптимизации, а существенно большая — заставляет провести дополнительные проверки, чтобы убедиться, что ни один из паролей различной длины не будет пропущен.

Как мы проводим тестирование

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

В качестве инструмента тестирования мы применяем утилиту командной строки epr_bench.exe, доступную исключительно для внутреннего использования. За исключением случаев, когда мы добавляем поддержку нового формата данных, в качестве исходных данных мы используем один и тот же набор файлов, зашифрованных стойкими паролями. В качестве атаки мы всегда используем атаку методом полного перебора с фиксированной длиной пароля и фиксированным же ограничением на используемый во время атаки набор символов. Атака методом полного перебора — это единственная атака, которая позволяет замерить чистую скорость перебора паролей на конкретной модели видеокарты или процессора. Любые другие атаки — например, атака по маске, словарю или более сложные гибридные атаки, — требуют дополнительных вычислений на центральном процессоре, в результате чего утилизация видеокарты может оказаться далёкой от максимальной.

А вот как выглядят результаты тестирования, которые выводятся в файл в формате CSV:

1682344293;"wz_aes256_sfx_456456456.exe";0;nvidia;0;"NVIDIA GeForce RTX 4070 (368 SP @ 2475 MHz, 4095 MB)";"12th Gen Intel(R) Core(TM) i9-12900K";24;1;1;"ZIP AES256";"ZIP Archive Files";"espr_zip.dll";"4.50.2531";399441920;59973;6660000;
1682344170;"v.1.2_sha256_aes256_pbkdf2-1024_123456789.odt";0;nvidia;0;"NVIDIA GeForce RTX 4070 (368 SP @ 2475 MHz, 4095 MB)";"12th Gen Intel(R) Core(TM) i9-12900K";24;1;1;"OpenDocument v1.2 (AES 256)";"OpenDocument";"espr_opendoc.dll";"4.50.2497";194445312;58629;3310000;

Все данные проверяются вручную и поступают во внутреннюю базу данных; помимо, собственно, скорости атаки в записях содержатся дата и время тестирования, модель и параметры видеокарты  и центрального процессора и используемый алгоритм ускорения (cpu, nvidia, opencl и т.д.), а также имя тестового файла, формат данных и используемый для тестирования плагин. Именно из этой базы данных и производится выборка, позволяющая определить, к примеру, относительную производительность разных моделей видеокарт на одном и том же наборе тестовых данных или сравнить между собой производительность наших алгоритмов до и после оптимизации. В результате получаются примерно такие графики:

Иногда мы хотим обратить внимание на ту или иную особенность, которая не является частью тестирования. Так, в период дефицита видеокарт, связанного с бумом майнинга криптовалют, мы критически анализировали результаты по соотношению цены и производительности; сейчас же, после падения цен на видеоускорители, на первое место вышел такой параметр, как энергоэффективность, который мы измеряем в количестве паролей в секунду на ватт энергопотребления. Разумеется, такие графики достаточно условны: мы не производим замеры энергопотребления видеокарт в процессе работы, полагаясь на паспортные данные соответствующих моделей — что, тем не менее, позволяет успешно сравнивать между собой разные видеокарты с вполне приемлемой погрешностью.

Не только видеокарты

Видеокарта — основной, но не единственный компонент компьютера, влияющий на скорость перебора. Для ряда форматов (например, пароли WPA или Lotus Notes) часть операций выполняется ресурсами центрального процессора несмотря на поддержку аппаратного ускорения. Для таких форматов важна не только мощность центрального процессора и его архитектура, но и корректная реализация поддержки этой архитектуры в наших продуктах. В качестве иллюстрации приведу статью Перебор паролей на процессорах Intel Alder Lake 12-го поколения, в которой мы рассказали о сложностях, с которыми нам пришлось столкнуться в связи с новой гибридной архитектурой процессоров Intel. Напомним, что некоторые алгоритмы невозможно реализовать на видеокарте — например, алгоритм Scrypt.

Сложный технический момент в процессе тестирования — значительный (на 6-7 порядков) разброс скоростей перебора для различных форматов, от считанных единиц до миллиардов паролей в секунду, причём сложность представляют как первые (необходимо значительно больше времени для корректной оценки устоявшейся скорости перебора), так и для второго (приходится увеличивать длину тестового пароля, который в противном случае будет найден быстрее, чем инструмент успевает замерить производительность). Сверхвысокие скорости перебора вызывают и ещё одну проблему: мощности центрального процессора уже не хватает для генерации пакетов паролей с той скоростью, с какой GPU видеокарты способен их проверять. Для таких форматов мы дополнительно разрабатываем код, который генерирует пакеты паролей на самой видеокарте.

 

Как протестировать скорость перебора самостоятельно

Обратим внимание ещё на одну особенность нашего подхода к тестированию. У нас нет технической возможности протестировать все поддерживаемые нашими продуктами форматы данных во всех возможных комбинациях на всех возможных видеокартах. Если вы — обладатель лицензии на Elcomsoft Distributed Password Recovery, и вам необходимо узнать, с какой скоростью будет работать перебор на каких-либо данных, а на нашем сайте нет соответствующих бенчмарков, вы сможете проделать тест самостоятельно. Для этого запустите Elcomsoft Distributed Password Recovery, добавьте в очередь задач зашифрованный файл и настройте атаку следующим образом.

  • Тип атаки: brute force
  • Ограничение на длину пароля: 8 символов в качестве и минимальной, и максимальной длины пароля
  • Ограничение на набор символов: латиница (только маленькие буквы) + цифры

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

Далее запустите атаку и подождите от 3 до 5 минут: программе требуется время на «раскачку». В это время происходит компиляция и загрузка кода, который будет запущен на GPU, динамически определяется размер пакета — число паролей, которые пересылаются на видеокарту за одну итерацию, формируется буфер и производятся другие необходимые на начальном этапе операции. Спустя несколько минут (точное время зависит от многих параметров) производительность достигнет максимума. Скорость перебора отображается в главном окне Elcomsoft Distributed Password Recovery, но мы рекомендуем открыть окно агента и посмотреть на скорость перебора именно в нём:

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

Заключение

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


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

REFERENCES:

Elcomsoft Distributed Password Recovery

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

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

НАШИ НОВОСТИ