«Эти глупые правила, которые всех раздражают»: обсуждение практик работы с полями для ввода паролей

в 20:14, , рубрики: 1cloud, password rules, Блог компании 1cloud.ru, интерфейсы, информационная безопасность, поля для ввода паролей

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

«Эти глупые правила, которые всех раздражают»: обсуждение практик работы с полями для ввода паролей - 1
Фото — Andre Hunter — Unsplash

Неизвестная длина пароля

Почти все сайты ввели ограничения по длине пароля. Джефф Этвуд (Jeff Atwood), автор Stack Overflow и блога Coding Horror отмечает, что минимальная планка в десять знаков снижает шанс ввода пользователем слабого или популярного пароля на 80%. Но есть ресурсы, которые сообщают о минимальной длине пароля, но не говорят о наличии верхнего порога. В подборке можно найти примеры сайтов крупных вендоров, где в поле ввода пароля разрешены фразы длиной до 20 символов. Но узнать об этом ограничении можно исключительно методом проб и ошибок.

Разработчики сайта электронной системы оплаты дорог в США пошли дальше. Поле для ввода пароля вообще обрезает «лишние» символы. Пользователи не сразу понимают, почему пароли не совпадают при их вводе в соответствующие поля. Аналогичная проблема есть на сайте одного новозеландского авиаперевозчика. Причем она проявляется не на всех страницах. Таких ресурсов много — резидент Hacker News отмечает, что уже сбился со счета, сколько раз ему приходилось вручную модифицировать JS-скрипты во вкладке Source браузера, чтобы пароли обрабатывались нормально.

Есть мнение, что проблема с «сокращения» паролей сокрыта в методе их хранения. Возможно, доступы лежат в открытом виде (без хеширования) — например, в базе данных с полем varchar.

Регулярная смена пароля

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

Один из резидентов Hacker News рассказывает, что в его компании нужно изменять пароль каждые три месяца. Это его сильно раздражает. При этом программное обеспечение, которое отвечает за ротацию, путает порядок специальных символов при сохранении новых аутентификационных данных. Войти под измененным паролем становится невозможно. Пока ситуацию не исправили, он вынужден использовать более слабые цифробуквенные фразы. Требование регулярно менять пароль приводит и к тому, что работники компании начинают переиспользовать прошлые идентификаторы. Другой пользователь HN рассказал, что работал с одним телекоммуникационным провайдером, где сотрудник для входа в учетную запись применял всего два пароля: «Apr1999!» или «Mar1999!». Они выполняли требования к паролям лишь формально: прописные и строчные буквы, цифры и символы.

Управление вводом

Достоверно неизвестно, как появилась практика блокировки вставки паролей. Инженеры из Национального центра кибербезопасности США отмечают, что никто не видел какой-то научной статьи, исследования, правила или RFC на эту тему. Они также говорят, что это — плохая практика, которая ухудшает безопасность. Посетители ресурса теряют возможность использовать парольные менеджеры и генераторы. В итоге они выбирают простые пароли, чтобы не терять время и быстрее получать доступ к ресурсам. В свое время против блокировки вставок также высказывались региональный директор Microsoft Трой Хант (Troy Hunt) и редактор Wired Джозеф Кокс (Joseph Cox).

«Эти глупые правила, которые всех раздражают»: обсуждение практик работы с полями для ввода паролей - 2
Фото — Matthew Brodeur — Unsplash

Отметим, что обойти проблему может плагин Don’t F*ck With Paste для Chrome и Firefox. Также задачу можно решить вручную в настройках. Например, для «огненной лисы» флаг about:config: dom.event.clipboardevents.enabled нужно переключить на false. Однако это может нарушить работу «копировать/вставить» в Google Docs. Для борьбы с блокировкой copy/paste один из резидентов Hacker News написал собственный скрипт — AutoHotKey. Он читает данные из буфера обмена, а потом печатает их друг за другом в поле ввода с задержкой в 100–200 мс.

Кто стандартизирует парольные политики

Существуют организации, которые разрабатывают стандарты для работы с паролями. Например, Национальный институт стандартов и технологий США (NIST) составляет фреймворк NIST 800-63B. Он гласит, что длина пароля должна быть не менее восьми символов. При этом сайты просят устанавливать максимальную длину пароля как минимум на уровне 64 знаков.

Выбранный пароль не должен входить в список наиболее популярных фраз и содержать повторные буквы и цифры («aaaaaa» или «1234abcd»). Краткую выжимку с объяснениями этих правил подготовили инженеры из Sophos — компании-производителя средств информационной безопасности серверов и ПК. Стандарту NIST уже следует множество сайтов. Например, ресурс login.gov, предоставляющий услуги аутентификации для правительственных порталов США.

Есть и другие фреймворки (например, HITRUST), но в них до сих пор остались устаревшие практики вроде регулярной ротации паролей. Но их, как и NIST, постепенно совершенствуют.


Дополнительное чтение в блоге 1cloud:

«Эти глупые правила, которые всех раздражают»: обсуждение практик работы с полями для ввода паролей - 3 Что нового в Linux kernel 5.3
«Эти глупые правила, которые всех раздражают»: обсуждение практик работы с полями для ввода паролей - 4 «Как мы строим IaaS»: материалы о работе 1cloud

«Эти глупые правила, которые всех раздражают»: обсуждение практик работы с полями для ввода паролей - 5 Досмотр электронных устройств на границе — необходимость или нарушение прав человека?
«Эти глупые правила, которые всех раздражают»: обсуждение практик работы с полями для ввода паролей - 6 Почему разработчики мейнстрим-браузера снова отказались от отображения поддомена


Автор: 1cloud

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js