Что такое разумный и безопасный пароль для регистрации пользователя?

10

Это политика паролей, которую я только что получил от UPS (только для проверки статуса пакета):

Ваш пароль должен быть длиной от 8 до 26 символов. Он должен содержать как минимум три следующих типа символов: строчные буквы, заглавные буквы, цифры, специальные символы или пробелы. Пароль не может содержать ваш идентификатор пользователя, ваше имя или адрес электронной почты. (SSO_1007)

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

Что такое разумная и безопасная политика паролей при настройке сайта? Я думаю, что некоторые компании могут бояться, что некоторые хакеры пробуют пароли миллион или более раз, поэтому они добавляют все эти требования для «специальных символов, строчных и прописных букв», но не будет ли разумно отключить учетную запись или просто отключить пароль и требуется сброс пароля, если пользователь пытался 30 раз или 100 раз? Или добавить 5-секундную задержку каждый раз после того, как пользователь попробовал 30 раз? Если так, то эти специальные символы не будут столь необходимы.

nonopolarity
источник
1
если вы сбрасываете пароль после 30 попыток, вы просто даете отличную возможность раздражать других пользователей плохими людьми (хакерами / script-kiddys), которые сделают все еще хуже.
oezi
@oezi Вы имеете в виду, что хакеры могут раздражать хороших людей, просто войдя в систему 30 раз с поддельными паролями? Как насчет 5-секундной задержки после 30 попыток, которые я только что добавил?
неполярность
14
Не говоря уже о том, что я не могу относиться к максимальной длине пароля всерьез, когда он не разрешает «Правильное сшивание батареи».
Дэвид Торнли
6
Как насчет второго метода ниже в этом комиксе Xkcd ?
Роберт Харви
6
Привет 能量 能量, это, вероятно, лучший вопрос для дочернего сайта, IT Security , но он был задан и ответил там в нескольких различных формах. Проверьте вопросы, подобные этому или для получения дополнительной информации о контексте вокруг комментария Роберта Харви, взгляните на этот вопрос .

Ответы:

15

Честно говоря, я считаю, что наличие строгих требований к паролям раздражает, а не приносит пользу. Я бы сказал, что, как правило, наиболее разумным является указание длины, возможно, специальных символов + буквенно-цифровых символов. Все, что больше, просит людей записать свой пароль, что лишает смысла иметь надежные пароли. Я также ненавижу менять свой пароль каждые x дней с обычным нелепым набором правил (например, нельзя повторно использовать последние 25 паролей) - опять же, все, что нужно, это заставлять людей записывать вещи, чтобы они не забыли, в в этот момент вы могли бы вообще не спрашивать пароль.

Уэйн Молина
источник
4
Запись паролей не противоречит цели. Если на посту у меня написан действительно сложный пароль - он застрял на моем мониторе, тогда единственный способ получить доступ к моей учетной записи - это если они взломали мой дом и сидели за моим столом в моем кабинете. В этой ситуации у меня гораздо большая проблема, чем то, что кто-то может отслеживать мои поставки ИБП.
Qwerky
2
Что делать, если это политика компании, и сотрудник находит чей-то пароль? Ущерб все еще может быть причинен, и предполагаемая политика безопасных паролей мало поможет, если она настолько сложна, что большинство людей просто отправляют ее на свой монитор, чтобы любой проходящий мимо мог найти свой пароль для данных компании.
Уэйн Молина
2
+1, я полностью согласен с Уэйном. Большой, если не самый большой кусок угроз безопасности исходит изнутри. Политики, которые вынуждают пользователей в конечном итоге записывать пароли, полностью противоречат цели.
GrandmasterB
1
Не говоря уже о том, что вы можете раздражать пользователей, если им нужно придумать какой-то слишком сложный пароль, чтобы соответствовать правилам.
Маврик
1
@mouviciel Я доверяю этому достаточно, чтобы положить туда такие вещи, как мой кошелек и телефон, которые я ценю больше, чем почти каждый свой онлайн-аккаунт.
Qwerky
13

Мое мнение таково, что пароли должны иметь только требование длины. Вы не хотите, чтобы кто-то вводил «а» в качестве пароля. И, как показывает ответ xkcd, чрезвычайно сложный для запоминания пароль не всегда безопасен. Всегда позволяйте людям менять свой пароль. И забудьте о дерьме «Вы не можете использовать символы из предыдущего пароля».

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

Кроме того, строгая политика паролей ничего не изменит, если ваша база данных с открытым текстом взломана ошибкой SQL-инъекции ... или вы отправите пароли своим пользователям по электронной почте, и они будут перехвачены.

По сути, не делайте вашу систему паролей хлопотом для ваших пользователей, иначе это заставит их делать небезопасные вещи, чтобы они могли обойти это. Например, моя компания, получая выделенный сервер из центра обработки данных, установила нам пароли длиной 20 символов. Они были слишком безопасны, чтобы послать их нам по электронной почте, и их нужно было отправить по факсу. Мы не могли изменить пароли, только запрос на создание нового 20-символьного пароля. И так было для каждого пользователя ... так что в итоге мы просто сделали текстовый документ на наших рабочих столах с паролем. Кроме того, мы их больше не используем, потому что при всей их «безопасности» они были совершенно небезопасны.

Earlz
источник
Не говоря уже о том, что если вы делаете пароль достаточно сложным для запоминания, ваши пользователи обращаются к блокноту на своем столе. «Безопасный» пароль, который оставляет всех патетически открытыми для социальной инженерии, небезопасен.
Fomite
4

Не забудьте разрешить пробелы. Все, кого я знаю, могут набирать короткие фразы быстрее, чем они могут вводить первую букву каждого слова в фразе. Например, попробуйте набрать, Bird in a Treeа затем BiaT. Преимущество этого заключается в том, что если вы напишите смутно подходящую фразу, например pick Up milkили Meetings all dayна заметке, это, очевидно, не пароль.

Я не большой поклонник правил «у вас должны быть цифры и символы», но если вы применяете их последовательно (например, я всегда 1, а всегда @), то вы все равно можете написать английскую фразу на липкой, применить известные только для вас правила и введите B1rd in @ treeпароль. С точки зрения безопасности цифры и символы мало что добавляют, но они не должны сводить вас с ума как пользователя.

Сайты с максимальной длиной пароля раздражают, если моя милая фраза считается «слишком длинной». 26 кажется разумным. Я понимаю, что кто-то должен проектировать ширину столбца, но 12 просто тупо мало.

Кейт Грегори
источник
1
Это очень умно. Используйте интервальную фразу на каждый день ... Умный. Хотя я буду придерживаться своей системы общего надежного пароля с добавленным номером и буквой в зависимости от службы, в которой я вхожу. Только я знаю, как их сформировать, и она всегда одна и та же, но в результате пароль, скорее всего, отличается (не хотя всегда разные, но меня не волнуют эти редкие дубликаты).
Роберт Коритник
1
Ширина какого столбца? Текстовые поля обычно имеют внутреннюю прокрутку, и если вы храните незашифрованный пароль в БД, вы делаете это неправильно.
Питер Тейлор
БД сейчас дешевы. С хорошей кодировкой, если вы разрешите пароли длиной 50 символов, ширина в дБ будет 110 макс. (Точнее 102). Но я бы сделал 150 varchar ... хороший дизайн БД должен означать, что ни одна таблица не имеет более 20 столбцов, так что это не представляет большой проблемы.
tgkprog
2

Безопасный и удобный

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

Правила UPS являются разумными, за исключением:

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

Я не видел сброса после X попыток в указанных правилах, я думаю, что в большинстве случаев это глупо. Я думаю, вам лучше заблокировать кого-то на какое-то время, чем принудительно выполнять сброс. Это подразумевает определенный уровень безопасности. Если в этом нет необходимости, то это не так, и блокировка / сброс - это спорный вопрос.

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

Правила (и причины):

  • минимальная длина

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

  • запрет на использование одного английского слова (или любого другого языка)

Это предотвращает атаки по словарю.

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

Это увеличивает среднее пространство атаки.

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

Безопасные памятные пароли

Когда мне нужно создать пароль с ограничением длины, я всегда начинаю с фразы, поэтому у меня есть встроенная мнемоника. Я беру фразу и получаю одинаковый позиционный символ от каждого слова. Теперь у меня есть последовательность только символов. Затем я выбираю заглавные буквы, некоторые на основе собственных имен в фразе или по шаблону (первая и последняя, ​​каждая другая буква и т. Д.). Затем я добавляю знаки препинания и цифры, основанные на каком-то произвольном правиле или шаблоне. (т. е. все «j - это 7, используя« & », где есть« и »во фразе и т. д.).

Мама, только что убила человека. Приставь пистолет к его голове. Я нажал на курок, теперь он мертв.

Фраза предоставлена ​​Queen

  1. mjkampagahhpmtnhd - первая буква каждого слова
  2. MjkamPagahhPmtnhd - регистр соответствует регистру фразы
  3. Mjk0mP0g0hhPmtnhd - изменил 'a' на 0
  4. Mjk0mP0g0 () Pmtnhd - изменил «свою голову» на ()

После того, как я наберу это несколько раз, думая над фразой, у меня никогда не будет проблем с запоминанием.

dietbuddha
источник
1
Реальная проблема заключается в том, что учетную запись UPS будет использовать дюжина человек в компании. Блокировка их всех, потому что Фред в судоходном опечатке, это вызовет 1, хаос 2, люди переключатся на FedEx
Мартин Беккет
2
Я думаю, что проблема в том, что политики паршивых паролей не повышают realбезопасность (они увеличивают только восприятие безопасности) и могут фактически нанести вред безопасности.
Мартин Йорк,
@Martin Beckett: 1) Для сред, в которых используется политика блокировки, должны быть и обычно есть альтернативные способы немедленной разблокировки вашего пароля. 2) У каждого пользователя должна быть собственная учетная запись. 3) Безопасность B2B обычно лучше достигается с помощью систем с открытым ключом, таких как PKCS. которые не должны использовать пароли.
dietbuddha
@Loki Astari: Да, это верно для противной политики, вопрос в том, какие правила делают политику неприятной, учитывая ее контекст. Например, я думаю, что мы можем согласиться с тем, что требование минимальной длины является разумным. Я определенно согласен, что любое требование, которое включает в себя хранение истории ваших паролей, является неприятным, поскольку это не повышает безопасность.
dietbuddha
3
Ваши идеи выше кажутся логичными, но на самом деле вы побеждаете себя xkcd.com/936 . Я принципиально не согласен с тремя из ваших 4 пунктов и предположил бы, что все это приведет к более легкому взлому паролей. (Длина является единственным положительным). Лучший пароль был бы:Mama, just killed a man.
Мартин Йорк
1

Ваш пароль должен быть длиной от 8 до 26 символов

Минимальный пароль длиной 8 символов является наследием Lan Manager. Lan Manager хэшировал пароли, разбивая их на 2 строки по 7 символов, а затем хэшировал. Требуя минимум 8 символов, они гарантировали, что второе слово не будет таким же, как для пустого пароля (соли не было, поэтому каждый экземпляр из 7 пробелов хэшируется с одинаковым результатом).

Я уверен, что через 3 дня я забуду, что это за пароль.

Я сдался, правила настолько глупы и смешны, что я записываю их сейчас. Все, кроме немногих, которые я использую для веб-сайтов. Мой нынешний работодатель также отслеживает последние 24 использованных пароля, чтобы они не могли быть переработаны, и при этом пароль не может содержать английское слово длиной более 3 символов (вперед или назад). Это также гарантирует, что вы не используете предыдущее слово и увеличиваете некоторое число как часть его (поэтому, если бы вы P4ssw0rd1были использованы, вы не могли бы использовать P4ssw0rd2, ни P4ssw0rd0).

Я усвоил урок в офисе, когда мне пришлось сменить пароль, потребовалось 45 минут, чтобы система смогла принять замену, затем быстро забыл, что я придумала, пришлось сбросить его и потерять еще 45 минут, пытаясь найти что-то, что я мог вспомнить, что было достаточно сложным, чтобы соответствовать требованиям (некоторые из них перечислены выше, некоторые нет, а некоторые я не знаю). Не очень весело пытаться придумать что-то, что соответствует правилам, которые вам запрещено знать. По крайней мере, в таких играх, как Mastermind, вам дают подсказки о том, как близко вы подходите. В офисе некоторые люди используют смарт-карты , я не один из них.

Tangurena
источник
1

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

Муравей
источник
0

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

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

Я предпочитаю склоняться к разумному. Ключ должен наклониться к безопасному в вашем бэк-энде. Храните как можно меньше, используйте соли и т. Д. Все последние рекомендованные методы для кодирования паролей в вашей базе данных и их кодирования также одним способом. Тогда сохраняйте свою базу данных и свой код в безопасности. Также обучите всех, кто имеет права администратора вашей системы, использовать уникальный безопасный пароль. Недавно было показано, что объединение нескольких словарных слов безопаснее, чем перетаскивание в специальные символы и регистр. Это требовало составных словарных совпадений, которые действительно увеличивали время для хакеров, однако они оставались запоминающимися для пользователей.

Билл Липер
источник
1
Разум и безопасность не являются противоположными понятиями. Они могут конфликтовать, но обычно можно придумать что-то достаточно безопасное и пригодное для использования. Это может потребовать немного творческого мышления и не может быть адекватно измерено в контрольном списке, что может быть причиной того, почему его так не видели во многих местах.
Дэвид Торнли
Существует много историй, где разумность и безопасность находятся на противоположных концах. Вы можете либо разрешить пользователям иметь разумные пароли (без проверок, ничего не происходит), и это, вероятно, наименее безопасно, либо, возможно, без пароля, даже менее надежно. Microsoft научилась этому нелегко. Люди хотели лучше электронной почты, поэтому они решили, что давайте позволим сценарии, как в слове, а затем пришли вирусы электронной почты. С тех пор это была битва. Вы не можете иметь электронную почту с поддержкой Интернета (разумно), не открывая себя угрозам безопасности
Билл Липер
Конечно, легко иметь простоту использования и безопасность, диаметрально противоположную, если вы не сделаете правильный выбор. Возможно, многие решения Microsoft были сделаны в 2005 году и ранее, очевидно, без оглядки на безопасность.
Дэвид Торнли
Пожалуйста, приведите пример, где у вас есть простота использования и безопасность. Я работал во многих местах и ​​внедрил много безопасных систем, но пока не видел этого. И это будет обычное веб-приложение, а не использование ключа .ssh для доступа к удаленной системе. Моя бабушка должна быть в состоянии сделать это в своей системе Windows Vista :-)
Билл Липер
Рассмотрим парольные фразы, такие как недавний xkcd. Более безопасный, чем большинство паролей, обычно легче запомнить, чем хорошие, и часто более 26 символов, которые позволяет сайт.
Дэвид Торнли
0

Не словарное слово или его тривиальное изменение. Вот и все. Связка из двух словарных слов практически не ломается. Однобуквенная замена для символа, который также не является очевидной заменой (0-O, 1-I, 5-S).

Кроме того, если вы ограничиваете время ответа - пароль принимается / отклоняется через 1 с, и не допускаются две параллельные попытки для одного и того же входа в систему - одна должна завершиться (ОК или ошибка), прежде чем вы попробуете другой, любой не-словарь 6-буквенный все строчные буквы нет Взлом пароля для специальных символов займет 9 лет.

Научная фантастика
источник
0

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

Джесон Мартаджая
источник