Почему попытка неверного пароля займет намного больше времени, чем корректный?

17

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

Когда я пытаюсь войти на серверы Linux с моего рабочего стола Windows на работе, я заметил, что если я неправильно введу свой пароль, потребуется около 5 секунд, прежде чем я получу «Отказано в доступе». Затем, когда я правильно ввожу свой пароль, логин (вместе с приветственными сообщениями и т. Д.) Происходит практически мгновенно.

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

Кэм Джексон
источник
1
Есть хорошее обсуждение / ответ на этот вопрос на stackoverflow.com/questions/712339/… , в частности, в частности, о сокращении задержки сбоя Linux здесь и здесь
drzaus
то же самое произойдет, когда вы войдете в Windows с неверным паролем, но я замечаю, что время от времени меняется в широком диапазоне от нескольких секунд до 1-2 минут
phuclv

Ответы:

21

Вероятно, есть встроенный искусственный тайм-аут, чтобы затруднить атаку грубой силой.

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

Рис Гибсон
источник
1
Ах, не думал об этом. Это имеет смысл и объясняет, почему я чувствую, что я видел такую ​​же задержку в другом месте.
Кэм Джексон
он же брезгливый. Спасибо, Майкл Кьёрлинг ( superuser.com/questions/916187/… )
rfportilla
10

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

Йенс Эрат
источник
1

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

Чтобы проиллюстрировать атаку, рассмотрим программу (без этой преднамеренной задержки), которая проверяет введенный серийный номер, чтобы определить, соответствует ли он правильному серийному номеру , который в данном случае является « xyba » . Для эффективности программист решил проверять один символ за раз и выходить, как только будет найден неправильный символ, перед началом также проверяются длины.

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

  • Таким образом, злоумышленник может выбрать строку из четырех символов, и строка, начинающаяся с x, занимает больше всего времени. (угадай работы)
  • Затем атакующий может зафиксировать символ как x и изменить второй символ, и в этом случае он обнаружит, что y занимает больше всего времени.
  • Затем атакующий может исправить первые два символа как xy и изменить третий символ, и в этом случае он обнаружит, что b занимает самое длинное.
  • Затем атакующий может зафиксировать первые три символа как xyb и изменить четвертый символ, и в этом случае он обнаружит, что a занимает больше всего времени.

Следовательно, злоумышленники могут восстановить серийный символ по одному за раз.

Linearization.java.

Linearization.docx, пример вывода

Серийный номер длиной четыре символа и каждый символ имеет 128 возможных значений. Тогда есть 128 4 = 2 28 = 268 435 456 возможных сериалов . Если злоумышленник должен случайным образом угадать полные серийные номера, он будет угадывать серийный номер примерно в 2 27 = 134 217 728 попыток, что является огромным объемом работы . С другой стороны, с помощью линеаризации атаки выше, в средней только 128/2 = 64 догадок требуется для каждой буквы, на общую ожидаемую работу около 4 * 64 = 2 8 = 256 догадок, который представляет собой тривиальное количество работы.

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

Ашеш Кумар Сингх
источник