В криптоанализе и компьютерной безопасности взлом паролей — это процесс угадывания паролей [1] , защищающий компьютерную систему . Распространенный подход ( атака методом грубой силы ) заключается в многократном переборе вариантов пароля и проверке их с помощью имеющегося криптографического хеша пароля. [2] Другой тип подхода — это распыление паролей , которое часто автоматизировано и происходит медленно с течением времени, чтобы оставаться незамеченным, используя список распространенных паролей. [3]
Целью взлома паролей может быть помощь пользователю в восстановлении забытого пароля (поскольку установка совершенно нового пароля потребует привилегий системного администратора), получение несанкционированного доступа к системе или выполнение превентивной меры, посредством которой системные администраторы проверяют пароли на наличие легко взламываемых. На пофайловой основе взлом паролей используется для получения доступа к цифровым доказательствам, к которым судья разрешил доступ, когда разрешения на определенный файл ограничены.
Время взлома пароля связано с битовой прочностью, которая является мерой энтропии пароля , и подробностями того, как хранится пароль. Большинство методов взлома паролей требуют, чтобы компьютер создал много паролей-кандидатов, каждый из которых проверяется. Одним из примеров является взлом методом перебора , при котором компьютер пробует каждый возможный ключ или пароль, пока не добьется успеха. При наличии нескольких процессоров это время можно оптимизировать, выполняя поиск с последней возможной группы символов и начала одновременно, при этом другие процессоры размещаются для поиска по назначенному выбору возможных паролей. [4] Более распространенные методы взлома паролей, такие как атаки по словарю , проверка шаблонов и вариации общих слов, направлены на оптимизацию количества попыток и обычно применяются перед атаками методом перебора. Более высокая битовая прочность пароля экспоненциально увеличивает количество паролей-кандидатов, которые необходимо проверить в среднем для восстановления пароля, и снижает вероятность того, что пароль будет найден в любом словаре для взлома. [5]
Возможность взлома паролей с помощью компьютерных программ также является функцией количества возможных паролей в секунду, которые могут быть проверены. Если злоумышленнику доступен хэш целевого пароля, это число может составлять миллиарды или триллионы в секунду, поскольку возможна офлайн-атака . Если нет, скорость зависит от того, ограничивает ли программное обеспечение аутентификации частоту попыток ввода пароля, либо задержками по времени, либо CAPTCHA , либо принудительными блокировками после некоторого количества неудачных попыток. Другая ситуация, когда возможно быстрое угадывание, — это когда пароль используется для формирования криптографического ключа . В таких случаях злоумышленник может быстро проверить, успешно ли угаданный пароль декодирует зашифрованные данные.
Для некоторых видов хэшей паролей обычные настольные компьютеры могут проверять более ста миллионов паролей в секунду с помощью инструментов взлома паролей, работающих на универсальном процессоре, и миллиарды паролей в секунду с помощью инструментов взлома паролей на базе графического процессора [1] [6] [7] bcrypt , на много порядков лучше, чем наивная функция, такая как простая MD5 или SHA . Выбранный пользователем восьмисимвольный пароль с цифрами, смешанным регистром и символами, с отфильтрованными обычно выбранными паролями и другими совпадениями из словаря, достигает предполагаемой 30-битной прочности, согласно NIST. 2 30 — это всего лишь один миллиард перестановок [9] и была бы взломана за секунды, если бы функция хэширования была наивной. Когда обычные настольные компьютеры объединяются в попытке взлома, как это может быть сделано с помощью ботнетов , возможности взлома паролей значительно расширяются. В 2002 году distributed.net успешно нашел 64-битный ключ RC5 за четыре года, в ходе работы, которая включала более 300 000 различных компьютеров в разное время и которая генерировала в среднем более 12 миллиардов ключей в секунду. [10]
) . [8] Скорость угадывания пароля в значительной степени зависит от криптографической функции, используемой системой для генерации хэшей паролей. Подходящая функция хэширования паролей, такая какГрафические процессоры могут ускорить взлом паролей в 50–100 раз по сравнению с компьютерами общего назначения для определенных алгоритмов хеширования. Например, в 2011 году доступные коммерческие продукты заявляли о возможности проверки до 2 800 000 000 паролей NTLM в секунду на стандартном настольном компьютере с использованием высокопроизводительного графического процессора. [11] Такое устройство может взломать 10-буквенный однобуквенный пароль за один день. Работу можно распределить между многими компьютерами для дополнительного ускорения, пропорционального количеству доступных компьютеров с сопоставимыми графическими процессорами. Однако некоторые алгоритмы работают медленно или даже специально разработаны для медленной работы на графических процессорах. Примерами являются DES , Triple DES , bcrypt , scrypt и Argon2 .
Аппаратное ускорение в GPU позволило использовать ресурсы для повышения эффективности и скорости атаки методом перебора для большинства алгоритмов хеширования. В 2012 году Stricture Consulting Group представила кластер из 25 GPU, который достиг скорости атаки методом перебора в 350 миллиардов попыток угадать пароли NTLM в секунду, что позволило им проверить комбинации паролей за 5,5 часов, что достаточно для взлома всех 8-символьных буквенно-цифровых-специальных паролей, обычно используемых в корпоративных настройках. Используя ocl- Hashcat Plus на платформе виртуального кластера OpenCL , [12] кластер GPU на базе Linux использовался для «взлома 90 процентов из 6,5 миллионов хэшей паролей, принадлежащих пользователям LinkedIn». [13]
Для некоторых конкретных алгоритмов хеширования ЦП и ГП не подходят. Для работы на высоких скоростях требуется специальное оборудование. Пользовательское оборудование может быть изготовлено с использованием технологии FPGA или ASIC . Разработка для обеих технологий сложна и (очень) дорога. В целом, FPGA выгодны в небольших количествах, ASIC выгодны в (очень) больших количествах, более энергоэффективны и быстры. В 1998 году Electronic Frontier Foundation (EFF) создала специализированный взломщик паролей с использованием ASIC. Их машина, Deep Crack , взломала 56-битный ключ DES за 56 часов, протестировав более 90 миллиардов ключей в секунду. [14] В 2017 году просочившиеся документы показали, что ASIC использовались для военного проекта, который мог взломать многие части интернет-коммуникаций с помощью более слабого шифрования. [15] С 2019 года John the Ripper поддерживает взлом паролей для ограниченного числа алгоритмов хеширования с использованием FPGA. [16] Коммерческие компании теперь используют установки на основе ПЛИС для взлома паролей. [17]
Пароли, которые трудно запомнить, снижают безопасность системы, поскольку
Аналогично, чем строже требования к надежности пароля, например, «состоящий из заглавных и строчных букв и цифр» или «меняй его ежемесячно», тем выше вероятность, что пользователи взломают систему. [18]
В «Запоминаемости и безопасности паролей» [19] Джефф Ян и др. изучают влияние советов, данных пользователям о хорошем выборе пароля. Они обнаружили, что пароли, основанные на размышлении о фразе и взятии первой буквы каждого слова, так же запоминаемы, как наивно выбранные пароли, и так же сложны для взлома, как и случайно сгенерированные пароли. Объединение двух несвязанных слов — еще один хороший метод. Наличие лично разработанного « алгоритма » для генерации непонятных паролей — еще один хороший метод.
Однако, просьба к пользователям запомнить пароль, состоящий из «сочетания заглавных и строчных букв», похожа на просьбу к пользователям запомнить последовательность битов: трудно запомнить и лишь немного сложнее взломать (например, всего в 128 раз сложнее взломать пароль из 7 букв, и еще меньше, если пользователь просто использует заглавную букву). Просьба к пользователям использовать «и буквы, и цифры» часто приводит к легко угадываемым заменам, таким как «E» → «3» и «I» → «1»: замены, которые хорошо известны злоумышленникам. Аналогично, ввод пароля на один ряд клавиатуры выше является распространенным трюком, известным злоумышленникам.
Исследования, подробно описанные в статье за апрель 2015 года несколькими профессорами Университета Карнеги-Меллона, показывают, что выбор людьми структуры пароля часто следует нескольким известным шаблонам. Например, когда требования к паролю требуют большой минимальной длины, например, 16 символов, люди склонны повторять символы или даже целые слова в своих паролях. [20] В результате пароли могут быть взломаны гораздо легче, чем в противном случае показывали бы их математические вероятности. Например, пароли, содержащие одну цифру, непропорционально включают ее в конец пароля. [20]
16 июля 1998 года CERT сообщил об инциденте, когда злоумышленник нашел 186 126 зашифрованных паролей. К моменту обнаружения нарушения было взломано уже 47 642 пароля. [21]
В декабре 2009 года произошла крупная утечка паролей Rockyou.com , которая привела к утечке 32 миллионов паролей. Затем злоумышленник слил полный список из 32 миллионов паролей (без какой-либо другой идентифицируемой информации) в Интернет. Пароли хранились в открытом тексте в базе данных и были извлечены с помощью уязвимости SQL-инъекции . Центр защиты приложений Imperva (ADC) провел анализ надежности паролей. [22] Вот некоторые из основных выводов:
В июне 2011 года НАТО (Организация Североатлантического договора) пострадала от нарушения безопасности, которое привело к публичному раскрытию имен и фамилий, имен пользователей и паролей более 11 000 зарегистрированных пользователей их электронного книжного магазина. Данные были украдены в рамках операции AntiSec , движения, в которое входят Anonymous , LulzSec и другие хакерские группы и отдельные лица. [23]
11 июля 2011 года серверы Booz Allen Hamilton , крупной американской консалтинговой фирмы, которая выполняет значительный объем работы для Пентагона , были взломаны Anonymous , и в тот же день произошла утечка. «Утечка, получившая название «Понедельник военного кризиса», включает 90 000 учетных записей военнослужащих, включая персонал из USCENTCOM , SOCOM , Корпуса морской пехоты , различных объектов ВВС , Министерства внутренней безопасности , сотрудников Госдепартамента и, по всей видимости, подрядчиков из частного сектора». [24] Было обнаружено, что эти просочившиеся пароли были хэшированы с помощью несоленого SHA-1 , и позже были проанализированы командой ADC в Imperva , выявив, что даже некоторые военнослужащие использовали такие слабые пароли, как «1234». [25]
18 июля 2011 года Microsoft Hotmail забанил пароль: «123456». [26]
В июле 2015 года группа, называющая себя «The Impact Team», украла пользовательские данные Эшли Мэдисон . [27] Многие пароли были хэшированы с использованием как относительно сильного алгоритма bcrypt , так и более слабого хэша MD5 . Атака на последний алгоритм позволила группе взлома паролей CynoSure Prime восстановить около 11 миллионов паролей в виде открытого текста. [28]
Один из методов предотвращения взлома пароля — гарантировать, что злоумышленники не смогут получить доступ даже к хэшированному паролю. Например, в операционной системе Unix хэшированные пароли изначально хранились в общедоступном файле . В современных системах Unix (и подобных) они хранятся в файле теневых паролей , доступ к которому имеют только программы, работающие с расширенными привилегиями (т. е. «системными» привилегиями). Это затрудняет получение хэшированных паролей злоумышленником в первую очередь, однако многие коллекции хэшей паролей были украдены, несмотря на такую защиту. А некоторые распространенные сетевые протоколы передают пароли в открытом виде или используют слабые схемы «вызов/ответ». [29] [30]/etc/passwd
/etc/shadow
Использование соли — случайного значения, уникального для каждого пароля, которое включается в хеширование, — предотвращает одновременную атаку на несколько хэшей, а также предотвращает создание предварительно вычисленных словарей, таких как радужные таблицы .
Другой подход заключается в объединении секретного ключа, специфичного для сайта, с хешем пароля, что предотвращает восстановление пароля в виде открытого текста, даже если хешированные значения украдены. Однако атаки повышения привилегий , которые могут украсть защищенные хеш-файлы, также могут раскрыть секрет сайта. Третий подход заключается в использовании функций вывода ключей , которые снижают скорость угадывания паролей. [31] : 5.1.1.2
Современные системы Unix заменили традиционную функцию хеширования паролей на основе DES crypt() на более сильные методы, такие как crypt-SHA , bcrypt и scrypt . [32] Другие системы также начали перенимать эти методы. Например, Cisco IOS изначально использовала обратимый шифр Виженера для шифрования паролей, но теперь использует md5-crypt с 24-битной солью, когда используется команда «enable secret». [33] Эти новые методы используют большие значения соли, которые не позволяют злоумышленникам эффективно проводить офлайн-атаки против нескольких учетных записей пользователей одновременно. Алгоритмы также выполняются намного медленнее, что резко увеличивает время, необходимое для проведения успешной офлайн-атаки. [34]
Многие хэши, используемые для хранения паролей, такие как MD5 и семейство SHA , разработаны для быстрых вычислений с низкими требованиями к памяти и эффективной реализацией на оборудовании. Несколько экземпляров этих алгоритмов могут быть запущены параллельно на графических процессорах (GPU), ускоряя взлом. В результате быстрые хэши неэффективны для предотвращения взлома паролей, даже с солью. Некоторые алгоритмы растяжения ключей , такие как PBKDF2 и crypt-SHA, итеративно вычисляют хэши паролей и могут значительно снизить скорость, с которой пароли могут быть проверены, если количество итераций достаточно велико. Другие алгоритмы, такие как scrypt , являются жесткими по отношению к памяти , то есть они требуют относительно больших объемов памяти в дополнение к трудоемким вычислениям и, таким образом, их сложнее взломать с помощью GPU и специализированных интегральных схем.
В 2013 году был объявлен долгосрочный конкурс по хешированию паролей с целью выбора нового стандартного алгоритма хеширования паролей, [35] победителем которого в 2015 году был выбран Argon2 . Другой алгоритм, Balloon , рекомендован NIST . [36] Оба алгоритма требуют много памяти.
Решения, такие как токен безопасности, дают формальный ответ- доказательство [ требуется разъяснение ] путем постоянной смены пароля. Эти решения резко сокращают временные рамки, доступные для подбора (злоумышленнику необходимо взломать и использовать пароль в течение одной смены), и они снижают ценность украденных паролей из-за их кратковременной действительности.
Существует множество программных инструментов для взлома паролей, но наиболее популярными [37] являются Aircrack-ng , Cain & Abel , John the Ripper , Hashcat , Hydra , DaveGrohl и ElcomSoft . Многие пакеты программного обеспечения для поддержки судебных разбирательств также включают функциональность взлома паролей. Большинство этих пакетов используют смесь стратегий взлома; алгоритмы с атаками методом перебора и атаками по словарю оказываются наиболее продуктивными. [38]
Возросшая доступность вычислительной мощности и удобного для новичков программного обеспечения для автоматического взлома паролей для ряда схем защиты позволила любителям скриптов заняться этой деятельностью . [39]
{{cite web}}
: CS1 maint: неподходящий URL ( ссылка ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь )