Должен ли я налагать максимальную длину на пароли?

Я понимаю, что наложение минимальной длины на пароли имеет большой смысл (чтобы сохранить пользователей от себя), но у моего банка есть требование, чтобы пароли находились между 6 и 8 символами, и я начал задаваться вопросом …

  • Разве это не облегчило бы атаки на грубые силы? (Плохо)
  • Означает ли это, что мой пароль хранится в незашифрованном виде? (Плохо)

Если кто-то (надеюсь), какие-то хорошие профессионалы в области ИТ-безопасности, работающие на них, налагают максимальную длину пароля, должен ли я думать о подобном? Каковы плюсы и минусы этого?

Пароли hashируются до 32, 40, 128, независимо от длины. Единственной причиной минимальной длины является предотrotation простого угадывания паролей. Нет цели для максимальной длины.

Обязательный XKCD объясняет, почему вы делаете своего пользователя плохим сервисом, если вы накладываете максимальную длину:

Обязательный XKCD

Максимальная длина, указанная в поле пароля, должна быть прочитана как ПРЕДУПРЕЖДЕНИЕ О БЕЗОПАСНОСТИ : любой разумный пользователь, ответственный за безопасность, должен принять худшее и ожидать, что этот сайт будет хранить ваш пароль буквально (т. Е. Не хешировать, как объясняется эпохвольфом).

В этом случае: (a) избегайте использования этого сайта, например, чумы (они, очевидно, знают гайки о безопасности) (b) если вы должны использовать сайт, убедитесь, что ваш пароль уникален – в отличие от любого пароля, который вы используете в другом месте ,

Если вы разрабатываете сайт, который принимает пароли, НЕ устанавливайте глупый пароль, если вы не хотите, чтобы тарелка была с той же кистью.

[Внутренне, конечно, ваш код может обрабатывать только первые 256/1028 / 2k / 4k (любые) байты как «значимые», чтобы избежать хрустов на мамонтовых паролях.]

Разрешение полностью неограниченной длины пароля имеет один главный недостаток, если вы принимаете пароль из ненадежных источников.

Отправитель может попытаться дать вам такой длинный пароль, что это приведет к отказу в обслуживании других людей. Например, если пароль составляет 1 ГБ данных, и вы тратите все свое время на его принятие до тех пор, пока не исчерпаете память. Теперь предположим, что этот человек отправляет вам этот пароль столько раз, сколько вы готовы принять. Если вы не будете осторожны с другими параметрами, это может привести к DoS-атаке.

Установка верхней границы примерно на 256 символов кажется слишком щедрым по сегодняшним меркам.

Во-первых, не предполагайте, что у банков есть хорошие профессионалы в области ИТ-безопасности, работающие на них. Много нет .

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

Максимальное ограничение длины пароля теперь обескураживается чит-листом аутентификации OWASP

https://www.owasp.org/index.php/Authentication_Cheat_Sheet

Ссылаясь на весь абзац:

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

Приложение должно соблюдать минимальную длину паролей. Пароли менее 10 символов считаются слабыми ([1]). Несмотря на то, что минимальное соблюдение длины может вызвать проблемы с запоминанием паролей среди некоторых пользователей, приложения должны поощрять их устанавливать фразы (предложения или комбинации слов), которые могут быть намного длиннее, чем типичные пароли, и тем не менее гораздо легче запомнить.

Максимальная длина пароля не должна быть слишком низкой, так как это предотвратит создание пользователем паролей. Типичная максимальная длина – 128 символов. Парольные фразы длиной менее 20 символов обычно считаются слабыми, если они состоят только из латинских символов нижнего регистра. Каждый персонаж имеет значение !!

Убедитесь, что каждый символ, который пользователь вводит, действительно включен в пароль. Мы видели системы, которые усекают пароль на длине короче, чем предоставлен пользователем (например, усекаются с 15 символами, когда они ввели 20). Обычно это обрабатывается путем установки длины полей ввода всех паролей точно такой же длины, как и пароль максимальной длины. Это особенно важно, если ваша максимальная длина пароля коротка, например 20-30 символов.

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

Другой процесс мышления может заключаться в том, что, если пользователь вынужден идти с коротким паролем, они с большей вероятностью изобретают случайную бред, чем легко угадать (их друзьями / семьей) ловушку или псевдоним. Этот подход, конечно, эффективен только в том случае, если frontend принудительно смешивает числа / буквы и отклоняет пароли, которые содержат словарные слова, включая слова, написанные на l33t-talk.

Одна потенциально обоснованная причина наложить некоторую максимальную длину пароля заключается в том, что процесс его hashирования (из-за использования медленной функции hashирования, такой как bcrypt) занимает слишком много времени; что можно было бы злоупотреблять, чтобы выполнить атаку DOS на сервер.

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

Я думаю, вы очень правы в обоих пунктах. Если они хранят hashированные пароли, как и следовало бы, длина пароля не влияет на их схему БД вообще. Наличие открытой длины пароля генерирует еще одну переменную, которую должен учитывать злоумышленник.

Трудно заметить, что для ограничения длины пароля, кроме плохого дизайна, трудно найти оправдание.

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

Хранение дешево, поэтому ограничьте длину пароля. Даже если вы шифруете пароль, а не просто его хешируете, строка с 64 символами не будет содержать более шести символов, чтобы шифровать.

Скорее всего, банковская система накладывает более старую систему, поэтому они могут разрешать определенное количество места для пароля.

Мой банк делает это тоже. Он использовал любой пароль, и у меня было 20 символов. Однажды я изменил его, и вот, он дал мне максимум 8, и вырезал не буквенно-цифровые символы, которые были в моем старом пароле. Не имело для меня никакого смысла.

Все базовые системы в банке работали до того, когда я использовал свой 20-символьный пароль с не альфа-числами, поэтому устаревшая поддержка не могла быть причиной. И даже если бы это было так, они все равно должны позволять вам иметь произвольные пароли, а затем создавать hash, который соответствует требованиям устаревших систем. Еще лучше, они должны исправить устаревшие системы.

Решение для смарт-карт не пойдет мне на пользу. У меня уже слишком много карт, как есть … Мне не нужен другой трюк.

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

Игнорируйте людей, говорящих не для проверки длинных паролей. Owasp буквально говорит, что 128 символов должно быть достаточно. Чтобы дать достаточно пространства для дыхания, вы можете дать немного больше 300, 250, 500, если вам это нравится.

https://www.owasp.org/index.php/Authentication_Cheat_Sheet#Password_Length

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

Максимальная длина пароля не должна быть слишком низкой, так как это предотвратит создание пользователем паролей. Типичная максимальная длина – 128 символов . Парольные фразы длиной менее 20 символов обычно считаются слабыми, если они состоят только из латинских символов нижнего регистра.

Должна ли быть максимальная длина? Это любопытная тема в ИТ в том, что более длинные пароли, как правило, сложнее запомнить, и поэтому более вероятно, что они будут записаны (BIG no-no по очевидным причинам). Более длинные пароли также, как правило, забываются больше, что, хотя и не обязательно представляет угрозу безопасности, может привести к административным проблемам, потерянной производительности и т. Д. Админы, которые считают, что эти проблемы нажимают, скорее всего, накладывают максимальную длину на пароли.

Я лично верю в эту конкретную проблему каждому своему пользователю. Если вы думаете, что можете вспомнить пароль на 40 символов, тогда вам будет больше силы!

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

Более длинные пароли или фразы для прочтений сложнее взломать просто на основе длины и легче запомнить, чем требовать сложного пароля.

Вероятно, лучше всего пойти на довольно длинную (10+) минимальную длину, ограничив длину бесполезной.

Устаревшие системы (упомянутые уже) или сопряженные с внешними поставщиками системы могут потребовать 8 символов. Это также может быть ошибочной попыткой спасти пользователей от самих себя. Ограничение этого способа приведет к слишком большому количеству паролей pssw0rd1, pssw0rd2 и т. Д. В системе.

Одна из причин, по которой пароли не могут быть хешированы, – это используемый алгоритм аутентификации. Например, некоторые алгоритмы дайджеста требуют на сервере простой текстовой версии пароля, так как механизм аутентификации включает в себя как клиент, так и сервер, выполняющий одни и те же математические данные по введенному паролю (который обычно не будет выдавать один и тот же вывод каждый раз, когда пароль сочетается со случайным образом генерируемым «nonce», который разделяется между двумя машинами).

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

Для проверки подлинности по другим каналам, не зашифрованным, существует функция Digst auth. Если вы используете SSL или какое-то другое полноканальное шифрование, тогда нет необходимости использовать механизмы дайджест-авторизации, то есть пароли могут быть сохранены hashированием вместо этого (поскольку пароли могут безопасно отправлять незашифрованный текст по кабелю (для определенного значения безопасности).

Постарайтесь не налагать никаких ограничений, если это необходимо. Будьте предупреждены: он может и понадобится во многих разных случаях. Одной из причин является обращение с устаревшими системами. Убедитесь, что вы хорошо разбираетесь в случае очень длинных паролей (может ли ваша система обрабатывать 10 МБ длинных паролей?). Вы можете столкнуться с проблемами отказа в обслуживании (DoS), потому что функции Key Defivation Functions (KDF), которые вы будете использовать (обычно PBKDF2, bcrypt, scrypt), потребуют много времени и ресурсов. Пример реальной жизни: http://arstechnica.com/security/2013/09/long-passwords-are-good-but-too-much-length-can-be-bad-for-security/

Звук просто звучит просто неправильно. Если должен быть предел, тогда по крайней мере 20 символов лучше.

Я думаю, что единственный предел, который должен быть применен, похож на лимит в 2000 букв или что-то еще слишком высокое, но только для ограничения размера базы данных, если это проблема

  • Почему безопасность через неясность - плохая идея?
  • Шифрование учетных данных в приложении WPF
  • Обработка криптовых исключений
  • Лучший способ создать ключи AES, чем посев SecureRandom
  • Java - шифрование / дешифрование имени пользователя и пароля из файла конфигурации
  • Interesting Posts

    Как я могу увидеть визуальный оверлей клавиш быстрого доступа, которые я нажал?

    с использованием двух масштабных gradleиентов цвета на одном ggplot

    В чем разница между шаблонами зависимостей зависимостей и шаблонов Locator?

    Плохой URL-адрес при запросе с помощью NSURL

    Получение контента / сообщения из HttpResponseMessage

    Как создать изображение из UILabel?

    Как удалить метаданные всех файлов в папке и вложенных папках?

    Подключение к сети Wi-Fi через терминал Mac

    Могут ли Robocopy отслеживать файлы с увеличением времени менее одной минуты?

    Как использовать метатег ‘og’ (Open Graph) для общего доступа Facebook

    Почему отсутствует опция «ad hoc network» при создании сетевого подключения в Vista?

    Что написано на стороне «ключа тайны» на клавиатуре IBM PC 3180?

    Обновление операционной системы Windows 8 Enterprise до Windows 8.1 Enterprise KMS

    Требует ли std :: mt19937 разминки?

    Skype делает мой процессор трэш примерно на 25%, а мой поклонник

    Давайте будем гением компьютера.