Если в один прекрасный день вы задумаетесь – а какие сейчас лучшие практики для составления паролей? – и пойдете разыскивать информацию на эту тему, то наверняка удивитесь.
Все мы привыкли к стандартному “Ваш пароль не должен быть короче 6 символов, содержать как минимум одну заглавную, одну строчную букву, одну цифру и один спецсимвол”. Как оказалось, киберпреступники тоже к этому привыкли – и успешно адаптировались.
Рассказываем, почему не стоит вводить строгие правила для состава символов в пароле и какие практики на сегодняшний день считаются передовыми.
Все мы привыкли к стандартному “Ваш пароль не должен быть короче 6 символов, содержать как минимум одну заглавную, одну строчную букву, одну цифру и один спецсимвол”. Как оказалось, киберпреступники тоже к этому привыкли – и успешно адаптировались.
Рассказываем, почему не стоит вводить строгие правила для состава символов в пароле и какие практики на сегодняшний день считаются передовыми.
Что рекомендуют эксперты?
Обратимся к гайдлайнам, которые опубликовал мастодонт в области стандартов IT в Штатах – Национальный институт стандартов и технологий США. В 2020 году они обновили свои рекомендации по созданию надежных паролей.
Главное новшество с точки зрения разработки: при создании пароля не нужно просить пользователя ввести определенный тип знаков или буквы в разных регистрах.
Оказалось, что надежность пароля не зависит от разнообразия символов, которые в этом пароле используются. В принципе, состав должен проверяться только для того, чтобы отсеять откровенно уязвимые пароли: например, те, что содержат название самого веб-приложения, или личные данные пользователя – ФИО, дату рождения или никнейм.
Основным требованием остается длина пароля – минимум 8 символов. А главный гарант надежности – уникальность пароля (об этом чуть ниже).
Полный список рекомендаций в чуть более человекочитаемом формате, чем официальные документы, можно найти здесь.
А что в реальной жизни?
Microsoft уже подстроились. Apple – пока не совсем (но и здесь перестали требовать спецсимволы в пароле). Ожидаемо, что вслед за ними практика будет постепенно распространяться в других IT-компаниях.
Главное новшество с точки зрения разработки: при создании пароля не нужно просить пользователя ввести определенный тип знаков или буквы в разных регистрах.
Оказалось, что надежность пароля не зависит от разнообразия символов, которые в этом пароле используются. В принципе, состав должен проверяться только для того, чтобы отсеять откровенно уязвимые пароли: например, те, что содержат название самого веб-приложения, или личные данные пользователя – ФИО, дату рождения или никнейм.
Основным требованием остается длина пароля – минимум 8 символов. А главный гарант надежности – уникальность пароля (об этом чуть ниже).
Полный список рекомендаций в чуть более человекочитаемом формате, чем официальные документы, можно найти здесь.
А что в реальной жизни?
Microsoft уже подстроились. Apple – пока не совсем (но и здесь перестали требовать спецсимволы в пароле). Ожидаемо, что вслед за ними практика будет постепенно распространяться в других IT-компаниях.
А почему вдруг?
Исследования (например, вот такие) на тему надежности паролей проводятся давно. Главное, что удалось выяснить: сложносоставные пароли – безупречны в теории, но никак не учитывают человеческий фактор. А он при создании и использовании пароля – решающий.
Когда требования к составу пароля разрабатывались, подразумевалось, что пользователи будут выбирать случайные символы. Но оказалось, что люди ведут себя крайне предсказуемо – используют примерно один и тот же набор слов и знаков.
Например, при исследовании более 3 000 000 скомпрометированных восьмизначных паролей латинская буква e нашлась в полутора миллионах паролей. А латинская f – всего в 250 000. Это с высокой долей вероятности указывает на то, что пользователи выбирают в качестве пароля не рандомный набор символов, а известные общеупотребительные слова или имена. Ведь если пользоваться восемью случайными латинскими буквами, количество комбинаций для пароля равно 26^8 (число букв алфавита в степени длины пароля). А вот восьмибуквенных слов в английском языке – порядка 42 000, среди них часто употребляются всего 500. Согласитесь, подобрать одно слово из 500 уже не выглядит непосильной задачей.
Также повсеместно распространился так называемый язык Leet – способ записи слов с использованием цифр и спецсимволов. Новость-молния: ваш p@$$w0rd в качестве пароля возможно насмешит взломщика, но точно не остановит.
А еще пользователи часто включают в состав пароля название платформы, где происходит регистрация, или производные от своего имени и юзернейма – все это делает пароль в разы более уязвимым.
Такая же ситуация наблюдается в отношении цифр и спецсимволов. Когда к паролю просят добавить цифру, человек с высокой долей вероятности выберет единицу. А если нужен специальный символ – скорее всего это будет восклицательный знак. Порядок добавления символов тоже крайне предсказуемый – сначала чаще всего идут буквенные значения, затем цифры, затем спецсимволы. Например, пароль password1! встречается в разы чаще, чем !1password.
Более того, если пользователь все же прислушался к рекомендациям и создал уникальный длинный пароль со случайными буквами, символами и числами, он вряд ли его запомнит. Поэтому пароли сохраняются в браузере или записываются где-то на сторонних ресурсах – например, в заметках, которые уходят в облачное хранилище и могут попасть к злоумышленникам.
Допустим, наш пользователь напряг последние силы и, используя все клавиши на клавиатуре, изобрел идеальный пароль, который к тому же смог запомнить. В этом случае резко возрастает вероятность, что он начнет использовать этот “сверхнадежный” пароль на всех платформах с похожими требованиями. Ведь столько энергии потрачено на создание и запоминание такой конструкции… А повторное использование пароля – одна из самых небезопасных практик в сети.
Когда требования к составу пароля разрабатывались, подразумевалось, что пользователи будут выбирать случайные символы. Но оказалось, что люди ведут себя крайне предсказуемо – используют примерно один и тот же набор слов и знаков.
Например, при исследовании более 3 000 000 скомпрометированных восьмизначных паролей латинская буква e нашлась в полутора миллионах паролей. А латинская f – всего в 250 000. Это с высокой долей вероятности указывает на то, что пользователи выбирают в качестве пароля не рандомный набор символов, а известные общеупотребительные слова или имена. Ведь если пользоваться восемью случайными латинскими буквами, количество комбинаций для пароля равно 26^8 (число букв алфавита в степени длины пароля). А вот восьмибуквенных слов в английском языке – порядка 42 000, среди них часто употребляются всего 500. Согласитесь, подобрать одно слово из 500 уже не выглядит непосильной задачей.
Также повсеместно распространился так называемый язык Leet – способ записи слов с использованием цифр и спецсимволов. Новость-молния: ваш p@$$w0rd в качестве пароля возможно насмешит взломщика, но точно не остановит.
А еще пользователи часто включают в состав пароля название платформы, где происходит регистрация, или производные от своего имени и юзернейма – все это делает пароль в разы более уязвимым.
Такая же ситуация наблюдается в отношении цифр и спецсимволов. Когда к паролю просят добавить цифру, человек с высокой долей вероятности выберет единицу. А если нужен специальный символ – скорее всего это будет восклицательный знак. Порядок добавления символов тоже крайне предсказуемый – сначала чаще всего идут буквенные значения, затем цифры, затем спецсимволы. Например, пароль password1! встречается в разы чаще, чем !1password.
Более того, если пользователь все же прислушался к рекомендациям и создал уникальный длинный пароль со случайными буквами, символами и числами, он вряд ли его запомнит. Поэтому пароли сохраняются в браузере или записываются где-то на сторонних ресурсах – например, в заметках, которые уходят в облачное хранилище и могут попасть к злоумышленникам.
Допустим, наш пользователь напряг последние силы и, используя все клавиши на клавиатуре, изобрел идеальный пароль, который к тому же смог запомнить. В этом случае резко возрастает вероятность, что он начнет использовать этот “сверхнадежный” пароль на всех платформах с похожими требованиями. Ведь столько энергии потрачено на создание и запоминание такой конструкции… А повторное использование пароля – одна из самых небезопасных практик в сети.
Сложность паролей – только минус?
Конечно, нет.
Изначально требования к сложности вводились как способ расширить пул потенциальных паролей. Мы уже подсчитали, что при использовании только строчных букв в восьмизначном пароле количество комбинаций равно 26^8. А если добавить к ним заглавные – 52^8, что значительно удлиняет процесс взлома.
К тому же наличие цифр и спецсимволов защищает пользователей от примитивных словарных атак – это такой способ взлома, когда злоумышленники выявляют пароль, просто перебирая все существующие в языке слова.
Одним словом, главная цель требований – добиться, чтобы пользователь создал уникальный пароль. Ведь чем разнообразнее символы, тем больше с ними потенциальных комбинаций, которые сложно, долго и дорого подбирать. Теоретически, любой пароль подлежит взлому – вопрос лишь в том, насколько трудно будет этот взлом осуществить. И если на раскрытие пароля уходит слишком много времени и ресурсов, злоумышленник с большей вероятностью откажется от этой затеи и перейдет к более уязвимым аккаунтам.
Сегодня становится понятно, что главное преимущество сложных паролей нивелируется тем самым человеческим фактором, который не позволяет уложить в голове пользователя несколько паролей типа hfd23^@%!^G1132^&
Изначально требования к сложности вводились как способ расширить пул потенциальных паролей. Мы уже подсчитали, что при использовании только строчных букв в восьмизначном пароле количество комбинаций равно 26^8. А если добавить к ним заглавные – 52^8, что значительно удлиняет процесс взлома.
К тому же наличие цифр и спецсимволов защищает пользователей от примитивных словарных атак – это такой способ взлома, когда злоумышленники выявляют пароль, просто перебирая все существующие в языке слова.
Одним словом, главная цель требований – добиться, чтобы пользователь создал уникальный пароль. Ведь чем разнообразнее символы, тем больше с ними потенциальных комбинаций, которые сложно, долго и дорого подбирать. Теоретически, любой пароль подлежит взлому – вопрос лишь в том, насколько трудно будет этот взлом осуществить. И если на раскрытие пароля уходит слишком много времени и ресурсов, злоумышленник с большей вероятностью откажется от этой затеи и перейдет к более уязвимым аккаунтам.
Сегодня становится понятно, что главное преимущество сложных паролей нивелируется тем самым человеческим фактором, который не позволяет уложить в голове пользователя несколько паролей типа hfd23^@%!^G1132^&
Какое может быть решение?
Мы уже выяснили, что главный параметр, по которому теперь рекомендуется верифицировать пароли, – это их длина. Минимально надежными считаются 8-значные пароли, хотя где-то встречаются аргументы за 20 знаков.
Поэтому разработчиков все чаще призывают внедрять в веб-приложениях так называемые passphrases вместо passwords. О фразах-паролях пишет, например, Национальный центр кибербезопасности Великобритании. Главное отличие фраз от привычных нам паролей – длина (порядка 14 символов), наличие пробелов и случайность в подборе слов. Для человека несложно запомнить забавный пароль вроде “мотор равиоли кишмиш”, а вот взломать его компьютеру – крайне долго и дорого. И в отличие от имен детей, питомца или супругов этот набор слов вряд ли попадется в ваших постах в соцсетях.
Те же исследования показали, что сверять пароль пользователя с так называемым “черным списком” намного полезнее, чем требовать высокую сложность. В черный список должны входить пароли, которые фигурировали в известных утечках баз данных, а также простые и широко распространенные пароли: qwerty, iloveyou, password.
Туда же можно отнести обычные “словарные” пароли – то есть несложные слова определенной длины, буквально из словаря. Например, apple, monkey, spring – ненадежные шестизначные пароли.
И конечно, как уже говорилось выше, нельзя допускать использование названия платформы и любых данных самого пользователя: Iv@n-Petr0v – ненадежный пароль для Вани Петрова, хотя тут используются буквы двух регистров, спецсимволы и цифры.
Поэтому разработчиков все чаще призывают внедрять в веб-приложениях так называемые passphrases вместо passwords. О фразах-паролях пишет, например, Национальный центр кибербезопасности Великобритании. Главное отличие фраз от привычных нам паролей – длина (порядка 14 символов), наличие пробелов и случайность в подборе слов. Для человека несложно запомнить забавный пароль вроде “мотор равиоли кишмиш”, а вот взломать его компьютеру – крайне долго и дорого. И в отличие от имен детей, питомца или супругов этот набор слов вряд ли попадется в ваших постах в соцсетях.
Те же исследования показали, что сверять пароль пользователя с так называемым “черным списком” намного полезнее, чем требовать высокую сложность. В черный список должны входить пароли, которые фигурировали в известных утечках баз данных, а также простые и широко распространенные пароли: qwerty, iloveyou, password.
Туда же можно отнести обычные “словарные” пароли – то есть несложные слова определенной длины, буквально из словаря. Например, apple, monkey, spring – ненадежные шестизначные пароли.
И конечно, как уже говорилось выше, нельзя допускать использование названия платформы и любых данных самого пользователя: Iv@n-Petr0v – ненадежный пароль для Вани Петрова, хотя тут используются буквы двух регистров, спецсимволы и цифры.
Вывод
Нынешняя ситуация с требованиями к паролям – довольно парадоксальная: из-за возросшей сложности людям становится все труднее запоминать и использовать свои пароли, а компьютерам – все легче и быстрее их взламывать.
Споров вокруг надежности паролей много, далеко не все IT-гиганты готовы переходить на новую схему валидации. Кто-то предлагает снижать сложность паролей, но не полностью – например, оставить требования к разному регистру букв и наличию цифр. Кто-то считает, что будущее – исключительно за passphrases.
В любом случае, передовые исследования показывают, что сложность – далеко не панацея от взлома. Важнее всего – уникальность пароля, за которую должны нести ответственность и пользователь, и веб-приложения. Это значит, что пользователю не стоит повторно сохранять свой пароль на разных платформах. В свою очередь веб-приложения могут сопоставлять пароль с наиболее распространенными словами и фразами, а также со списком утечек.
Мы желаем вам бережно хранить свои данные и напоследок предлагаем вот такой калькулятор надежности пароля. А если придуманный пароль оказался не очень надежным, то можно сгенерировать другой, например, вот здесь.
Останется только подобрать надежный сервис для хранения паролей [да-да, их тоже взламывают], но это уже другая история:)
Споров вокруг надежности паролей много, далеко не все IT-гиганты готовы переходить на новую схему валидации. Кто-то предлагает снижать сложность паролей, но не полностью – например, оставить требования к разному регистру букв и наличию цифр. Кто-то считает, что будущее – исключительно за passphrases.
В любом случае, передовые исследования показывают, что сложность – далеко не панацея от взлома. Важнее всего – уникальность пароля, за которую должны нести ответственность и пользователь, и веб-приложения. Это значит, что пользователю не стоит повторно сохранять свой пароль на разных платформах. В свою очередь веб-приложения могут сопоставлять пароль с наиболее распространенными словами и фразами, а также со списком утечек.
Мы желаем вам бережно хранить свои данные и напоследок предлагаем вот такой калькулятор надежности пароля. А если придуманный пароль оказался не очень надежным, то можно сгенерировать другой, например, вот здесь.
Останется только подобрать надежный сервис для хранения паролей [да-да, их тоже взламывают], но это уже другая история:)