Очевидно, множество дизайнеров и разработчиков считают, что безопасные пароли должны сложно выглядеть. Самые безопасные, по их мнению, выглядят примерно так: #sK8/a_C%eD8). Страшно выглядит, и сразу такое не придумаешь.
Хотели бы вы придумывать такое? Я — вряд ли. Я бы скорее рискнул записать его на листике, использовал бы один пароль несколько раз, или воспользовался менеджером паролей. Это всё не самые лучшие варианты, но такие требования к паролям — это серьезная проблема конфиденциальности и IT безопасности.
Но нам нужны эти пароли! По крайней мере, так говорят некоторые гайды. НЕТ! Мы не должны слишком усложнять пароли. Я понятия не имею кто это придумал, но этот парень, точно всех нас ненавидел. Такое огромное количество веб сайтов, приложений, и т.п. — всё требует от нас ввода подобного рода паролей без какой-либо логической на то причины.
Почему нам не нужны сложные пароли
Если бы безопасность паролей завесила от использования большого количества разных символов, то каким образом получается так, что наши iPhone надежно защищены всего лишь 6-символьной комбинацией? Ведь это всего лишь 1.000.000 возможных вариантов. Apple просто ограничили количество возможных неправильных вводов, и запрограммировали задержку между ними.
То же самое можно реализовать на веб сервере! Можно просто ограничить количество попыток ввода пароля. Конечно, это приведет к определенным проблемам, но по сути — это довольно хороший способ: если производится слишком большое количество вводов, сервер может заблокировать учетную запись и уведомить об этом пользователя по e-mail.
Математика спешит на помощь
Длинный пароль — это король. Почти не важно, состоит ли он из 26, 52, 62, или даже большего количества символов, поскольку безопасность такого пароля растет по экспоненте с длиной. Примеры?
Пароли, использующие только нижний регистр предлагают 26 символов, и 52, если использовать верхний. С другой стороны, если использовать одну и ту же букву нижнего регистра 2 раза, то количество возможных вариантов возрастет до 676. Видите, длина важнее.
Небольшое математическое объяснение того, почему это так.
Количество возможных комбинаций равно безопасности. Чтобы это посчитать, запишем:
В графике, приведенном выше, ось Y представляет собой уровень безопасности. Очень хорошо видно, что, если в качестве переменной использовать длину пароля, то уровень безопасности растет очень быстро, поскольку в этом случае, производная функции — это так же функция. С другой стороны, безопасность ниже, если ограничиться различными символами. В этом случае, производной функцией будет:
Почему безопасность пароля — это, также, задача дизайнера
Сложные пароли сложно запоминать и придумывать. Это преграда, которую вы вряд ли захотите ставить на пути своих пользователей. Создание аккаунтов и без того не самое любимое их занятие. Таким образом, не стоит усложнять этот процесс больше, чем необходимо.
Если пользователь создал аккаунт несмотря на все сложности требований, он столкнется со следующей задачей: ввод правильного пароля. Вы не видите что печатаете, и если вам, к тому же, придется думать об особых символах, цифрах, и т.п., вероятность неправильного ввода будет довольно высока. Но запомнить такой пароль еще сложнее, чем его ввести, отсюда исходит тот факт, что самая нажимаемая кнопка на всех сайтах — это кнопка «напомнить пароль».
Возможно, хотя вряд ли, для восстановления пароля, некоторым пользователям, даже понадобится помощь вашей службы поддержки. Даже если процесс восстановления хорошо работает.
Но не волнуйтесь, помощь в пути! Вот пять способов справиться с этой проблемой!
1. Объясните, зачем им нужны безопасные пароли
Мы должны объяснить пользователям, почему они должны использовать безопасные пароли. Пароль защитит их информацию, и предотвратит кражу личных данных. Почему бы не сказать им об этом? Можно применить подход, который использует Google.
2. Упростите создание паролей
Мы должны сделать процесс создания пароля настолько простым, насколько это возможно. Имеет смысл использовать только одно правило: «Введите по крайней мере Х символов». Да, это может привести к созданию таких паролей, как «password», который находится в списке самых часто используемых паролей, а, следовательно, уязвим для атак, так что вы должны запретить такие пароли.
3. Используйте социальный логин
Можете даже не использовать свою систему аккаунтов. Социальные сети, такие, как Twitter и Facebook, предлагают API авторизации. Поскольку большинство пользователей зарегистрированы в соц. сетях, им не придется создавать отдельный пароль для вашего сайта.
4. В форме авторизации используйте только e-mail адрес
Medium показывает еще один способ: наличие системы учетных записей без паролей для тех пользователей, которые не хотят использовать социальный логин. Это может стать отличным вариантом, по крайней мере, для «обычного» пользователя. Локальное хранилище или куки должны быть активированы пользователем, что может позволить злоумышленникам извлечь пароль. Также, этот способ плохо подойдет в случае, если ваша целевая аудитория очень заботится о безопасности, и скорее всего, куки у них отключены.
С другой стороны, для большинства пользователей это будет отличным опытом: вы создаете только имя пользователя и вводите адрес электронной почты. Никаких паролей. Никаких проблем.
5. Полностью удалите систему авторизации
Это покажется странным, но возможно, пароли вообще не понадобятся. Если вы не создаете социальную сеть, то нет и необходимости в создании аккаунта. Пользователи отлично могут комментировать ваш блог без необходимости регистрации. Я разработал медиа платформу, которая позволяла читателям комментировать статьи. Поскольку запись их электронных адресов была необходима из соображений безопасности, но в тоже время, противоречила законам о неприкосновенности частной жизни в Германии, мне пришлось изобрести альтернативу. Она позволяла пользователям комментировать статьи, и с каждым комментарием подтверждать электронный адрес. Т.е. каждый раз, когда пользователь писал комментарий, он получал письмо, в котором содержалась просьба подтвердить, что его написал именно он. Такой подход позволил создать связь между комментарием и электронным адресом без использования пароля.
Еще один пример: если вы заказываете что-то в интернете, то, обычно, существует возможность оформления заказа в качестве гостя. Почему бы и вам не применить такую практику? Опять же: никаких паролей. Никаких проблем. Просто, когда это необходимо, подтверждаете свою личность.
Перевод статьи Бастиана Хайнлайна