Пароли стали первой линией защиты ваших цифровых учетных записей, но задумывались ли вы когда-нибудь, насколько легко их взломать? Создание надежных и уникальных паролей — это не просто мимолетный совет, это необходимость защитить ваши данные.
Чтобы убедиться, что пароли, которые я использую, эффективны, я решил попробовать взломать свои собственные пароли с помощью инструмента с открытым исходным кодом. Я протестировал три разных пароля, чтобы понять, как работают распространенные атаки, и выяснить, что делает пароль более защищенным от хакеров.
В этой статье я делюсь своими выводами и практическими советами, которые помогут повысить безопасность ваших паролей и обеспечить безопасность ваших данных.
Быстрые ссылки
Что значит взломать пароль?
Когда вы создаете учетную запись с помощью онлайн-сервиса, провайдер обычно (и, будем надеяться, будет) шифрует ваши данные для входа на свой сервер. Это делается с помощью алгоритма создания «фрагментация«, который представляет собой случайную строку букв и цифр, уникальную для вашего пароля. Конечно, на самом деле это не случайность — это очень специфическая строка символов, которую может сгенерировать только ваш пароль, — но для неподготовленного глаза это выглядит как беспорядок.
Преобразовать слово в хэш гораздо быстрее и проще, чем снова «деконструировать» хеш в слово. Итак, когда вы устанавливаете пароль, служба, в которую вы входите, пропускает пароль через хэш, а затем сохраняет результат на своем сервере.
Если указанный файл с паролями станет известен, хакеры попытаются узнать его содержимое с помощью взлома пароля. Поскольку шифрование пароля происходит быстрее, чем его расшифровка, хакеры настраивают систему, которая принимает потенциальные пароли в качестве входных данных, шифрует их тем же методом, который использует сервер, а затем сравнивает результат с базой данных паролей.
Если хэш-значение потенциального пароля совпадает с какими-либо записями в базе данных, хакер знает, что каждый результат соответствует Возможный пароль Что было опробовано.
Как я взломал свои пароли с помощью HashCat
Что ж, давайте начнем взламывать некоторые из паролей, которые вы создали, чтобы увидеть, насколько это просто. Для этого я буду использовать Hashcat, бесплатное приложение для взлома паролей с открытым исходным кодом, доступное каждому.
В этих тестах я взломаю следующие пароли:
- 123456Классический пароль и кошмар кибербезопасности: 123456 — самый используемый пароль в мире. Она посчитала Северный перевал В 3 миллионах учетных записей использовалось 123456 1.2 паролей, XNUMX миллиона из которых предназначались для защиты учетных записей на корпоративном уровне.
- Сьюзен48!: пароль, соответствующий шаблонам, которые большинство пользователей используют для создания безопасного пароля. Это ключевое слово обычно соответствует основным требованиям к гигиене паролей, но, как мы увидим позже, оно содержит некоторые критические уязвимости, которыми можно воспользоваться.
- t9^kJ$2q9a: пароль, который вы создали с помощью Генератор битвардена. Он настроен на создание пароля длиной 10 символов с использованием прописных и строчных букв, символов и цифр.
Теперь, когда у нас были пароли, я зашифровал их с помощью MD5. Вот как будут выглядеть пароли, если они находятся в файле паролей, сохраненном на сервере:
- 123456: e10adc3949ba59abbe56e057f20f883e
- Сьюзен48!: df1ce7227606805745ee6cbc644ecbe4
- t9^kJ$2q9a: 450e4e0ad3ed8766cb2ba83081c0a625
Теперь пришло время сломать это.
Выполните простой разрыв, используя атаку по словарю
Давайте начнем, давайте начнем Атака по словарю, что является одним из наиболее распространенных способов взлома паролей. Это простая атака, при которой я создаю список возможных паролей, приказываю Hashcat преобразовать их в MD5 и смотрю, соответствует ли какой-либо из них трем записям выше. В этом эксперименте я использую файл «rockyou.txt» в качестве словаря, который стал одной из крупнейших утечек паролей в истории.
Чтобы начать процесс взлома, я захожу в папку, где находится Hashcat, щелкаю правой кнопкой мыши по пустому месту и затем нажимаю «Открыть в терминале». Теперь, когда Терминал открыт и ему присвоен каталог Hashcat, я вызываю приложение Hashcat с помощью следующей команды:
.\hashcat -m 0 -a 0 passwordfile.txt rockyou.txt -o results.txt
Вот что делает команда:
- .\хэшкэт Вызывает Хэшката.
- -m 0: указывает шифрование, которое мы будем использовать. В этом случае мы будем использовать MD5, который указан как 0 в справочном документе Hashcat.
- -а 0: указывает атаку, которую мы хотим выполнить. В справочном документе Hashcat атака по словарю указана как 0, поэтому мы называем ее здесь.
- файл пароля.txt rockyou.txtПервый файл содержит три зашифрованных пароля, которые мы подготовили ранее. Второй файл — это вся база данных паролей Rockyou.
- -o результаты.txt: эта переменная определяет, куда мы поместим результат. Команда, которую я выполнил, помещает взломанные пароли в TXT-файл под названием «results».
Несмотря на огромный размер rockyou, Hashcat просканировал все содержимое за шесть секунд. В файле результатов Hashcat сообщил, что смог взломать пароль 123456, но пароли Сьюзен и Bitwarden остались нескомпрометированными. Это связано с тем, что пароль 123456 использовался кем-то другим в файле rockyou.txt, но никто больше не использовал пароли Сьюзан или Bitwarden, а это означает, что он был достаточно уникален, чтобы оставаться в безопасности от этой атаки.
Выполните более сложный взлом, используя атаки грубой силы и маски.
Атаки по словарю работают, когда кто-то использует один и тот же пароль в большем списке паролей. Это быстро и легко сделать, но это невозможно. Взлом пароля В словаре не найдено. Поэтому, если мы хотим действительно проверить наши пароли, нам нужно использовать атаки грубой силы.
Если атака по словарю заключается в взятии заранее определенного списка и преобразовании его один за другим, атаки методом перебора делают то же самое, но со всеми возможными наборами комбинаций. Это сложнее реализовать и занимает больше времени, но в конечном итоге это приведет к взлому любого пароля. Как мы скоро увидим, эта возможность иногда может занять очень много времени.
Это команда, которую я использовал для выполнения «настоящей» атаки методом перебора:
.\hashcat -m 0 -a 3 target.txt --increment ?a?a?a?a?a?a?a?a?a?a -o output.txt
Вот что делает команда:
- –в 3: эта переменная определяет атаку, которую мы хотим выполнить. В справочной документации Hashcat атакам методом перебора указано число 3, поэтому мы называем их здесь.
- целевой.txt: файл, содержащий зашифрованный пароль, который мы хотим взломать.
- - увеличить: Это говорит Hashcat попробовать все пароли, состоящие из одной буквы, затем из двух, затем из трех и так далее, пока мы не получим решение.
- ?а?а?а?а?а?а?а?а?а?а?а?а?а: Это называется «маска». Маски позволяют нам сообщать Hashcat, какие символы и где использовать. Каждый вопросительный знак указывает позицию буквы в пароле, а буква указывает, что мы пытаемся сделать в каждой позиции. Буква «а» представляет собой прописные и строчные буквы, цифры и символы, поэтому эта маска говорит: «Попробуйте все в каждой коробке». Это ужасная маска, но позже мы найдём ей хорошее применение.
- -o вывод.txt: эта переменная определяет, куда мы поместим результат. Моя команда помещает сломанные пароли в файл TXT под названием «выход».
Даже с этой ужасной маской пароль 123456 был взломан за 15 секунд. Хотя это самый распространенный пароль, он также является одним из самых слабых.
Пароль был «Сьюзен48!» Гораздо лучше — мой компьютер сказал, что на его слепой взлом уйдет четыре дня. Однако была одна проблема. Помните, я говорил, что пароль Сьюзен имеет некоторые критические недостатки? Самым большим из них является то, что пароль должен быть предсказуемым.
Когда мы создаем пароль, мы обычно размещаем определенные элементы в определенных местах. Вы можете себе представить, что человеком, создающим пароль, является Сьюзен, которая первоначально пыталась использовать «Сьюзен», но ее попросили добавить заглавные буквы и цифры. Чтобы было легче запомнить, он написал первую букву с заглавной буквы и добавил в конце цифры. Затем одна из служб входа могла запросить код, поэтому наш генератор паролей вставил его в конце.
Следовательно, мы можем использовать маску, чтобы указать Hashcat пробовать только определенные символы в определенных местах, чтобы использовать предсказуемость людей при создании пароля. В этой маске «?u» будет использовать только заглавные буквы в этой позиции, «?l» будет использовать только строчные буквы, а «?a» представляет любую букву:
.\hashcat -m 0 -a 3 -1 ?a target.txt ?u?l?l?l?l?a?a?a -o output.txt
Используя эту маску, Hashcat взламывает пароль за три минуты десять секунд, что намного быстрее, чем четыре дня.
Пароль, сгенерированный Bitwarden, имеет длину десять символов и не использует каких-либо предсказуемых шаблонов, поэтому мне приходится проводить атаку методом перебора без какой-либо маски, чтобы взломать его. К сожалению, когда я попросил Hashcat сделать это, он выдал ошибку, сообщающую, что количество возможных комбинаций превысило целочисленный предел. Он говорит Гуру информационной безопасности Чтобы взломать пароль Bitwarden, потребуется три года, так что для меня этого достаточно.
Как защитить свои учетные записи от взлома паролей
Итак, чему мы можем научиться из всего этого? Основными факторами, которые помешали мне взломать пароль Bitwarden, были его длина (10 символов) и непредсказуемость. Поэтому при создании паролей старайтесь делать их как можно более длинными и добавлять в пароль символы, цифры и заглавные буквы. Это не позволяет хакерам использовать маски для прогнозирования местоположения каждого предмета и затрудняет взлом.
Вы, наверное, уже знаете старые поговорки о паролях, такие как «Используйте диапазон символов» и «Делайте его как можно более длинным». Мы надеемся, что вы знаете, почему люди рекомендуют эти полезные советы — в них заключается разница между быстро взломанным паролем и безопасным. Теперь вы можете просмотреть Как эти простые настройки сделали мои пароли более безопасными и простыми.