HalltapePassBot
HallTapePassBot
Удобный telegram бот для генерации паролей и проверки их надежности
Бот доступен по ссылке в телеграм HallTapePassBot
Функции, доступные в боте:
- Генерация легкого для запоминания пароля
Nag_Neg2*
- Генерация сложного пароля
4E4wCsph4swaCN72KE
- Генерация пароля для соц сетей
Dide_google_Vino5?*
- Генерация пароля со своим словом
Omu_github_Ahi3$*
- Проверка пароля на надежность. Например пользователь ввел свой пароль amsterdam
❌ Тебе нужно усилить твой пароль!
⚠️ Нет цифр
⚠️ Нет букв в верхнем регистре
⚠️ Нет специальных символов
⚠️ Твой пароль полностью или частично слит в сеть
⬇️ Слитые пароли
amsterdam
Amsterdam
AMSTERDAM
amsterda
amster
mster
⏳ На его взлом уйдет 23 минуты
Надежность пароля 43 %
- Генерация никнейма
Jenny_While
Mercy_Dad
Badly_Drawn
Описание
Основной файл, где запускается скрипт бота называется main.py. Алгоритм генерации легкого для запоминания пароля собирает в случайном порядке буквы, чередуя согласные с гласными. При этом создаются псевдо-слова длиной от 3 до 5 букв включительно. В конце каждого пароля добавляются одна цифра и специальный символ.
Пароли для соц сетей собираются по аналогичному принципу, за исключением добавления ключевого слова в центр всей конструкции. Также возможно добавить свое уникальное слово.
Также бот всегда предлагает либо усложнить пароль, в случае негативного ответа, либо сделать красивее, если пароль является надежным. Алгоритм в обоих случаях идентичен. Из строки с паролем сначала вычленяются все гласные, согласные, цифры и символы в отдельные списки, а далее уже из этого собирается новый пароль. В случае, если элементов недостаточно, программа сама добавит свои.
При нажатии кнопки Сложный пароль, бот генерирует случайный набор элементов из маленьких и больших букв, цифр и специальных символов, заведомо перемешивая их в случайном порядке. Данный метод генерирует самый надежный из доступных вариантов пароль.
Функция «Создать никнейм» берет два случайных английских слова из базы данных и выводит на печать, разделяя знаком ‘_’
Оценка надежности пароля включает в себя следующие проверки:
- Наличие цифр
- Наличие маленьких букв
- Наличие больших букв
- Наличие специальных символов
- Уникальность пароля (наличие дублирующих символов)
- Наличие числовых последовательностей
- Наличие слитых паролей
Надежность пароля
В боте считается энтропия пароля. Проще говоря - это количество комбинаций пароля, учитывая количество комбинаций самих символов.
Например пароль 1Gh будет иметь:
-
10 комбинаций цифр (0123456789)
-
26 комбинаций маленьких букв (алфавит)
-
26 комбинаций больших букв (алфавит)
В итоге мы получаем (62^3) = 238 328 комбинаций нашего пароля. Чем больше комбинаций, тем дольше его подбирать и тем выше его надежность.
Время подбора пароля
Бот берет количество комбинаций пароля и делит на среднюю скорость перебора паролей в секунду (3 900 000 000 комбинаций/сек). Величина взята из интернета, как усредненная. Учитывая, что разница между временем подбора в 100 веков и в 50 веков не принципиальна, то к скорости взлома стоит относиться формально.
Сравнение обработки паролей
В таблице ниже представлено сравнение результатов проверки надежности паролей с помощью HalltapePassBot, Kaspersky и 2ip
Вы можете заметить разницу в подходах, оценить уровень обработки вводимых данных, а также работу с граничными условиями.
Всем трём сервисам были скормлены заведомо ненадежные пароли, либо содержащие спорные моменты.
- ✅ - пароль надежный
- ❌ - пароль ненадежный
Пароль | HalltapeBot | Kaspersky | 2ip |
---|---|---|---|
qwerty435345 | ❌ | ❌ | ✅ |
Комментарий | Слитый пароль | Часто используемое слово | Надёжный |
3U54134(B55 | ❌ | ❌ | ❌ |
Комментарий | ⚠️ Нет букв в нижнем регистре ⚠️ Больше четырех чисел друг за другом Надежность пароля 69 % | Используются "клавиатурные" последовательности | Ненадёжный |
3U54134(B55k | ❌ | ✅ | ✅ |
Комментарий | ⚠️ Больше четырех чисел друг за другом Надежность пароля 81 % | Надёжный | Надёжный |
uuuuuuuuuuuuuu | ❌ | ❌ | ✅ |
Комментарий | ⚠️ Нет цифр ⚠️ Нет букв в верхнем регистре ⚠️ Нет специальных символов ⚠️ Повторяющиеся символы ⚠️ Малая уникальность пароля Слитый пароль | Используются "клавиатурные" последовательности | Надёжный |
bl00d1992bmw$ | ❌ | ✅ | ✅ |
Комментарий | ⚠️ Нет букв в верхнем регистре Слитый пароль | Надёжный | Надёжный |
Mek_Wor3_ | ✅ | ❌ | ❌ |
Комментарий | На его взлом уйдет 5 лет | Часто используемое слово | Ненадёжный Пароль может быть взломан за 9321 час |
Добавим | в пароль | слово | |
Mek_Wor3_google | ✅ | ✅ | ✅ |
Комментарий | Солнце уже потухнет, а твой пароль все еще будут подбирать | Для подбора вашего пароля потребуется 470 веков | Надёжный |
Пароль Mek_Wor3_ содержит в себе псевдо слова, но Касперский и 2ip посчитали его ненадежным. При этом добавление слова google внезапно делает его надежным.
В общем случае возможность генерировать пароль типа Mek_Wor3_ создана для того, чтобы его можно было легко запомнить и в случае необходимости усложнить, добавлением названия сайта или приложения.
Вне зависимости от генератора паролей, самым надежным шифром всегда останется случайный набор из букв(маленьких и больших), цифр и специальных символов длиной от 10 элементов. Поэтому при возможности используйте пароли типа Fg264TtFxzW2Vx9n8#
Языки
Python
- Dockerfile