stringtranslate.com

Аутентификация по принципу «вызов-ответ»

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

где

Этот конкретный пример уязвим для атаки методом отражения .

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

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

Примеры

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

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

Смотрите также

Ссылки

  1. ^ Хенк CA ван Тилборг; Сушил Джаджодиа (8 июля 2014 г.). Энциклопедия криптографии и безопасности. Springer Science & Business Media. ISBN 978-1-4419-5906-5.
  2. ^ Ахмед, Ибрагим Х.; Ханна, Джозайя П.; Фосонг, Эллиот; Альбрехт, Стефано В. (2021). Достижения в области практического применения агентов, многоагентных систем и общественного блага. Коллекция PAAMS . Конспект лекций по информатике. Том 12946. С. 14–26. doi :10.1007/978-3-030-85739-4. ISBN 978-3-030-85738-7. S2CID  237611496.
  3. ^ "Архивная копия". www.cag.lcs.mit.edu . Архивировано из оригинала 14 октября 2004 года . Получено 19 октября 2022 года .{{cite web}}: CS1 maint: архивная копия как заголовок ( ссылка )
  4. ^ «Аутентификация по принципу «вызов-ответ»».