← Назад ко всем записям

PDFUnlock Blog

Как работает взлом паролей на GPU (простыми словами)

Нетехническое объяснение того, как работает взлом паролей на базе GPU: hashcat, словарные атаки, перебор, мутации на основе правил и десятифазная система восстановления.

· автор Команда PDFUnlock · 7 мин чтения

Когда вы загружаете заблокированный PDF в сервис восстановления пароля, что на самом деле происходит на другой стороне? Без машинного обучения, без магии, без секретных бэкдоров — только математика, большие словари и очень быстрое оборудование. Вот как это работает.

Шаг ноль: извлечение хеша

Прежде чем начнётся взлом, сервис извлекает хеш шифрования из вашего PDF. Это небольшой фрагмент данных — обычно несколько сотен байт — который был сгенерирован из вашего исходного пароля при шифровании файла.

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

Этот шаг извлечения мгновенный и не требует мощности GPU. В PDFUnlock мы используем инструмент под названием pdf2john, который работает на чистом JavaScript — он занимает менее 100 миллисекунд.

Важно: извлекается только хеш. Мы никогда не читаем содержимое вашего PDF. Даже если бы захотели, не смогли бы — содержимое зашифровано.

Почему GPU, а не CPU?

Современный CPU имеет 8-16 ядер, каждое из которых оптимизировано для сложных последовательных задач. Современный GPU имеет тысячи более простых ядер, оптимизированных для выполнения одной и той же небольшой операции над множеством точек данных одновременно.

Взлом пароля — массово параллельная задача. Вам нужно взять пароль-кандидат, хешировать его и сравнить результат с целью — затем повторить для следующего кандидата. Каждый тест независим. Ядрам не нужно общаться друг с другом.

Именно для этого и созданы GPU. Одна NVIDIA L4 (GPU, который мы используем в продакшене) может тестировать примерно:

  • 25 миллиардов хешей MD5 в секунду
  • 250-350 миллионов хешей PDF RC4-128 в секунду
  • 1,3-1,8 миллиарда хешей PDF AES-128 в секунду (быстрее, чем RC4-128, благодаря аппаратному ускорению AES-NI)
  • 15 кГ/с (15 000 кандидатов в секунду) хешей PDF AES-256 R=6 в секунду — примерно в 20 000 раз медленнее, чем RC4-128

CPU, выполняющий ту же работу, может справиться с 1/100 этих чисел. Это стократное преимущество в скорости — вся причина, по которой взлом на GPU вытеснил взлом на CPU за последнее десятилетие.

Инструмент: hashcat

Почти каждый серьёзный сервис восстановления паролей использует hashcat, инструмент с открытым исходным кодом, который активно развивается с 2009 года. Он поддерживает более 350 типов хешей, включая все варианты шифрования PDF.

Hashcat не является проприетарным. Это не секретное оружие. Это стандартный инструмент, свободно доступный на GitHub. Разница между сервисами не в программном обеспечении — это оборудование, на котором оно работает, используемые словари и применяемые наборы правил.

Типы атак

Словарная атака

Самый простой подход: взять список известных паролей и попробовать каждый. Самый знаменитый словарь — rockyou.txt — 14,3 миллиона паролей, утекших из утечки RockYou в 2009 году. Несмотря на то, что им 17 лет, эти пароли остаются разрушительно эффективными, потому что люди продолжают выбирать одни и те же шаблоны.

Словарная атака на PDF выполняется за секунды или минуты, в зависимости от типа шифрования.

Атака на основе правил

Люди редко вводят password как свой пароль в наши дни. Они вводят P@ssw0rd! или Password2026. Атаки на основе правил берут каждое слово в словаре и применяют общие преобразования:

  • Делать первую букву заглавной
  • Заменить a на @, e на 3, i на 1, o на 0
  • Добавить цифры: 1, 123, 2026
  • Добавить символы: !, ?, #
  • Перевернуть слово
  • Удвоить его

Один словарь из 14 миллионов слов с большим набором правил может сгенерировать миллиарды кандидатов. Набор best64.rule (64 правила) и OneRuleToRuleThemAll.rule (~50 000 правил) используются чаще всего.

Атака перебором (маской)

Когда словарные атаки и атаки по правилам терпят неудачу, последнее средство — попробовать все возможные комбинации. Атака по маске hashcat позволяет определить шаблон:

  • ?a?a?a?a?a?a = каждый печатный ASCII-символ, 6 позиций
  • ?d?d?d?d?d?d = каждая комбинация цифр, 6 позиций
  • ?u?l?l?l?l?d?d = заглавная + 4 строчных + 2 цифры

С --increment hashcat начинает с 1 символа и увеличивается. Для печатного ASCII (95 символов) пространство поиска растёт экспоненциально:

ДлинаКомбинацииВремя (AES-256, RTX 4090)
481 миллион< 1 минуты
57,7 миллиарда~40 минут
6735 миллиардов~2,5 дня
769,8 триллиона~270 дней
86,6 квадриллиона~70 лет

Вот почему пароли более 8 случайных символов фактически не взламываются на текущем оборудовании. И почему мы честны в отношении показателей успеха AES-256.

Десятифазная система PDFUnlock

Мы запускаем атаки в порядке скорости, останавливаясь, как только пароль найден:

  1. Фаза 1 — ~25 000 многоязычных паролей быстрого теста (секунды, бесплатно). Тщательно подобранный список самых распространённых паролей (5K базовых + 2K на язык × 11 языков) — локализованный для языка пользователя. Около трети реальных заданий заканчиваются здесь, до того как мы возьмём хоть цент.
  2. Фаза 2 — rockyou.txt (секунды или минуты). Полный словарь 14,3 миллиона паролей.
  3. Фаза 3 — rockyou + best64.rule (минуты — час). Каждая запись rockyou с 64 общими мутациями.
  4. Фаза 4 — Combinator (минуты — часы). Сочетания слово+слово, такие как john+2024 или love+forever.
  5. Фаза 5 — Hybrid dict+mask (минуты — часы). Словарные слова с добавленными цифрами, например password1234 или monkey+4 цифры.
  6. Фаза 6 — Обход клавиатуры (минуты). Общие паттерны клавиатуры, такие как qwerty, azerty, 1qaz2wsx и подобные последовательности.
  7. Фаза 7 — rockyou + OneRuleToRuleThemAll (часы). Каждая запись с ~52 000 мутаций. Самая продуктивная фаза для «умных» паролей.
  8. Фаза 8 — Перебор Маркова (часы — дни). Статистически оптимизированный перебор 1-8 символов с использованием цепей Маркова, тестирующий сначала наиболее вероятные последовательности символов.

Вы можете следить за прогрессом в реальном времени на своей панели. Каждый переход фазы сообщается в реальном времени через Firestore.

Что мы не можем взломать

Давайте будем прямы относительно пределов:

  • Действительно случайные пароли длиннее 8 символов на AES-256: математика против нас. 9 случайных символов печатного ASCII на AES-256 заняли бы годы на одном GPU.
  • Пароли от менеджера паролей (как t9^Jq2p@ZrW4): их нет в словарях, и они слишком длинные для перебора.
  • Парольные фразы из 4+ случайных слов (как correct horse battery staple): пространство комбинаций слов слишком велико.

Мы оцениваем нашу общую успешность примерно в ~45% (Standard) / ~65% (Deep) / ~75% (Max) для RC4-128/AES-128, и ~20% (Standard) / ~30% (Deep) / ~38% (Max) для AES-256. Мы показываем вам эту оценку до начала, и берём плату только если найдём пароль.

Без бэкдоров, без магии

Нет секретного бэкдора в AES или RC4. Нет способа обойти шифрование без пароля. Каждый «разблокировщик PDF», который утверждает обратное, либо лжёт, либо говорит о паролях владельца (которые полностью отличаются и не связаны с шифрованием).

То, что мы делаем, — это хорошо изученный, многолетний криптоанализ. Единственные переменные — это время и вычислительная мощность. Если пароль есть в наших словарях или достаточно короток для перебора, мы его найдём. Если нет, никто не сможет — и мы честно вам об этом скажем.

Готовы попробовать? Загрузите свой PDF и увидите результат бесплатного быстрого теста за секунды.

Готовы, когда Вы готовы

Разблокируйте PDF за следующие 60 секунд

Бесплатно для паролей владельца. Платите только если найдём — для паролей на открытие. Без аккаунта. Без карты. Только файл и результат.