Проверка подлинности запроса – ответа

редактировать
Тип протокола проверки подлинности

В компьютерная безопасность, Аутентификация запрос – ответ - это семейство протоколов, в которых одна сторона представляет вопрос («вызов»), а другая сторона должна предоставить действительный ответ («ответ») для аутентификации.

Простейший пример протокол «запрос – ответ» - это пароль аутентификация, где запрос запрашивает пароль, а действительный ответ - это правильный пароль.

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

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

Более интересный метод «вызов – ответ» работает следующим образом. Скажем, Боб контролирует доступ к некоторому ресурсу. Алиса приходит в поисках входа. Боб бросает вызов, например "52w72y". Алиса должна ответить одной строкой символов, которая "соответствует" вызову, брошенному Бобом. «Подгонка» определяется алгоритмом, «известным» Бобу и Алисе. (Правильный ответ может быть таким же простым, как «63x83z» (каждый символ ответа на один больше, чем у вызова), но в реальном мире «правила» будут намного сложнее.) Боб каждый раз бросает новый вызов, и, таким образом, знание предыдущего правильного ответа (даже если он не «скрыт» средствами связи, используемыми между Алисой и Бобом) бесполезно.

Содержание

  • 1 Другие не криптографические протоколы
  • 2 Криптографические методы
  • 3 Простой пример последовательности взаимной аутентификации
  • 4 Хранение паролей
  • 5 Примеры
  • 6 См. Также
  • 7 Ссылки

Другие некриптографические протоколы

Протоколы запроса-ответа также используются для подтверждения вещей, кроме знания секретного значения. CAPTCHA, например, является разновидностью варианта теста Тьюринга, предназначенного для определения того, является ли зритель приложения Web реальным человеком. Вызов, отправленный зрителю, представляет собой искаженное изображение некоторого текста, и зритель отвечает, вводя этот текст. Искажение предназначено для затруднения автоматического оптического распознавания символов (OCR) и предотвращения передачи компьютерной программы за человека.

Криптографические методы

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

Один из способов сделать это включает использование пароля в качестве ключа шифрования для передачи некоторой случайно сгенерированной информации в качестве запроса, после чего другой конец должен вернуть в качестве своего ответа аналогичным образом зашифрованное значение, которое является некоторой предопределенной функцией первоначально предложенной информации, тем самым доказывая, что оно смогло расшифровать вызов. Например, в Kerberos запрос представляет собой зашифрованное целое число N, в то время как ответ представляет собой зашифрованное целое число N + 1, доказывающее, что другой конец смог расшифровать целое число N. В других вариантах хэш Функция работает с паролем и случайным значением запроса для создания значения ответа.

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

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

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

Аутентификация запрос – ответ может помочь решить проблему обмена сеансовыми ключами для шифрования. Используя функцию получения ключа, значение запроса и секрет могут быть объединены для создания непредсказуемого ключа шифрования для сеанса. Это особенно эффективно против атаки «злоумышленник посередине», поскольку злоумышленник не сможет получить сеансовый ключ из вызова, не зная секрета, и, следовательно, не сможет расшифровать поток данных.

Простой пример последовательности взаимной аутентификации

  • Сервер отправляет уникальное значение запроса sc клиенту
  • Клиент отправляет уникальное значение запроса cc на сервер
  • Сервер вычисляет sr = hash (cc + secret) и отправляет клиенту
  • Client вычисляет cr = hash (sc + secret) и отправляет на сервер
  • Сервер вычисляет ожидаемое значение cr и гарантирует, что клиент ответил правильно
  • Клиент вычисляет ожидаемое значение sr и гарантирует, что сервер ответил правильно

, где

  • sc- это вызов, сгенерированный сервером,
  • cc- вызов, созданный клиентом,
  • cr- ответ клиента,
  • sr- ответ сервера

Хранение паролей

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

Примеры

Примеры более сложных алгоритмов запрос-ответ :

Некоторые люди считают CAPTCHA разновидностью аутентификации запрос-ответ, которая блокирует спам-ботов.

См. Также

В Викиучебнике есть книга по темам: Интернет-технологии / Электронный спам

Ссылки

Последняя правка сделана 2021-05-14 04:49:47
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте