Всё, что вы хотели узнать о взломе паролей…

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

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

Для чего вообще нужно ломать пароли?

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

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

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

Стойкое шифрование?

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

А ломать пароли — законно?

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

Миллион паролей в секунду — это много или мало?

Мы разработали инструмент, позволяющий использовать вычислительные ресурсы современных многоядерных процессоров и мощных видеокарт для максимально возможного ускорения перебора. Мы часто публикуем результаты бенчмарков, в которых указывается количество паролей в секунду, которые можно перебрать на той или иной аппаратной конфигурации для того или иного формата. Цифры отличаются на многие порядки. Для некоторых форматов скорость атаки объективно невелика и составляет единицы паролей в секунду даже на мощном «железе»; для других возможны скорости в миллионы и даже десятки миллионов паролей в секунду.

Так миллион — это много или мало? Правильной постановкой вопроса будет либо «пароль какой длины и сложности можно найти за фиксированное время, если скорость перебора — миллион паролей в секунду», либо «какое время займёт гарантированное восстановление пароля заданной длины и сложности, если скорость перебора — миллион»; для обоих случаев есть формулы, позволяющие дать точный ответ.

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

Например, если скорость перебора на компьютере для файла составит 10 миллионов комбинаций в секунду, на восстановление пароля, состоящего только из 5 букв латиницы в обоих регистрах уйдёт не более пяти минут. Если скорость составляет 100 паролей в секунду, а пароль содержит не менее 7 символов из расширенного диапазона, то максимальное время атаки увеличивается примерно до 700 миллиардов секунд или ~ 22 тысяч лет. Формулы для расчёта времени атаки, а также много другой полезной информации — в нашем руководстве:

Руководство по взлому паролей здорового человека

Как проверить скорость перебора? Достаточно просто запустить атаку?

Для проверки скорости перебора просто запустить атаку недостаточно. Первые секунды (иногда — минуты) будут потрачены на формирование нужного кода и загрузку его в память видеокарты или видеокарт. Соответственно, после запуска атаки нужно подождать какое-то время.

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

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

Зачем нужны видеокарты? Распределённые атаки лучше или хуже?

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

Что приводит нас к возможностям современных видеокарт, которые благодаря узкой специализации и распараллеливанию простейших операций на тысячи потоков значительно превосходят CPU в таких задачах, как преобразование пароля в ключ шифрования. Видеокарты, обладающие большим количеством вычислительных ядер, могут перебирать пароли гораздо быстрее обычных процессоров. Прирост производительности на видеокарте NVIDIA RTX 4080 Super для некоторых форматов достигает 500-кратного преимущества по сравнению с самым мощным центральным процессором.

Почему видеокарты не заменят центральный процессор?

Если видеокарты настолько быстрее центрального процессора, почему они до сих пор не вытеснили традиционные CPU? Проблема кроется в особенностях архитектуры. Видеокарты в силу своей архитектуры могут распараллелить одну и ту же операцию с разными данными на входе на тысячи потоков. Это — ровно то, что нужно для перебора паролей (и не только для него). На обычном же CPU все ядра могут работать полностью независимо, что необходимо для большинства повседневных задач. Таким образом, каждое из тысяч (иногда — десятков тысяч) ядер GPU медленнее каждого отдельного ядра центрального процессора; выполнять эти ядра могут только одну и ту же операцию одновременно. Зато их — много; для проверки паролей это именно то, что нужно. В результате любая относительно современная дискретная видеокарта и даже многие встроенные графические ядра могут перебирать пароли значительно быстрее, чем центральный процессор. Использование даже очень старых видеокарт даёт зримое преимущество, не говоря о более современных моделях. Подробнее о том, как работает ускорение на видеокартах, в статье:

Перебор паролей на картах NVIDIA RTX

Иногда для взлома пароля не хватает производительности даже нескольких видеокарт, установленных в один корпус. В этом случае на помощь приходят распределённые вычисления (слово «Distributed» в названии продукта Elcomsoft Distributed Password Recovery присутствует не напрасно). Распределённые вычисления для взлома паролей — это лучше или хуже видеокарт?

Ответ чуть сложнее, чем кажется. С одной стороны, если формат данных, на который производится атака, хорошо «ложится» на GPU, то использование даже простейшей видеокарты даст прирост производительности, превышающий возможности крупной вычислительной сети из сотни машин, такими видеокартами не оборудованных. С другой — если в каждом компьютере установить максимально допустимое число видеокарт, то их объединение в вычислительную сеть даст кратное преимущество по сравнению с единственным компьютером. С третьей — существуют алгоритмы, которые невозможно реализовать на видеокартах; в этом случае распределённая вычислительная сеть — единственный способ ускорить атаку.

Вывод: распределённая сеть лучше, но прежде, чем собирать такую сеть, каждый входящий в неё компьютер нужно укомплектовать мощными видеокартами.

Какую видеокарту выбрать для взлома паролей?

Самую мощную из актуальной линейки NVIDIA, которую позволяет ваш бюджет. За небольшие деньги можно купить видеокарту предыдущего поколения. Цена мощной видеокарты прошлого сезона может быть сравнимо со стоимостью актуального «середнячка». Что выбрать? В любом случае стоит остановить свой выбор на самой мощной карте из актуальной линейки NVIDIA, которую позволяет ваш бюджет. О причинах — в статье:

Перебор паролей на картах серии NVIDIA RTX 40: быстрее и тише

Разобраться в актуальной линейке NVIDIA может быть непросто; сейчас на рынке представлены модели GeForce RTX 4060 нескольких разновидностей, 4070, 4070 Ti, 4070 Super и 4070 Ti Super, 4080 и 4080 Super, а также топ линейки — NVIDIA RTX 4090.

NVIDIA RTX 40 Series: выбор актуальной модели для перебора паролей

А что насчёт ускорителей FPGA/ASIC?

Ускорители на основе FPGA используют интересные и энергоэффективные технологии, позволяющие решать некоторые виды задач с меньшими затратами электроэнергии по сравнению с видеокартами с аналогичной производительностью. Недостаток таких ускорителей — высокая цена. Этого недостатка лишены ускорители ASIC. Если реализовать на них перебор паролей, можно достичь аналогичных FPGA скоростей при заметно меньшей цене. Однако достичь низких цен можно лишь при массовом производстве таких ускорителей, а спрос на подобного рода технику ограничен. Поскольку эти технологии достаточно экзотичны, выбор программного обеспечения, которое их поддерживает, будет чрезвычайно ограничен, и наш продукт в их число не входит; соответственно, мы рекомендуем обратить внимание на энергоэффективные модели видеокарт.

Энергоэффективность? Почему это важно?

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

Рабочая станция для перебора паролей: охлаждение и теплоотвод

Имеет смысл почитать об энергоэффективности конкретных моделей видеокарт:

Изучаем энергоэффективность современных видеокарт для перебора паролей

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

Чем зашифрованы данные? Пароль и ключ шифрования — одно и то же?

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

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

Шифрование != хеширование. Как шифруются документы и защищаются пароли

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

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

Восстановление паролей к архивам: форматы ZIP, RAR5 и 7Zip

Какие атаки бывают?

Перебирать пароли можно по-разному. В Elcomsoft Distributed Password Recovery поддерживаются полный перебор, перебор по маске, словарные атаки с мутациями и без них, а также гибкая генерация паролей по заданным правилам.

Самый простой и интуитивно понятный способ — полный перебор, при котором последовательно перебираются все возможные комбинации паролей. Однако простота эта кажущаяся; на практике действительно «полный» перебор зачастую неосуществим. Как правило, под «полным перебором» понимают атаку по ограниченному подмножеству символов — скажем, только буквы латиницы в обоих регистрах, цифры и очень ограниченный набор специальных символов. Практически никогда не используется перебор по всему набору символов Unicode. Причина проста: в актуальной версии стандарта Unicode определено 149,186 символов. Таким образом, пароль, состоящий всего из трёх знаков, можно было бы перебирать вечность. С другой стороны, даже пароли, содержащие одновременно символы кириллицы, латиницы, арабской вязи и китайских иероглифов практически не встречаются — а ведь этот набор является лишь малым подмножеством стандарта Unicode. Подробнее о том, почему «полный» перебор никогда не полный — в статье

Такой неполный полный перебор

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

 

Перебор пароля: грубая сила против смекалки

Более подробно про словарные атаки, маски и мутации можно почитать здесь:

Восстановление паролей: какие бывают словари

Порядок имеет значение

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

Порядок имеет значение: как правильно организовать очередь восстановления паролей

Одним из самых трудных случаев является «холодная» атака, когда о личности владельца зашифрованной информации ничего не известно. Как поступить, когда есть зашифрованные файлы или диски, но если нет никакой информации об их владельце? Даже в этом случае остаются варианты:

Холодная атака: какой пароль взломать первым?

Такие разные форматы данных

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

  1. Перебор прекрасно работает на GPU; центральный процессор практически не используется
  2. Перебор работает только на CPU; GPU неприменим
  3. Большую и самую ресурсоёмкую часть вычислений выполняет GPU, но CPU тоже используется (иногда — несколько ядер)

С тем, для чего нужен и как используется процессор видеокарты (GPU), мы уже разобрались. Если есть возможность запустить задачу на многих тысячах вычислительных ядер видеокарты, использовать считанные единицы (даже десятки) ядер центрального процессора уже бессмысленно: прирост производительности будет мизерным, а накладные расходы сильно возрастут. Таких форматов на сегодняшний день большинство, но на наших глазах начинается переход с алгоритмов, которые можно оптимизировать на GPU, на алгоритмы другого класса, специально сделанные так, чтобы нельзя было запустить перебор на видеокарте.

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

Другая причина — алгоритмы хэширования, специально разработанные так, чтобы исключить атаки с использованием видеокарт. Как это возможно? Исключительно просто: достаточно сделать так, чтобы для вычисления контрольной суммы потреблялся достаточно существенный объём памяти. Объём потребной для вычисления хэша памяти подбирается таким образом, чтобы даже на самых слабых компьютерах не возникло проблем при проверке единственного пароля, а одновременный запуск проверки в сотне или тысяче потоков приводил бы к мгновенному переполнению памяти. Именно так работает алгоритм Scrypt, использованный в утилите BestCrypt.

Наконец, некоторые алгоритмы требуют одновременного использования как ядер видеокарт, так и вычислительных ядер процессора. Как правило, основная нагрузка приходится всё же на видеокарту; центральный процессор играет важную, но вспомогательную роль.

К слову, серьёзно нагружают центральный процессор и любые атаки за исключением полного перебора. Да, «умные» атаки в целом намного эффективнее — но их скорость всегда ниже, чем у полного перебора. Для таких форматов, скорость перебора паролей для которых относительно невелика, мы используем вычислительные ядра центрального процессора для подготовки пачек паролей для проверки. Если же перебор для какого-то формата очень быстрый, то центральный процессор уже не справляется с подготовкой списков паролей, и их приходится генерировать прямо на GPU, что дополнительно нагружает видеокарту и замедляет перебор.

О том, какие форматы невозможно ускорить на видеокартах и почему — в статье об интересном продукте BestCrypt, авторы которого использовали хэш-функцию, специально разработанную, чтобы противостоять атакам на GPU:

Подбор паролей к зашифрованным дискам BestCrypt Volume Encryption 4 и 5

Вместо заключения

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

Когда ломать пароль нет необходимости: гарантированная расшифровка старых документов MS Office

Гарантированная расшифровка документов Microsoft Office: файлы DOC и XLS

Подробнее об эволюции защиты в приложениях Microsoft Office:

Эволюция шифрования Microsoft Office: от Word 2.0 до Office 2019

Время от времени хакеры публикуют списки украденных и взломанных паролей. Составленные из этих списков словари позволяют заметно повысить эффективность «холодных» атак:

Использование утечек паролей для ускорения атак

Как вскрыть до 70% паролей за несколько минут

 


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

REFERENCES:

Elcomsoft Distributed Password Recovery

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

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

НАШИ НОВОСТИ