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

В дайджест-аутентификации одноразовый номер генерируется сервером. Однако в аутентификации на основе OAuth одноразовый номер генерируется клиентом. Я хочу знать, если кто-нибудь знает причину разницы?

2 ответа

Одноразовые номера используются, чтобы сделать запрос уникальным. В схеме аутентификации без одноразового номера злонамеренный клиент может сгенерировать запрос ОДИН РАЗ и воспроизвести его МНОГИЕ раз, даже если вычисления являются дорогостоящими. Если схема аутентификации требует, чтобы клиент выполнял дорогостоящие вычисления для каждого отдельного запроса, так как запрос делается уникальным с помощью одноразового номера, атака воспроизведения свернута, поскольку его скорость только что изменилась с O(1) до O(N).

Причиной использования одноразового номера клиента является предотвращение повторных атак со стороны злонамеренных клиентов.
Причиной использования одноразового номера сервера является предотвращение атак типа "человек посередине" в случае, если злоумышленник получает действительный ответ сервера и пытается воспроизвести его для клиента.

http://en.wikipedia.org/wiki/Cryptographic_nonce есть хорошее объяснение и схема использования одноразового номера.

http://en.wikipedia.org/wiki/Digest_access_authentication есть хороший пример того, как одноразовые номера используются в реальном мире.

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

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

Или обратное. У меня уже есть токен, так почему я должен связаться с сервером, чтобы получить одноразовый номер, чтобы я мог снова связаться с сервером с моим запросом на обслуживание? Я мог бы сделать 1000 запросов на обслуживание, производя мои собственные одноразовые номера, это сокращает 2000 бит сетевого трафика, который был ненужным.

Другие вопросы по тегам