25 GPU взламывают пароли за считанные минуты


Недавняя демонстрация того, как графические процессоры могут ускорить процесс, и не всегда во благо, пришла в виде машины на 25 графических процессоров, которая может взламывать пароли за считанные минуты — но что именно означает «взломать пароль»?

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

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

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

Такая хеш-функция является «строго односторонней», то есть вы можете легко вычислить y = H (x), но с учетом y вычислить x очень сложно. В этой схеме происходит следующее: когда пользователь устанавливает пароль, применяется хеш-функция h = H (p), и в файле пароля сохраняется только хеш-значение h. Когда пользователь входит в систему, к паролю применяется хеш-функция, и если он совпадает с сохраненным хешем, то пользователю разрешается доступ.

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

Это то, что было представлено на конференции Passwords ^ 12 в Осло. Рассматриваемый суперкомпьютер представлял собой кластер графических процессоров в наборе серверов 4U. В общей сложности у него было 25 графических процессоров AMD Radeon, которые сжигали 7 кВт электроэнергии. Система была связана VIrtual Open CL (VCL), что позволяло OpenCL работать с графическими процессорами, как если бы все они были установлены на одном процессоре. Для выполнения этой работы серверы были подключены с использованием сети Infiniband 10 Гбит / с — похоже, нет возможности заставить серверы работать как один при медленном подключении к Интернету. Используемое программное обеспечение для взлома паролей было модифицировано Hashcat для поддержки нескольких графических процессоров. Теоретически он мог бы работать со 128 GPUS, если бы они были доступны.

Результаты этого простого в сборке суперкомпьютера впечатляют. Он может проверять 348 миллиардов хеш-значений, используемых NT Lan Manager (NTLM) в секунду. Например, Windows XP использует короткий пароль с простым хешированием, и его пароли можно взломать примерно за 6 минут. Для более надежного NTLM требуется около пяти с половиной часов для 8-значного пароля.

Однако еще не все потеряно, поскольку более сложные хеш-функции, такие как md5crypt и sa512crypt, занимают гораздо больше времени, но более простые методы — в частности, хеш-методы Microsoft LM и NTLM очень легко взломать.

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

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


Добавить комментарий