Казалось бы, при чём тут Bitcoin? Ломаем пароли на том, что осталось от майнеров

18 февраля, 2022, Oleg Afonin
Рубрика: «Разное»
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

В течение многих лет для ускорения перебора использовались обычные игровые видеокарты — NVIDIA GeForce, AMD Radeon и другие; те самые видеокарты, которые практически исчезли с полок магазинов в результате повального спроса со стороны добытчиков криптовалют. В этой статье мы расскажем, какие видеокарты из доступных (в том числе — по цене) имеет смысл использовать для ускорения перебора паролей.

Для чего следователю нужна видеокарта

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

Почему вычислительные возможности видеокарт настолько сильно превышают возможности центральных процессоров? Дело в распараллеливании узкоспециализированных вычислений. Видеокарты способны выполнять некоторые простейшие целочисленные операции в десятках и сотнях потоков одновременно – но лишь для некоторых специфических видов вычислений, в число которых входит вычисление многих видов хэш-функций, использующихся в преобразовании пароля в ключ. Большое количество вычислительных ядер (CU, Compute Unit), число которых может доходить до нескольких сотен, позволяет эффективно распараллелить нагрузку на видеокарту, достигнув таким образом преимущества в скорости перебора в сравнении с использованием ресурсов только центрального процессора. Для большинства форматов, для которых доступно аппаратное ускорение, атаки на компьютере без видеокарты лишены практического смысла.

Какие именно видеокарты имеет смысл использовать? С 2016 года весьма эффективным решением как с точки зрения чистой производительности, так и по соотношению цены к производительности, была и долгое время оставалась модель NVIDIA GeForce GTX 1080. С тех пор вышли модели NVIDIA 2080, а затем и 3080, производительность которых росла — но не быстрее цены.

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

Бюджетные видеокарты: лучше, чем CPU

Первым возможным решением, которое может скомпенсировать рост цен на видеокарты, стала технология асинхронных гетерогенных вычислений, разработанная специалистами «Элкомсофт». Эта технология позволяет Elcomsoft Distributed Password Recovery одновременно использовать несколько установленных в систему графических сопроцессоров разных моделей и производителей, от современных до достаточно старых. С практической точки зрения поддержка гетерогенных вычислений позволяет добавлять, а не заменять видеокарты, что делает возможным увеличение производительности системы путём установки дополнительной бюджетной видеокарты, а не заменой старой модели на недоступную по цене более новую.

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

Тестирование будет проводиться в следующих конфигурациях:

  1. CPU: Intel i7-9700K без подключения графического ускорителя.
  2. Встроенная графика: та же система с подключением встроенного в процессор ускорителя UHD Graphics 630.
  3. CPU: AMD Ryzen 7 5700G без подключения графического ускорителя.
  4. Встроенная графика: AMD Radeon Vega 8 Graphics — видеоускоритель, встроенный в процессор AMD Ryzen 7 5700G.
  5. Дискретная видеокарта: NVIDIA T600.
  6. Дискретная видеокарта: NVIDIA 1650.

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

Мы планировали добавить в набор протестированных видеокарт модель NVIDIA RTX 3050, однако найти видеокарту этой модели за разумные деньги нам не удалось, что автоматически исключает её из списка «бюджетных» моделей.

Intel UHD Graphics 630

Intel UHD Graphics 630 (GT2) — самое бюджетное (и самое слабое) из всех возможных решений. Этот ускоритель является частью процессоров Intel поколения Coffee Lake. В нашем тестировании поучаствовала версия из процессора Intel(R) Core(TM) i7-9700K CPU, оборудованная 24 вычислительными блоками (Compute Units, CU) с частотой 1200 МГц. В данном GPU отсутствует выделенная для графики оперативная память; для работы используется системная память (в нашем случае 4 модуля по 16GB DDR4 @ 3000MT/s). В тестирование эта модель попала исключительно для того, чтобы продемонстрировать работу 24 слабых графических ядер в сравнении с восемью мощными ядрами центрального процессора.

AMD Radeon RX Vega 8

AMD Radeon RX Vega 8 — графическая подсистема, встроенная в процессоры AMD Ryzen 5000. В нашем тестировании поучаствовал процессор AMD Ryzen 7 5700G. Графическая подсистема основана на архитектуре Vega, которая была анонсирована AMD в августе 2017. В исследуемой реализации установлено 8 вычислительных блоков (Compute Units, CU), работающих на частоте до 2000 МГц. Так же, как и в случае с Intel, у данной модели нет собственной оперативной памяти, поэтому используется основная (в данном случае 2 модуля по 8GB DDR4 @ 3200MT/s).

AMD выпускает сбалансированные процессоры с интегрированной графикой (APU). На бумаге RX Vega 8 выглядит достаточно слабо, однако подождём с выводами до результатов тестирования.

Nvidia T600 Quadro

Nvidia T600 — современный видеоускоритель «профессиональной» линейки NVIDIA, анонсированный в апреле 2021. Ускоритель основан на архитектуре Turing (TU117) и оборудован 640 ядрами CUDA, 128-битной шиной доступа к памяти GDDR6, которой установлено 4 ГБ. Рассматриваемый ускоритель — фактически, обрезанная версия старой видеокарты начального уровня NVIDIA 1650, у которой отключили часть ядер CUDA (640 в рассматриваемой модели против 896 в модели 1650). Производительность T600 настолько низкая, что эта модель неинтересна добытчикам криптовалют, и её можно приобрести по достаточно низкой цене. Частота процессорных ядер в нашей модели составляет 1335 МГц (PDF).

Говоря простыми словами, «профессиональная» модель 2021 года — это обрезок бюджетной видеокарты трёхлетней давности, что характерно отражает текущее состояние рынка видеокарт. У NVIDIA есть и ещё более урезанная модель T400, тестировать которую мы попросту побоялись.

Nvidia GeForce GTX 1650

Nvidia GeForce GTX 1650 — дискретная видеокарта, построенная на архитектуре Turing (TU117). Модель доступна на рынке с апреля 2019 года. Модель оборудована 4 ГБ собственной памяти GDDR5, которая подключена посредством 128-разрядной шины. Частота нашей карты — 1830 МГц.

Три года назад NVIDIA 1650 была бюджетной видеокартой, которую можно было купить за полторы-две сотни евро. Сегодня эта модель стоит дороже, но в продаже есть.

Тестовый стенд

Для тестирования использовались следующие конфигурации.

  1. Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz; 4x16GB DDR4 @3000 MT/s
  2. Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz, Intel(R) UHD Graphics 630 (24 CU @ 1200 MHz, 1638 MB)
  3. AMD Ryzen 7 5700G @ 4.6GHz; 2x8GB DDR4 @3200 MT/s
  4. AMD Ryzen 7 5700G with Radeon Graphics, AMD Radeon(TM) Graphics (8 CU @ 2000 MHz, 3072 MB); 2x8GB DDR4 @3200 MT/s
  5. Intel(R) Core(TM) i7-4770S CPU @ 3.10GHz , NVIDIA T600 (640 SP @ 1335 MHz, 4095 MB)
  6. Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz, NVIDIA GeForce GTX 1650 (896 SP @ 1830 MHz, 4095 MB)

Результаты тестирования

Использовав в качестве тестовой нагрузки Elcomsoft Distributed Password Recovery, мы получили следующие результаты (цифры — число паролей в секунду, которые программа может перебрать на указанной аппаратной конфигурации).

По результатам тестов вычислим относительную производительность. За точку отсчёта примем производительность процессорных ядер Intel Core i7-9700K (без видеоускорителя), сделав исключение для ускорителя AMD RX Vega 8, встроенного в процессор AMD Ryzen 7 5700G, у которого будет две разных точки отсчёта.

7-Zip Hancom SHA-256 ZIP (AES-256)
Intel i7-9700K 1,00 1,00 1,00 1,00
Intel UHD 630 1,55 2,23 1,97 0,68
AMD 5700G 7,81 1,89 6,05 1,70
AMD RX Vega 8* 0,85 13,43 2,89 3,86
AMD RX Vega 8 6,65 25,41 17,50 6,57
NVIDIA T600 22,77 32,52 19,04 8,70
NVIDIA 1650 41,74 60,09 30,42 15,50

* Результат AMD RX Vega 8, выделенный красным цветом, нормализован относительно процессора AMD Ryzen 7 5700G (а не Intel Core i7-9700K). Это сделано для того, чтобы можно было сравнить производительность встроенного в процессор AMD Ryzen 7 5700G видеоускорителя с ядрами именно этого процессора. Сравнение AMD RX Vega 8 с референсным Intel Core i7-9700K приводится на следующей строке и цветом не выделено.

О чём говорят результаты тестов? В первую очередь вызывает интерес превосходство процессорных ядер AMD Ryzen 7 5700G над Intel Core i7-9700K. Да, процессор от AMD — новее, а архитектура Zen 3 — чрезвычайно удачна, но таких цифр мы совершенно не ожидали. Свою роль здесь сыграл режим SMT (simultaneous multi-threading), доступный в процессоре AMD и отсутствующий (технология hyperthreading отключена) в процессоре Intel Core i7-9700K, но объяснить шести-восьмикратное преимущество в некоторых тестах одной только этой технологией при всём желании не получится.

Видеоускоритель Intel UHD 630 продемонстрировал ожидаемо слабый результат. В некоторых тестах он быстрее центрального процессора, но в тесте ZIP (AES-256) — даже медленнее.

AMD RX Vega 8, встроенный в процессор AMD Ryzen 7 5700G, оказался весьма эффективным, особенно если сравнивать его с референсным процессором Intel Core i7-9700K, а не собственными процессорными ядрами AMD Ryzen 7 5700G. Впрочем, даже при сравнении с ядрами AMD Zen 3 встроенный видеоускоритель демонстрирует убедительное преимущество во всех тестах, за исключением бенчмарка 7-Zip (а вот в том, почему был показан именно такой результат, предстоит разбираться уже разработчикам EDPR).

Дискретные ускорители NVIDIA T600 и 1650 можно сравнивать непосредственно друг с другом, и старая видеокарта NVIDIA GeForce GTX 1650 оказалась в 1.8 раза быстрее «профессионального» ускорителя T600 Quadro.

Соотношение цены и производительности

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

Ещё одна сложность в подсчёте цены/производительности — стоимость встроенных графических ускорителей. Если считать её равной нулю, то и соотношение цены к производительности будет бесконечным, что явно не соответствует действительности. В результате мы решили добавить к цене видеокарты некоторую условную, фиксированную стоимость центрального процессора, которую мы приняли равной 300€.

Стоимость системы = стоимость дискретной видеокарты + 300€ (условная стоимость центрального процессора).

Соотношение цены к производительности вычислялось для алгоритма SHA-256 / стоимость системы

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

  Стоимость дискретной видеокарты Стоимость системы SHA-256 Цена / производительность Нормализованная цена / производительность
Intel i7-9700K 0 300 33200000 110666 1
Intel UHD 630 0 300 65500000 218333 1,97
AMD RX Vega 8 0 300 581000000 1936666 17,5
NVIDIA T600 150 450 632000000 1404444 12,69
NVIDIA 1650 270 570 1010000000 1771929 16,01

Из этой и предыдущей таблиц можно сделать следующие выводы.

  1. Атаки с использованием ресурсов только центрального процессора малоэффективны.
  2. Встроенная в процессоры для настольных компьютеров графика Intel UHD настолько слаба, насколько о ней говорят, уступая даже процессорным ядрам AMD Ryzen 7 5700G. Использование встроенной в процессоры Intel графической подсистемы имеет смысл, скорее, на мобильных процессорах компании (ноутбуки, компьютеры Intel NUC), в которые Intel устанавливает заметно большее число графических вычислительных блоков.
  3. У процессора AMD Ryzen 7 5700G хорошее соотношение цены и производительности как по части центрального процессора, так и по части графического ядра, производительность которого хоть и уступает, но сравнима по порядку величин с младшими ускорителями от NVIDIA.
  4. Среди бюджетных решений NVIDIA T600 Quadro демонстрирует исключительно скромную производительность. Эту видеокарту может иметь смысл использовать с процессорами Intel или AMD без встроенной графики, но при возможности увеличить бюджет модель NVIDIA 1650 намного более привлекательна.
  5. Среди протестированных бюджетных видеоускорителей побеждает NVIDIA 1650. Использование этой видеокарты позволяет получить самый заметный прирост производительности при достаточно скромных затратах.

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

REFERENCES:

Elcomsoft Distributed Password Recovery

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

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

НАШИ НОВОСТИ