God, Sex, Love and Secret: самые популярные пароли в соцсетях

Опубликовано: 11.12.2021

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

В этой статье приведён результат анализа ~100 000 паролей. Надеюсь этот анализ будет интересен и пригодится многим хабралюдям.

Маленькое отступление

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

Что делалось

Все пароли проверены по критериям наличия цифр, специальных символов, регистра а также устойчивости посредством методов cracklib.

Данные
Распределение по длине
Самый короткий пароль — 1 символ, самый длинный — 63 символа.

Свыше 15 символов совсем несущественные значения.

Сложные и простые пароли

По результатам прогона cracklib — легко взламываемыми оказались 35.5% паролей

Присутствие спец. символов, цифр и букв
Спец. символы — 3%
Только цифры — 33%
Только буквы — 24.7%
Букво-цифры — 39.3%

Регистр

91.5% — в нижнем регистре
3% — в вехнем регистре
5.5% — разный регистр

Наиболее популярные пароли

Что это может значить в реальности
Предположим, что некий злоумышленник имеет базу 5 самых распространнённых паролей и использует её для подбора всех аккаунтов вашего сервиса. Топ 5 паролей — это 2.9% вероятность успешного подбора за 5 попыток, а это 290 человек при общем количестве пользователй в 10 000 (маленький такой стартапчик). Надо ли говорить, что эти люди лишатся сразу же и icq, и почты…

Если учесть все распространённые пароли(встречающиеся более 5 раз), которых всего 381, то они позволяют получить доступ к ~9.2% аккаунтов. Вдумайтесь, практически 10 часть Ваших пользователей может быть взломана малюсеньким словарём меньше чем в 400 паролей.

Топ 10 паролей

Самое вкусное, увы, звонких вариантов как во всем известном фильме тут нет, всё тривиально, и у большинства хабрачеловек не вызовет удивление.

1145 1234567 871 123456 332 7777777 303 password 292 12345 278 1111111 261 123456789 221 qwerty 216 111111 179 1234

Выводы

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

Очень надеюсь, что эта информация поможет Вам делать свои сервисы лучше и безопаснее.