Проверка паролей по словарям и базам утекших данных

«Не менее 8 символов, включая цифры и заглавные буквы», — требует очередной сервис. «Gfhjkm2023», — набирает пользователь, не задумываясь, что он уже взломан.

Привет! Мы — RooX, российский разработчик веб-решений. У нас есть своя система аутентификации и авторизации RooX UIDM. И мы умеем проверять пароли по словарям и базам утекших данных.

Зачем вообще проверять пароли по базам? Чтобы вовремя предложить или даже заставить пользователя сменить пароль на более безопасный.

В чем опасность паролей? Опасность не в паролях, а в дизайне человека. Чтобы защитить что-то паролем, человек должен этот пароль а) придумать и б) помнить. Сервисов, в которые нужно логиниться, у современного пользователя, не один и не два. Придумывать и помнить много разных сложных паролей человеку трудно, он оптимизирует эти процессы — массово сочиняет простые пароли, а также использует одинаковые или малоотличающиеся комбинации символов для нескольких сервисов. А то, что просто придумать, просто и взломать.

Что такое проверка пароля по словарям и базам утекших данных? Если коротко, это сверка паролей и/или логинов со списком часто используемых или скомпрометированных. Алгоритмы поиска на совпадение со словарными паролями могут быть не 1-к-1 (например, без учета регистра или без учета цифр и спецсимволов).

Откуда берутся словари и базы утекших данных? Их составляют специально обученные и мотивированные люди ) Например, эксперт по безопасности из Microsoft Трой Хант создал и поддерживает сервис утекших паролей Have I Been Pwned. Есть и другие подобные сервисы: Firefox Monitor, DeHashed, GhostProject, LeakCheck. Это не просто и не все такие сервисы выживают, например, BreachAlarm остановил работу после 10 лет.

Некоторые компании создают и поддерживают свои непубличные базы.

Первые экраны сайтов Have I Been Pwned, DeHashed, LeakCheck, GhostProject.

Что касается словарных паролей, они создаются и обогащаются за счет анализа содержимого утечек. Например, российский сервис разведки утечек данных и мониторинга даркнета DLBI (Data Leakage & Breach Intelligence) ежегодно публикует исследования логинов и паролей пользователей. По их данным от февраля 2023 года топ-10 самых популярных паролей по всем утечкам с 2017 года состоит из: 123456, 123456789, qwerty123, 12345, qwerty, qwerty1, password, 12345678, 111111 и 1q2w3e.

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

Какой самый большой слив на данный момент? Лето 2021, файл RockYou2021.txt, выложен пользователем с одноименным ником RockYou2021, объем ~100 ГБ, 8,4 млрд паролей внутри (8 459 060 239 уникальных записей). Логинов в файле нет, только пароли размером от 6 до 20 символов, включая сложные пароли со спецсимволами.

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

Что будет, если украдут зашифрованный пароль? Если алгоритм шифрования не взломан и пароль не словарный, то ничего не будет. Но достаточное число сервисов шифровало (или продолжает шифровать) пароли алгоритмами MD5 и SHA1, а они, увы, уже взломаны.

Как хакеры используют эти базы? Простым перебором ищут среди пользователей того или иного сервиса тех, кто поленился придумать надежный пароль. Или берут известные в результате утечки данные пользователя с одного сервиса (логин и пароль) и применяют такую же комбинацию на других сервисах.

От перебора нас должна спасти капча, разве нет? Стандартные средства защиты от перебора (капча или автоматическая блокировка после нескольких неверных попыток ввода) могут не сработать, так как в таких случаях идет не перебор разных паролей для одного логина, а разных логинов для одного пароля.

Может, тогда нужно отказаться от паролей? Может, но не сейчас. Конечно, отчеты консалтеров о трендах мира аутентификации наполнены прогнозами о беспарольном будущем. Но это будущее еще не наступило.

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

  • IDM (Identity management),
  • IAM (Identity and Access Management),
  • IGA (Identity Governance and Administration) (скорее, на международном рынке),
  • CIAМ (Customer Identity and Access Management) (если говорят о специализированных решений для внешних пользователей – клиентах, партнерах, поставщиках).

Когда делается проверка? Проверки встраиваются в сценарии регистрации, аутентификации и авторизации пользователей в следующие точки:

  • установка, восстановление, смена пароля;
  • вход в систему;
  • выполнение действия, для которого требуется дополнительная авторизация.

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

Что делает система, если обнаружен плохой пароль? Зависит от настроек. В нашей системе аутентификации и авторизации RooX UIDM можно настроить, насколько жесткой будет реакция в той или иной точке сценария. Диапазон — от нежного «просто проинформировать» до неумолимого «не пускать дальше, пока пользователь не сменит пароль на безопасный».

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

Подписывайтесь на блог RooX. Мы специализируемся на цифровых каналах взаимодействия с пользователями (порталы, личные кабинеты, приложения, в том числе, в виде PWA) и управлении доступом к ним (RooX UIDM).

И еще мы завели русскоязычное сообщество в ТГ по аутентификации и авторизации. Присоединяйтесь и задавайте вопросы.

0
80 комментариев
Написать комментарий...
Leo Uvarov

передавать свои пароли сервису на "сверку" - отличная идея.

Ответить
Развернуть ветку
Невероятный Блондин

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

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Kseniya

Вопрос о дизайне человека тогда)) чем надо пользоваться, чтобы не попасться в нормальной обычной жизни? на бумажке писать нельзя, простые использовать нельзя, как тогда соблюдать нужный уровень "аутентификационной гигиены" и запоминать? Использовать автогенерируемые пароли и сохранять их в учётке? Менять одну циферку? для меня это неразрешимый вопрос, и биометрию свою давать не хочу, у меня палец какой-то не такой, через раз считывается)))

Ответить
Развернуть ветку
Виталий Воробьев

Я использую bitwarden для генерации и хранения паролей. Он опенсурсный и его можно поднять на собственном сервере. При этом доступ на сервер извне у меня только для моих устройств.
Но, насколько я понимаю, основной метод взлома это не перебор паролей, а утечки данных. По этому не так важно иметь длинный и сложный пароль, а важно регулярно менять пароль во всех учетках. Раз в месяц, например.

Ответить
Развернуть ветку
4 комментария
Наталия Леднева

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

Ответить
Развернуть ветку
4 комментария
Норрин Радд

бесплатный менеджер паролей keepass
https://keepass.info/
естественно придётся побороть лень и пароли сохранять

Ответить
Развернуть ветку
8 комментариев
Антон

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

Ответить
Развернуть ветку
Алексей Лазарев

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

Ответить
Развернуть ветку
Ольга Жукалина

"б) помнить"
А вот с этим могут быть больше проблемы

Ответить
Развернуть ветку
RooX
Автор
Ответить
Развернуть ветку
alpden

😀

Ответить
Развернуть ветку
Невероятный Блондин

Когда оно утекает, то содержимое уже не имеет значения. Оно утекло.
Поэтому только Passkeys + рандомные ящики (алиасы) от Apple.

Ответить
Развернуть ветку
2 комментария
Денис Бойцов

Хороший ликбез )

Ответить
Развернуть ветку
Владимир Шабалин

Оо...
1q2w3e
Никогда не использовал ещё, надо попробовать.)

Ответить
Развернуть ветку
Ася Власова

А что, если не пароли? Какой другой метод аутентификации самый близкий к реализации в ближ.будущем?

Ответить
Развернуть ветку
Виталий Воробьев

Гугл потихоньку продивигает Google passkeys. Аутентификация через сканирование qr кода с телефона. У технологии много плюсов, но, как и все продукты гугл, она может умереть в зачатке.

Ответить
Развернуть ветку
5 комментариев
Konstantin Korsakov

Криптография в разных ипостасях: TOTP, webauthn, другие использования криптосистем с открытым ключом. Ну и несколько факторов конечно использовать, например + био. Для "обычных" сервисов - отказ от собственной аутентификации в пользу гигантов.

Ответить
Развернуть ветку
Анастасия Кошелева

Прекрасно! Пойду расскажу бывшим коллегам, что массовая смена паролей раз в квартал - это прошлый век)

Ответить
Развернуть ветку
Konstantin Korsakov

Если организация подчинена отечественной нормативке, то там всё плохо. У нас пока что требуют менять и использовать всякие глупые парольные политики. А если таких ограничений нет, то вот выжимки из NIST https://owasp-top-10-proactive-controls-2018.readthedocs.io/en/latest/c6-implement-digital-identity.html#level-1-passwords ну или оригинал https://pages.nist.gov/800-63-3/sp800-63b.html#memsecret

В частности, Verifiers SHOULD NOT require memorized secrets to be changed arbitrarily (e.g., periodically). However, verifiers SHALL force a change if there is evidence of compromise of the authenticator.

Ответить
Развернуть ветку
Денис Васин

эммм я свой пароль уже год точно не менял

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Alexey Remizov

Ничего не понятно.

Если не храниться, то с чем сравнивают?

Если пользователь ничего не запоминает, то как вы отличаете пользователя от хакера?

Ответить
Развернуть ветку
5 комментариев
Ася

А скомпрометированый пароль + двухфакторная аутентификация - это достаточный уровень защиты? Или все равно стоит себя заставить везде все перебить? 😅

Ответить
Развернуть ветку
Норрин Радд

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

Ответить
Развернуть ветку
Сергей Мартынов

я просто сохраняю в гугле, а сам гугл если взломают - мне сразу уведомление приходит что кто-то пытается войти, не ахти сильно, но думаю надёжно

Ответить
Развернуть ветку
Oleg Gorbatov

Интересно. Сколько обычный человек в среднем держит в памяти паролей. Включая подъездные коды и т.д.
Я как-то считал - порядка 30.

Ответить
Развернуть ветку
Artem Egorov

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

Ответить
Развернуть ветку
Captain

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

Ответить
Развернуть ветку
Почемучка

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

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Yurii Bychkov

"А то, что просто придумать, просто и взломать." - чушь. Длина пароля роляет. "ВнукКоняЛошадиБудёного", если пароль не уехал раньше, то хрен вы его подберёте при жизни и по хешам искать тоже задолбаетесь.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Екатерина

Господи, с этими паролями и так мозг сломаешь, пока придумаешь и все запомнишь, так еще и проверять теперь надо...

Ответить
Развернуть ветку
RooX
Автор

Мы описали проверку, которая встроена в систему входа онлайн-сервиса. Например, вход в интернет-банк. Вы логинитесь в свой интернет-банк, вам высвечивается сообщение с рекомендацией сменить пароль, потому что он скомпроментирован.

Но можно и самостоятельно проверить свои пароли на одном из сервисов (Have I Been Pwned) или аналогичных, чтобы понять масштаб компрометации.

Ответить
Развернуть ветку
3 комментария
Evgeny Afanasev

Когда успели «взломать» МД5 ?
И как можно взломать хеширование?
Я что-то проспал?

Ответить
Развернуть ветку
Yurii Bychkov

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

Ответить
Развернуть ветку
3 комментария
Svetlana Romanovich

Интересно. Особенно понравилась рекомендацию - менять пароль по факту.

Ответить
Развернуть ветку
Фрэнк Розенталь

Полезно! Не добавил в закладки, а сразу прочитал)

Ответить
Развернуть ветку
Nikita Selyanin

я парочку своих паролей в телеграмм боте нашел, очень удивился

Ответить
Развернуть ветку
RooX
Автор
Ответить
Развернуть ветку
Евгений Кардаш

какая морока с этими паролями появилась

Ответить
Развернуть ветку
Мария Аристова
Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Молодой горошек

добавляйте в пароль символ пробела

Ответить
Развернуть ветку
Котова Зоя
Ответить
Развернуть ветку
77 комментариев
Раскрывать всегда