stringtranslate.com

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

где


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

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

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

Примеры

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

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

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

Рекомендации

  1. ^ Хенк Калифорния ван Тилборг; Сушил Яджодиа (8 июля 2014 г.). Энциклопедия криптографии и безопасности. Springer Science & Business Media. ISBN 978-1-4419-5906-5.
  2. ^ Ахмед, Ибрагим Х.; Ханна, Джозайя П.; Фосонг, Эллиот; Альбрехт, Стефано В. (2021). Достижения в области практического применения агентов, мультиагентных систем и социального блага. Коллекция ПААМС . Конспекты лекций по информатике. Том. 12946. стр. 14–26. дои : 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. ^ «Аутентификация запрос-ответ» .