5-значный PIN-код лучше, чем большинство паролей? - PullRequest
36 голосов
/ 20 июня 2009

Это то, что беспокоило меня много лет: почему большинство онлайн-сервисов высоко ценят энтропию пароля , ссылаясь на нее в качестве меры безопасности и применяя ее при выборе пользователем пароля?

Я решил выступить с этим вопросом после прочтения статьи «Считают ли что-нибудь надежные веб-пароли?» (и, конечно, классический мультфильм Дильберта ).

Типичная политика интернет-сайта - требовать не менее 6 или 8 цифр верхнего + нижнего регистра + цифрового пароля. Эта длина в некоторой степени относится к сложности атаки методом перебора, например восстановить пароль из хэша. Но типичный способ гадания в Интернете происходит, когда кто-то пытается войти на сервер, который можно отменить после нескольких попыток.

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

Итак, вот мое предложение 5-значный PIN . Я оставляю для каждого пользователя флаг «возможной атаки».

  1. Пользователь входит в систему правильно -> OK
  2. В противном случае продолжите сеанс https и разрешите еще 2 попытки
  3. Пользователь входит в систему -> OK
  4. В противном случае разрешите еще 2 попытки с 5-минутным перерывом перед ними
  5. Пользователь входит в систему -> OK
  6. Пользователь прерывает сеанс -> установить флаг
  7. Пользователь прерывает сеанс, но обычно входит в систему позже: предоставляет пользователю диалоговое окно и позволяет снять флажок
  8. Пользователь исчерпывает попытки выше: отправьте электронное письмо со ссылкой; разрешить очистить флаг
  9. Если в течение месяца имеется более 100 флагов, установите глобальный флаг «возможной атаки», который требует, чтобы люди, у которых нет файла cookie, отвечали на секретные вопросы
  10. В некоторых случаях автоматически очищать флаг пользователя (например, пользователь, наконец, вошел в систему с того же компьютера)

Давайте предположим, что имена пользователей каким-то образом известны (обратите внимание, что это не будет верно для большинства сайтов). Атака грубой силы против одного пользователя безнадежна - вы заблокированы после 5 попыток, поэтому у вас есть шанс 1/200000. Если вы попытаетесь угадать пароль более 200 раз в месяц, флаг исчезнет, ​​и вы ничего не получите. Если вы пробуете <200 пользователей в месяц, через год у вас будет <1% шанс сломать одного пользователя; вам гораздо лучше с фишингом, вирусами, социальной инженерией или чем-то еще. </p>

Размер сайта важен только в том смысле, что он не дает ложных срабатываний, то есть пользователей, которые искренне забывают свой пароль (скажем, 1% в месяц), восстанавливают его, но не снимают флажок (скажем, 1% из них), и когда вы не можете снять флаг автоматически (скажем, 10% из них). Это составляет 10 ожидаемых ложных положительных флагов в месяц на 10 6 пользователей - это означает, что сайт среднего размера имеет достаточно низкую вероятность входа в режим "паники", что в любом случае не так уж плохо .

Я считаю, что эта схема очень практична. Вот некоторые очевидные первые факты об этом (обновления) :

  • пособие : PIN-код легче запомнить. Я считаю, что это большое преимущество, поскольку теперь можно потребовать, чтобы пользователь запомнил сгенерированный вами пароль. Я считаю, что большинство людей гораздо лучше запоминают 5 случайных цифр, чем любой другой тип случайного пароля.
  • компромисс : хеширование не сильно поможет, если ваш злоумышленник знает как хешированный PIN-код, так и соль. Это возможно, если кто-то проник в вашу базу данных и узнает, каков ваш процесс посола. Однако я считаю, что стандартная энтропия паролей в этом случае тоже не поможет.
  • преимущество : люди гораздо счастливее запоминают случайные 5 цифр, чем случайные буквенно-цифровые пароли; поэтому гораздо проще также потребовать, чтобы мы генерировали пароль, а не пользователя. Это исключает атаки по словарю и личным данным.

Мои вопросы:

  1. Каковы другие компромиссы / преимущества моей схемы по сравнению с той, которую я описал как типичную?
  2. Не будут ли лучше сайты и организации среднего размера с моей схемой паролей?
  3. По каким причинам они выбирают схему, которую имеют?

Примечание : Я не рекомендую всегда иметь короткие пароли. Мои собственные веб-пароли обычно генерируются случайным образом и шифруются менеджером паролей (1Password) с 12-символьным паролем с высокой энтропией. Но я думаю, что часто схема выше будет лучше, чем у нас на практике.

Ответы [ 13 ]

1 голос
/ 20 июня 2009

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

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

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

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

0 голосов
/ 01 ноября 2017

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

Короче говоря, вам нужно учитывать не только сложность пароля и способ его хранения, но и простоту его сохранения в секрете и простоту ввода.

0 голосов
/ 29 февраля 2012

Я также экспериментирую с булавками против паролей. Это зависит от общей безопасности приложения, которое вы пытаетесь создать, но пароли обычно выигрывают каждый раз, если вы включаете некоторую проверку безопасности пароля. Насколько я понимаю, хорошая парольная фраза длиной не менее 14 символов может быть даже лучше, чем «типичный» пароль. Это позволяет людям вводить то, что они могут легко запомнить, но что-то, что может быть сложнее воспроизвести в атаке. Только чистое количество символов делает его трудным для взлома.

Если вы объединили парольную фразу с вышеописанным подходом к блокировке, возможно, у вас более безопасная система.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...