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

На модерации Отложенный

Пользователи не любят напрягаться и многие разработчики смирились с этим. Вспомните последние 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


\"\"

Выводы

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

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