11 января 2016

Как придумать надежный пароль. OWASP Passfault

Как придумать надежный пароль. OWASP Passfault
На днях один из подписчиков под ником Saud Nursultan в комментариях на YouTube-канале поднял вопрос о надежности паролей в Интернете и генераторе паролей. Совершенно случайно вышло так, что я как раз присматривался к онлайн-сервисам для проверки надежности паролей (password checkers). Поэтому я и решил сделать обзор на один из таких ресурсов, чтобы показать принципы создания сильных паролей. Мы рассмотрим методы проверки надежности паролей и узнаем какие алгоритмы используют взломщики для получения доступа к вашим аккаунтам.

Как придумать надежный пароль. OWASP Passfault

Раньше я уже публиковал видео о программе для подбора паролей Взлом пароля RAR архива, но заметил, что многие не понимают саму процедуру взлома и какие пароли можно подобрать. Чтобы узнать какой пароль будет считаться надежным, нужно понять, какие методы используются для взлома паролей и сделать все возможное, чтобы эти методы не сработали на вас. Для таких целей отлично подходит онлайн сервис OWASP Passfault (http://www.passfault.com/).




OWASP (Open Web Application Security Project) - это сообщество корпораций, организаций и частных лиц со всего мира, разрабатывающих новаторские проекты для обеспечения безопасности пользователей. Состоит из нескольких команд разработчиков, каждая из которых разрабатывает свой проект для защиты данных пользователей в Интернете и при использовании программного обеспечения. Одним из таких проектов и является Passfault.

Итак, начнем.
Как придумать надежный пароль. OWASP Passfault
Как придумать надежный пароль. OWASP Passfault (жми для увеличения)
Главную страницу сайта можно условно поделить на три части.
Верхняя часть - ссылки, по которым можем почитать информацию о сервисе и его возможностях. Если хотите узнать ещё больше, то вот вам ссылки на дополнительную информацию о ресурсе - https://www.owasp.org/index.php/OWASP_Passfault#tab=Main и https://ru.wikipedia.org/wiki/OWASP.

В средней части расположено поле для ввода паролей и настройки проверки надежности пароля. Это основной рабочий сектор ресурса.
Если нажать на надпись Show Examples, то мы увидим примеры сильных и слабых паролей, это просто подсказка для пользователей. Нажатие на Show Options даст возможность выбрать компьютер-взломщик (от обычного рабочего до супер-компьютера за 500000$), для которого будет рассчитываться время взлома вашего пароля. Также здесь можно выбрать используемую технологию защиты и шифрования вашего пароля, чтобы наиболее точно воссоздать алгоритмы защиты сайта, к которому мы придумываем свой новый пароль. Это звучит довольно запутано, но на примере все станет понятнее.

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

Сервис OWASP Passfault в проверке надежности пароля использует:

  1. Словарь, позволяющий выявлять вставку любого символа внутрь слова, использованного вами в пароле (pass&word).
  2. Словарь, определяющий замену любой буквы символом в слове (p@ssword).
  3. Словарь слов с ошибкой (pessword).
  4. Словарь замены букв в слове или целого слова цифрами (pa55w0rd).
  5. Словарь зеркально написанных слов (drowssap).
  6. Словари английского и испанского языка, клички животных, американские и индийские имена.
  7. Поиск точного повторения уже введенных символов (passpass).
  8. Поиск произвольно набранных латинских и кириллических букв (UQВЫBАФCSEФЖBЭV).
  9. Русскую, американскую и европейские раскладки клавиатуры.
  10. Анализ на поочередное нажатие клавиш в строке на клавиатуре (qwerty, asd).
  11. Анализ на поочередное диагональное нажатие клавиш на клавиатуре (qaz, ygv, cde3).
  12. Поиск множественных повторений символов и сочетаний символов (qqq, qwqwqw).

Как видим, возможности сервиса достаточно впечатляющие. В Passfault есть только два минуса:

  1. английский интерфейс ресурса (частично устраняется переводчиком)
  2. нет русского словаря для паролей. То есть, если вы зададите в качестве пароля слово или словосочетание на русском языке, то пароль будет считаться надежным, но на самом деле таковым являться не будет. Русские буквы, как мы уже узнали, использовать можно. Это необходимо учитывать при составлении паролей.

Как по мне, больше минусов нет, в остальном сервис отличный.

Теперь приступим к практике и испытаем приготовленные пароли.

Как придумать надежный пароль. OWASP Passfault
Как придумать надежный пароль. OWASP Passfault - administrator (жми для увеличения)
Для начала паролем напишем простое слово administrator. Мы видим, что подбор такого пароля займет меньше 1 дня и сервис определил, что это на 100% обычное английское слово.
Для сравнения, популярный ресурс howsecureismypassword.net, утверждает, что пароль administrator будет взламываться 19 лет, что, конечно же, является откровенной глупостью.
Если мы напишем администратор на русском, то увидим, что на подбор такого пароля уйдет 180 лет. Такие данные появились из-за того, что в сервисе нет русского словаря, о чем я уже говорил ранее, и он не понимает, что это существующее слово, а считает это набором символов, поэтому этот результат недостоверный.
Такая же ситуация с сочетанием слов сороктысячобезьян, написанных слитно. А если написать по-английски fortythousandmonkeys, то сервис определит, что это три слова, написанные вместе.

Как придумать надежный пароль. OWASP Passfault
Как придумать надежный пароль. OWASP Passfault - fortythousandmonkeys (жми для увеличения)
Теперь проверим популярные во всем мире пароли.
qwerty, йцукен и !12qwerty33 сервис OWASP Passfault сразу определяет как простые, поскольку находит в них соответствующую закономерность, напечатанных подряд символов.

В пароле AlD3b@rAN сервис видит спрятанное название Aldebaran.

А если проверить вот такой пароль 7WQgPj;avT2Au@sv из набора цифр, больших и строчных латинских букв и символов, то мы увидим, что на его взлом уйдет 450 лет(!), что для нас более чем достаточно )) Но можно ещё усилить пароль и добавить кириллические буквы. Давайте заменим две английские буквы на русские, идентичные по клавиатурной раскладке и напишем 7WЙgPjжavT2Au@sv. Как видим всего две буквы увеличили срок подбора пароля более чем в 200 раз.

Как придумать надежный пароль. OWASP Passfault
Как придумать надежный пароль. OWASP Passfault - 7WЙgPjжavT2Au@sv (жми для увеличения)
Делаем выводы: 
Мы узнали, какие методы используются для подбора паролей. У взломщика должны быть идентичные словари и алгоритмы подбора паролей, чтобы время взлома, указанное на сервисе, совпадало с реальным временем взлома. Если хоть одного словаря нет, то велика вероятность, что взломщик затратит намного больше времени, чем было указано на сервисе. Если же у взломщика словарей будет больше, то он сможет быстрее подобрать ваш пароль.

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

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