logo

Решить лимит онлайн

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

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

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

Самые короткие хеши получаются при использовании Adler-32, CRC32 и других алгоритмов с длиной дайджеста 32 бита. Кроме них, существует с десяток других популярных хеш-функций, и большинство из них способно рассчитывать дайджесты промежуточной длины: 160, 224, 256 и 384 бита. Предельный объем исходных данных, который может обработать хеш-функция, определяется формой их представления в алгоритме. Обычно они записываются как целое 64-битное число, поэтому типичный лимит составляет 264 бит минус единица, или два эксабайта. Такое ограничение пока не имеет практической значимости даже для очень крупных дата-центров.

Дело в том, что число вариантов возможных паролей теоретически бесконечно, а вот число хешей всегда конечное, хоть и очень большое. Дайджесты любой хеш-функции будут уникальны лишь до определенной степени. К примеру, алгоритм CRC32 дает множество всего из 232 вариантов, и в нем трудно избежать повторений. На эффекте коллизии основан взлом разных криптографических систем — в частности, протоколов авторизации. Глядя на полученный дайджест, нельзя понять ни объем исходных данных, ни их тип. Однако можно решить сходную задачу: сгенерировать пароль с таким же хешем.

Методы оптимизации расчетов появляются буквально каждый год. В результате на каждое короткое сочетание печатных символов или вариант из списка типичных паролей хеши уже вычислены. Их можно быстро сравнить с перехваченным, пока не найдется полное совпадение. Раньше на это требовались недели или месяцы процессорного времени, которые в последние годы удалось сократить до нескольких часов благодаря многоядерным процессорам и перебору в программах с поддержкой CUDA и OpenCL. Админы нагружают расчетами таблиц серверы во время простоя, а кто-то арендует виртуальный кластер в Amazon ЕС2.

Где-то требуется регистрация и крутится тонна рекламы, а на многих сайтах можно встретить и объявления об услуге платного взлома. Часть из них действительно использует мощные кластеры и загружает их, ставя присланные хеши в очередь заданий, но есть и обычные пройдохи. Они выполняют бесплатный поиск за деньги, пользуясь неосведомленностью потенциальных клиентов. Вместо того чтобы рекламировать здесь честные сервисы, я предложу использовать другой подход — находить пары хеш — пароль в популярных поисковых системах. Их роботы-пауки ежедневно прочесывают веб и собирают новые данные, среди которых есть и свежие записи из радужных таблиц. Параллельно у функций с длиной хеша от 128 бит находят недостатки в самом алгоритме или его конкретных реализациях, что сильно упрощает взлом. В девяностых годах крайне популярным стал алгоритм MD5, написанный Рональдом Ривестом.

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

Например, с помощью такой атаки можно подделать цифровой сертификат х. Более того, в большинстве наборов доверенных сертификатов легко найти те, которые по-прежнему используют алгоритм MD5 для подписи. Огромная масса коротких и словарных паролей сегодня вскрывается за пару секунд с помощью онлайн-сервисов. Проект Убийца хешей существует уже почти восемь лет. Он помогает вскрыть дайджесты MD5, SHA-160 и NTLM.