Подтвердить что ты не робот

Является ли 5-значный ПИН лучше, чем большинство паролей?

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

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

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

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

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

  • Пользователь регистрируется правильно → OK
  • В противном случае сохраните сеанс https и разрешите еще 2 попытки.
  • Вход пользователя → OK
  • В противном случае разрешите еще 2 попытки с 5-минутным перерывом перед ними.
  • Вход пользователя → OK
  • Пользователь прерывает сеанс → устанавливает флаг
  • Пользователь прерывает сеанс, но регистрируется в порядке позже: присутствует пользователь с диалоговым окном и позволяет очистить флаг
  • Пользователь исчерпывает вышеприведенные попытки: отправьте письмо по ссылке; разрешить очистку флага
  • Если в течение месяца установлено более 100 флагов, установите глобальный флаг "возможной атаки", который требует, чтобы люди, у которых нет вопросов безопасности ответа cookie.
  • Автоматически очищать флаг пользователя в некоторых случаях (например, пользователь, наконец, зарегистрировался с того же компьютера)

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

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

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

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

Мои вопросы:

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

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

4b9b3361

Ответ 1

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

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

Затем с 5-значным PIN-кодом он слишком короткий, чтобы защитить хэш. Есть радужные таблицы (или даже поисковые запросы Google), которые позволят кому-то вернуть пароль, если они получат хэш.

Ответ 2

Имейте в виду, что злоумышленник с 3.000 попытками может успешно заблокировать 1000 учетных записей в течение нескольких минут. Другое дело, что он может изменить шансы одного успешного входа в систему, пробуя тысячи разных учетных записей в день. Является OpenID не вариант?

Обновление

Просто было немного вдохновения в отношении 5-значной вещи. Если 5 цифр (10 ^ 5 = 100 000) действительно легко запомнить и безопасно в то же время, что об этих случаях:

4 letters all lowercase (26^4 = 456.976) => abcd
3 letters with mixed cases (52^3 = 140.608) => aBc
3 letters lowercase + numbers (36^3 = 46.656) => ab1

Ответ 3

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

Ответ 4

Остерегайтесь обработки сеанса

Я не слишком разбираюсь в обработке сеанса, но, насколько я знаю, большую часть времени он использует с помощью файлов cookie. Когда у вас есть такая схема, как ваша, необходимо записывать ложные попытки в базу данных или в специальные файлы на вашем сервере, так как вы не можете полагаться на обработку сеанса (в вашем описании это звучит немного, как вы можете просто "провести сессию" чтобы иметь всю правду..."), поскольку сеансы через Интернет очень уязвимы. Это всего лишь куча файлов cookie (которые могут быть удалены) и/или названия страниц (они также могут быть испорчены). Единственное, на что вы можете положиться, это то, что пользователь по-прежнему проводит сеанс - вы не можете определить, какое из них (скремблирование) нового соединения не является вашим старым пользователем...

В частности, нет никакого различия в различии между "Пользователь имеет еще сеанс" и "Пользователь прерывает сеанс" (ваш элемент 7), это просто пренебрежимая разница и может также стать дырой в безопасности.

Вспоминание не намного проще

Вы также говорите, что запоминание 5 цифр проще. Это может быть правильно для вашей кредитной карты или банковской карты (в Германии у нас есть 4-значный PIN-код), но для веб-сайтов у вас всегда есть проблема, что эти многие веб-сайты имеют пароли. Помните, что десятки пятизначных чисел так же сложны, как и множество паролей.

Ответ 5

Я все еще не понимаю, почему люди ограничивают длину пароля вообще. Разве мне было бы легче запомнить предложение или фразу? Например, может потребоваться, чтобы мой пароль был "this is my stackoverflow password". У меня возникнут серьезные проблемы с памятью, если я это забуду. Его длина составляет 34 символа и использует только алфавит из 27 символов, но по-прежнему невозможно поменять хеш (4.6 x 10 48 возможные перестановки).

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

Ответ 6

Реальная проблема? Люди.

Я знаю школьный округ с 4 паролями: 1111, 2222, 3333 и 4444. Почему? Пользователи собрались вместе и согласились сделать это, чтобы они всегда могли войти, когда персонал был дома. Слишком большая боль, чтобы попасть в закрытый компьютер для обедов, когда работник по обеду был болен.

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

Пользователи безумны.

Ответ 7

По этой логике, если 5 цифр легче запомнить, чем 8 символов, но содержат достаточную энтропию, то одна цифра и три нечувствительных к регистру буквы должны быть еще проще!

10**5 = 100,000
26**3 * 10 = 175,760

Теперь всего четыре маленьких персонажа, но они передают больше энтропии!

Возможно, я просто использую свои инициалы, а затем цифру 1.,.

Я не доказал этого, кроме того, что существует большая двусмысленная серая область между reductio ad absurdum и сарказмом.

Ответ 8

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

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

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

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

Ответ 9

ПИН против паролей, пароли выигрывают, не совершенны, но с сильной политикой, намного лучше, чем ПИН.

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

Ответ 10

Я думаю, что было бы легче запомнить "кодовые фразы, избивающие PIN-коды в любой день!", что приведет к нападению грубой силы на что-то вроде 400 триллионов лет.

Ответ 11

Таким образом, полагаясь на блокировку для безопасности, это плохой пользовательский интерфейс и приведет к тому, что злоумышленник заблокирует несколько учетных записей, что приведет к неудобствам для реальных пользователей. Вместо этого используйте более сильные пароли с засоленным хэшем, которые сложнее разбить с использованием грубой силы и не подвержены атакам в Rainbow table, если выбор между PIN-кодом и паролем. Если выбор относится к парольной фразе, паролю и PIN-коду. Моя рекомендация - перейти с паролем, за которым следует пароль, а затем PIN-код в порядке убывания предпочтения. Парольная фраза ( > 10 символов) обычно более безопасна, чем пароль (от 6 до 8 символов), но не дает большого опыта, так как пользователю нужно вводить парольную фразу ( > 10 символов) каждый раз! Сделайте выбор на основе того, насколько чувствительны данные и насколько хорош пользователь, которого вы хотите предоставить. Подождите минуту. Исследуйте новую новую область аутентификации без аутентификации с помощью мобильного устройства в качестве аутентификатора.

Ответ 12

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

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

Ответ 13

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

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