Стойкость пароля проверить c пояснением. Новый алгоритм для проверки надёжности паролей. Единая надёжная основа

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

"password" => [ "required", "confirmed", "min:8", "regex:/^(?=\S*)(?=\S*)(?=\S*[\d])\S*$/", ];
К сожалению, такие простые правила означают, что пароль Abcd1234 будет признан хорошим и качественным, так же как и Password1 . С другой стороны, пароль mu-icac-of-jaz-doad не пройдёт валидацию.

Вот первые два пароля.

А вот два пароля, которые не пройдут проверку на надёжность.

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

Вместо всего этого достаточно сделать простую вещь - просто установить ограничение на минимальную энтропию пароля, и всё! Можно использовать для этого готовый оценщик zxcvbn .

Есть и другие решения, кроме zxcvbn. Буквально на прошлой неделе на конференции по безопасности ACM Computer and Communications Security была представлена научная работа (pdf) специалистов по безопасности из научно-исследовательского подразделения Symantec Research и французского исследовательского института Eurecom. Они разработали новую программу для проверки надёжности паролей, которая оценивает примерное количество необходимых попыток брутфорса, используя метод Монте-Карло . Предлагаемый способ отличается тем, что требует минимальное количество вычислительных ресурсов на сервере, подходит для большого количества вероятностных моделей и в то же время довольно точный. Метод проверили на паролях из базы 10 млн паролей Xato, которые лежат в открытом доступе (копия на Archive.org) - он показал хороший результат. Правда, это исследование Symantec Research и Eurecom носит скорее теоретический характер, по крайней мере, свою программу они не выложили в открытый доступ в каком-либо приемлемом виде. Тем не менее, смысл работы понятен: вместо эвристических правил проверки паролей веб-сайтам желательно внедрить проверку на энтропию.

Пароли - это ключи от ваших виртуальных хранилищ данных в интернете - от аккаунта почты, онлайн игры, личной странички в соцсети и т.д. Конечно же, он должен на 100% отвечать такому критерию, как надёжность. То есть он должен быть устойчив к взлому, или подбору. К сожалению, многие пользователи это простое, но обязательное требование к паролям игнорируют. И в итоге, как правило, становятся жертвами злоумышленников. У них пропадают деньги, конфиденциальные данные, геймплейные достижения и пр.

Известно, что 1% пользователей сети то ли из-за лени, то ли из-за халатности при регистрации предпочитают использовать примитивные комбинации, которые можно подобрать с 3-4 попыток. Примеры - «123456», «qwerty», «mypassword». Это, безусловно, является очень большой глупостью. «Лёгкий» ключ для пользователя является «лёгким» и для взломщика.

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

Какой пароль можно назвать надёжным?

Хорошие ключи от учётной записи имеют следующие характеристики:

1. Длина не меньше 10-15 символов (самые устойчивые комбинации и того больше - 20-35 символов).

2. Символьный состав: большие и маленькие английские буквы, цифры, спецсимволы.

3. В комбинации отсутствуют словарные слова (parol, kod, vhod), личные данные (номер телефона, имя, e-mail и т.д.), логические последовательности букв и цифр (1234, 246810, abcdefg).

Чем сложнее, надёжнее комбинация, тем труднее сделать её подбор. Чтобы установить придуманную пользователем последовательность из 12 знаков, может понадобиться свыше 1,5 млн. лет.

Создание сложного ключа

Рядовые пользователи Сети и специалисты по безопасности уже нашли множество правильных ответов-решений на вопрос «Как создать надёжный пароль?». В рамках этой статьи мы познакомимся с тремя наиболее практичными способами.

Способ №1: подмена букв

Не на всех первых мобильных телефонах поддерживался русский язык, и их владельцы отправляли СМС-ки, используя транслитерацию. То есть писали латинскими буквами по-русски, а недостающие литеры заменяли символами. Например: «ч» - «4». Фраза «Что делаешь?», выглядела как «4to delaesh?». Этот же принцип лежит и в основе данного способа составления ключей.

Возьмите какое-нибудь слово или словосочетание, а затем запишите его с использованием «хитрых» обозначений. Вместо пробелов можно использовать в качестве разделителей любые спецсимволы «~», «/», «.» и др. Например, можно придумать такую комбинацию:

«Опасная зона» запишем как «onACHA9I#3OHA».

Как видите, слова мы записали латинскими буквами и вдобавок заменили кое-какие русские литеры. Вместо «п» - «n», «я» - «9I», «з» - «3» (цифра «три»). И поставили разделитель «#» между словами. Вот и получился достаточно сложный вариант. Чтобы разгадать такой тип символьного сочетания, компьютерным злодеям придётся как следует покорпеть.

В помощь таблица символьных обозначений русских букв:

Способ №2: создание «читаемого» ключа в генераторе

1. Откройте в браузере онлайн-сервис - http://genpas.peter23.com/.

2. В опции «Режим работы» клацните радиокнопку «Произносимый пароль… ».

3. Дополнительно включите/отключите символьные наборы для комбинаций ключа и установите его длину.

4. Нажмите кнопку «Генерировать».

5. Выберите наиболее оптимальный вариант из генерированных последовательностей.

6. Разбейте выбранный пароль на фрагменты из 2-3 символов и придайте каждому фрагменту определённый смысл. В такой «логической цепочке» очень легко запомнить самую сложную комбинацию. В качестве примера давайте разберём ключ, созданный в этом генераторе:

Xoh)ohfo1koh

  • Xoh) - можно прочитать как «Хох» + «смайлик»;
  • oh - «ох»;
  • fo1 - пусть это будет какая-то загадочная аббревиатура;
  • koh - кох - опять вариация начального слога.

Способ №3: добавка спецсимволов в простые слова

1. Возьмите за основу какое-либо хорошо знакомое вам слово:

space2017

2. Придумайте сочетание спецсимволов из 2 или 3 знаков.

«+_&»

3. Добавьте сочетание в начале и в конце слова в зеркальном отображении.

+_&space2017&_+

4. В итоге вы получите достаточно «крепкий» ключ. Безусловно, его нельзя назвать самым устойчивым, однако он легко запоминается и по своей структуре не является примитивным.

Внимание! Перед составлением пароля обязательно ознакомьтесь с требованиями сервиса, на котором регистрируетесь. К примеру, на портале Майл.ру нельзя использовать кириллицу (русские буквы).

Проверка ключа на надёжность

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

Предоставляет пользователю подробный анализ указанной комбинации (символьные наборы, длину), а также оценивает её сложность в процентах.

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

Пользуйтесь только надёжными паролями! Они являются залогом вашей безопасности в Сети.

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

"password" => [ "required", "confirmed", "min:8", "regex:/^(?=\S*)(?=\S*)(?=\S*[\d])\S*$/", ];
К сожалению, такие простые правила означают, что пароль Abcd1234 будет признан хорошим и качественным, так же как и Password1 . С другой стороны, пароль mu-icac-of-jaz-doad не пройдёт валидацию.

Вот первые два пароля.

А вот два пароля, которые не пройдут проверку на надёжность.

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

Вместо всего этого достаточно сделать простую вещь - просто установить ограничение на минимальную энтропию пароля, и всё! Можно использовать для этого готовый оценщик zxcvbn .

Есть и другие решения, кроме zxcvbn. Буквально на прошлой неделе на конференции по безопасности ACM Computer and Communications Security была представлена научная работа (pdf) специалистов по безопасности из научно-исследовательского подразделения Symantec Research и французского исследовательского института Eurecom. Они разработали новую программу для проверки надёжности паролей, которая оценивает примерное количество необходимых попыток брутфорса, используя метод Монте-Карло . Предлагаемый способ отличается тем, что требует минимальное количество вычислительных ресурсов на сервере, подходит для большого количества вероятностных моделей и в то же время довольно точный. Метод проверили на паролях из базы 10 млн паролей Xato, которые лежат в открытом доступе (копия на Archive.org) - он показал хороший результат. Правда, это исследование Symantec Research и Eurecom носит скорее теоретический характер, по крайней мере, свою программу они не выложили в открытый доступ в каком-либо приемлемом виде. Тем не менее, смысл работы понятен: вместо эвристических правил проверки паролей веб-сайтам желательно внедрить проверку на энтропию.

Анализатор паролей SeaMonkey

Этот анализатор паролей разработан как часть проекта SeaMonkey – свободного набора программ для работы в Internet, созданного и поддерживаемого организацией Seamonkey Council, выделившейся из Mozilla Foundation. Сам механизм анализа пароля является частью . Алгоритм его работы заключается в вычислении веса пароля, основывающемся на данных о символах, из которых этот пароль составлен. Вес пароля вычисляется по следующей формуле:
pwstrength = ((pwlength * 10) - 20) + (numeric * 10) + (numsymbols * 15) + (upper * 10) , где
  • pwlength равно 5, если количество символов в пароле больше 5, или равно длине пароля;
  • numeric равно 3, если количество цифр в пароле больше 3, в противном случае - равно количеству цифр;
  • numsymbols считается равным 3, если число символов в пароле, отличных от букв, цифр и знаков подчёркивания, больше 3, иначе - количеству таких символов;
  • upper равно 3, если количество букв в верхнем регистре больше 3, или количеству заглавных букв в противном случае.
После вычисления вес пароля нормируется таким образом, чтобы его значение заключалось в интервале от 0 до 100. Нормировка проводится в том случае, когда значение веса не попадает в этот диапазон. В случае когда pwstrength меньше 0, значение pwstrength приравнивают к нулю, а когда больше 0, значение веса устанавливают равным 100. Ранжирование же пароля по степени стойкости оставлено на усмотрение разработчиков, использующих библиотеку.
Как видно, описанный анализатор не использует никаких проверок с использованием словарей, что делает его оценки несколько однобокими, и, вероятно, менее точными по сравнению с программами от Google и Microsoft, рассмотренными выше.

Password Strength Meter (jQuery plugin)

Ещё одним вариантом оценщика пароля, работающего на клиентской стороне, является Password Strength Meter () – плагин, разработанный для JavaScript фреймворка jQuery.
Процедура оценки работает следующим образом. Известно множество качеств, обладая которыми пароль увеличивает или уменьшает свою стойкость к подбору. Каждое такое качество имеет свой строго определённый вес. Алгоритм заключается в поэтапной проверке наличия у пароля этих качеств и, в случае их присутствия происходит увеличения суммарного веса пароля, по величине которого после просмотра всех характеристик делается заключение об уровне стойкости пароля.
Рассмотрим полный алгоритм процедуры оценки пароля:
  1. Вес пароля устанавливается равным нулю.
  2. Если длина пароля менее 4 символов, то работа алгоритма заканчивается и возвращается результат “слишком короткий пароль”. Иначе переходим к шагу 3.
  3. Вес пароля увеличиваем на величину 4 * len , где len – длина пароля.
  4. Осуществляется попытка сжатия пароля по следующему алгоритму. Если в пароле встречается подстрока вида SS , где S – строка длины 1, то первая часть этой подстроки удаляется и сжатие продолжается с позиции начала второй части этой подстроки. Например, применяя этот алгоритм к строке aaabbcab , на выходе получим строку abcab . После выполнения операции сжатия вес пароля уменьшается на величину len - lenCompress , где len – длина пароля, а lenCompress – длина пароля после сжатия.
  5. Проводятся попытки сжатия пароля для случаев строк S длинной 2, 3 и 4 символов. Вес пароля уменьшается аналогично на величину len - lenCompress . Отметим, что сжатие каждый раз производится на проверяемом пароле, а не строках, полученных на предыдущих попытках.
  6. Если пароль содержит не меньше 3 цифр, то увеличить вес на 5.
  7. Если пароль содержит не менее 2 знаков, то увеличить вес на 5.
  8. Если пароль содержит буквы как в верхнем так и в нижнем регистрах, то увеличить вес пароля на 10.
  9. Если пароль содержит буквы и цифры, то увеличить вес пароля на 15.
  10. Если пароль содержит знаки и цифры, то увеличить вес на 15.
  11. Если пароль содержит буквы и знаки, то увеличить вес на 15.
  12. Если пароль состоит только из букв или только из цифр, то уменьшить вес пароля на 10.
  13. Если вес пароля меньше 0, то установить его равным 0. Если больше 100, то установить равным 100.
  14. Пароль, вес которого меньше 34, признаётся “слабым”. Если вес от 34 до 67, то пароль относится к категории “хороший”, а если более 67, то пароль считается “отличным”.
Рассмотренный анализатор также как и продукт от SeaMonkey, не проводит проверку пароля по какому-либо словарю. К тому же остаётся открытым вопрос об обоснованности выбора тех или иных значений весовых коэфициентов при формировании оценки пароля.
Доступна , демонстрирующая возможность данного плагина.

Cornell University - Password Strength Checker

Официальный on-line сервис , предоставляемый центром безопасности Корнелльского университета (Итака, США). С его помощью пользователи могут проверить свой пароль, заполнив web-форму и отправив его на проверку. Оценка пароля, как и в случае с сервисом Google, производится на стороне сервера.
Реализация алгоритма не раскрыта для общего доступа, однако в описании сервиса указаны требования, которым должен удовлетворять пароль, чтобы проверка прошла успешно:
  1. пароль должен иметь длину не менее 8 символов;
  2. при составлении пароля используются символы по крайней мере трёх алфавитов из следующего списка:
    • заглавные латинские буквы
    • строчные латинские буквы
    • цифры
    • специальные знаки (такие как! * () : |)
  3. пароль не должен содержать слов из словаря;
  4. пароль не должен содержать последовательностей повторяющихся букв (например, ААА) и последовательностей вида abc, qwerty, 123, 321.
Эти требования должны строго выполняться. Если хотя бы какое-то требование не выполняется, то пароль признаётся ненадёжным.
К такому подходу можно сделать следующее критическое замечания. Так пароль произвольно большой длины, например, какое-то предложение на естественном языке, не будет удовлетворять условию №3, что автоматически обеспечит паролю низкую оценку, хотя это, может быть, и не совсем оправдано.

Password Strength Tester

JavaScript анализатор паролей , который разрабатывается и поддерживается в рамках проекта Rumkin.com.
Алгоритм оценки, реализованный в данном анализаторе, основывается на общих положениях теории информации. В качестве основной оценки пароля используется его энтропия, вычисление которой производится с использование таблиц диграмм для английского языка.
Под энтропией (информационной ёмкостью) пароля понимается мера случайности выбора последовательности символов, составляющих пароль, оцененная методами теории информации.
Информационная ёмкость E измеряется в битах и характеризует стойкость к подбору пароля методом полного перебора при условии отсутствия априорной информации о характере пароля и применении злоумышленником оптимальной стратегии перебора, при которой среднее ожидаемое количество попыток до наступления удачной равняется 2 E -1 . По утверждению создателя этого оценщика с целью уменьшения загружаемого на клиентскую сторону объёма информации все небуквенные символы были объединены в одну группу. Эта группа выступает неким универсальным символом, который и используется в частотной таблице. Как отмечает разработчик, при данном допущении значение получаемой энтропии будет меньше, нежели в случае, когда в частотной таблице все символы представлены раздельно.
В зависимости от полученного значения энтропии паролю присваивается соответствующая характеристика его стойкости.
Энтропия Уровень стойкости

В этом уроке расскажу как проверить надежность введенного пароля. Для этих целей мы будем использовать специальный сервис от "Лаборатории Касперского" под названием "Secure Password Check"

Находится он по адресу www.password.kaspersky.com/ru . Если при открытии сайта у вас все на английском, то в правом верхнем углу в списке выберите "Русский".

Этот сервис позволяет проверить на сколько сложный у вас пароль и как быстро его можно взломать. Для проверки вводим свой пароль в специальное поле.

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

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

В интернете достаточно большое количество сервисов, которые позволяют объединить несколько PDF файлов в один, но большинство из них имеет свои недостатки. Какие-то сервисы имеют ограничения на размер загружаемых файлов, а другие и вовсе делают это криво. Поэтому сегодня разберем сервис SmallPDF, который делает это максимально правильно.

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

Сегодня расскажу как отправить приватное сообщение, которое удалится после прочтения. Речь пойдет о сервисе под названием Privnote - этот сервис позволяет оправлять сообщения, которые могут быть уничтожены сразу же после прочтения.

Из этого видеоурока вы узнаете как можно проверить скорость интернета на вашем компьютере с помощью специального сервиса.