В процессорах семейства Alder Lake, представленных Intel в конце прошлого года, используется гибридная архитектура. «Большие», мощные P-ядра дополняются энергоэффективными ядрами E-cores. Распределением задач между ядрами P и E занимается планировщик потоков. Мы обнаружили, что на задачах восстановления паролей работа планировщика в Windows 10 далека от оптимальной, что может привести к кратному падению производительности.
Alder Lake — кодовое имя семейства процессоров фирмы Intel 12-го поколения. Чипы на этой микроархитектуре используют гибридную технологию, сочетающую производительные P-ядра и энергоэффективные E-ядра. По задумке производителя под тяжёлой нагрузкой должны задействоваться производительные ядра, а для обслуживания фоновых задач предназначены энергоэффективные Е-ядра.
В разных процессорах 12-го поколения насчитывается разное число больших и малых ядер. Так, в максимальной конфигурации в процессоре Intel Core i9-12900K присутствует 8 Р-ядер и 8 Е-ядер. Производительные ядра обладают технологией аппаратной гиперпоточности (hyper-threading), в результате чего каждое из Р-ядер представляется операционной системе как два отдельных ядра. Малые Е-ядра этой технологии лишены. Таким образом, конфигурация процессора Intel Core i9-12900K описывается формулой 8Р+8Е/24Т, где 8Р — восемь производительных ядер с гиперпоточностью, 8Е — восемь малых (энергоэффективных) ядер без гиперпоточности, а 24Т — количество потоков, которые процессор способен исполнять одновременно. В младших процессорах Core i3-12300 установлено четыре «больших» ядра и ни одного малого; эти процессоры описываются формулой 4Р/8Т. Процессоры из середины линейки, Intel Core i5-12xxx, могут быть оборудованы разным числом больших и малых ядер — от 6Р+4Е/16Т до 6Р/12Т.
Новая вычислительная топология оказалась достаточно сложной как для приложений, которые «ничего не знают» о гибридной архитектуре, так и для планировщика потоков, встроенного в операционную систему Windows. И если в Windows 11 поддерживается технология Intel Thread Director, которая помогает ОС отслеживать загрузку ядер и распределять потоки в режиме реального времени, то в Windows 10 поддержки этой технологии нет. В то же время планировщик потоков Windows 10 различает большие и малые ядра, однако распределение между ними потоков при нестандартных нагрузках может оказаться далёким от оптимального.
В современных условиях для перебора паролей, как и для множества других задач, принято использовать аппаратное ускорение. В качестве ускорителей часто выступают обычные потребительские видеокарты — такие, как NVIDIA RTX или AMD Radeon. Подключение даже одной видеокарты приводит к росту скорости перебора в 50-250 раз, а использование нескольких видеокарт способно кратно повысить производительность. Роль CPU в процессе парольных атак сводится к подготовке порций данных для видеокарты, что не является сколько-нибудь серьёзной нагрузкой даже для очень старых процессоров. Для чего, в таком случае, нужен быстрый центральный процессор?
Далеко не все алгоритмы, использующиеся для преобразования текстового пароля в двоичный ключ фиксированной длины, могут быть запущены на видеокарте. Яркий пример такого алгоритма — Scrypt. Этот алгоритм преобразования пароля был разработан специально для того, чтобы затруднить (а точнее, сделать невыгодным) атаки, использующие многопоточные аппаратные ускорители. Идея проста. Если центральный процессор использует 8, 16 или даже 64 потока, а компьютер может быть оборудован впечатляющим количеством оперативной памяти, то видеокарта может быть оборудована несколькими тысячами исполнительных устройств — и весьма ограниченным количеством памяти. К примеру, старая модель NVIDIA GTX 1080 обладает 2560 исполнительными ядрами и всего 8 ГБ оперативной памяти. Сделаем так, чтобы каждое вычисление требовало заметного количества оперативной памяти, и количество потоков, которые могут быть одновременно запущены, резко сокращается — а значит, и падает скорость атаки.
Таких алгоритмов существует несколько, и они постепенно набирают популярность. Эта ситуация приводит к тому, что скорость центрального процессора вновь становится определяющей для максимально быстрого восстановления того или иного пароля.
12-е поколение процессоров Intel предлагает максимально доступную на сегодняшний день производительность на обычных потребительских компьютерах, заметно превышающую скорость предыдущего поколения процессоров. В момент анонса новой архитектуры производитель упомянул о необходимости оптимизации программного обеспечения со стороны разработчиков с целью его адаптации под новую гибридную архитектуру. До оптимизации Elcomsoft Distributed Password Recovery показал следующие цифры производительности на процессора Intel Core i9-12900K:
Тесты показывают, что по скорости перебора паролей процессор Intel Core i9-12900K в конфигурации (8P+8E/24T) превосходит старый восьмиядерный процессор Intel Core i7-9700K (8C/8T), но заметно уступает APU Ryzen 7 5700G (8C/16T) от AMD. Это связано с тем, что при работе неоптимизированной версии продукта загружаются только энергоэффективные ядра E-cores, а производительные ядра P-cores простаивают; именно так работает планировщик Windows с процессами, запущенными в фоновом режиме с пониженным приоритетом. Диспетчер потоков Windows 10 распределяет задачи с низким приоритетом исключительно на малые ядра, оставляя P-ядра без нагрузки.
Мы оптимизировали Elcomsoft Distributed Password Recovery, добавив полноценную поддержку гибридной архитектуры процессоров. В результате оптимизации нагрузка распределяется равномерно между P- и E-ядрами. Результат — налицо; на новом процессоре новая сборка продемонстрировала более чем двукратный рост производительности:
Всё, что нужно для корректной работы с новым поколением процессоров — обновлённая сборка Elcomsoft Distributed Password Recovery версии 4.4 или более новой. Обязательно обновите не только серверную часть, но и все агенты, установленные на других компьютерах в сети!
Сразу после обновления продукт полностью готов к работе; по умолчанию используются все доступные процессорные ядра. Поскольку программа теперь работает с «нормальным» приоритета (в отличие от пониженного в предыдущих сборках), полная нагрузка процессора во время перебора паролей может привести к заметному подтормаживанию компьютера. Соответственно, если компьютер параллельно используется для других задач (или если вы установили и агент, и серверную часть EDPR на один компьютер), рекомендуем высвободить одно или два процессорных ядра. Для этого достаточно уменьшить количество используемых потоков на два (от максимального значения) в настройках программы.
Alder Lake — лидер по чистой производительности среди потребительских процессоров. Elcomsoft Distributed Password Recovery 4.4 полностью поддерживает новую гетерогенную архитектуру. Одновременно с поддержкой процессоров Alder Lake мы дополнительно оптимизировали ряд алгоритмов, что позволит ускорить атаки ещё сильнее.
Производительное решение для восстановление паролей к десяткам форматов файлов, документов, ключей и сертификатов. Аппаратное ускорение с использованием потребительских видеокарт и лёгкое масштабирование до 10,000 рабочих станций делают решение Элкомсофт оптимальным для исследовательских лабораторий и государственных агентств.
Официальная страница Elcomsoft Distributed Password Recovery »