Каково значение «code_verifier» в PKCE OAuth 2.0? - PullRequest
1 голос
/ 10 апреля 2019

В PKCE я понимаю, что code_verifier используется для создания вызова кода, и позже это значение code_verifier проверяется сервером авторизации для завершения процесса PKCE.

Насколько чувствительно это значение code_verfier? Нужно ли хранить это значение в секрете? Какие все атаки может выполнить злоумышленник в случае утечки этого значения?

1 Ответ

2 голосов
/ 10 апреля 2019

Действительно, code_verifier чувствителен: это механизм, с помощью которого клиент при вызове к конечной точке токена доказывает, что именно он инициировал запрос авторизации.

Это значениедолжен храниться в секрете, см. также ниже.

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

Обратите внимание, что даже если не использовать какое-либо преобразование (хэширования) на code_verifier, но отправить его как plain в code_challenge в запросе авторизации, это все равно затруднит злоумышленнику, которыйможет перехватить обратный вызов на URI перенаправления, поскольку ему также придется перехватывать исходящий запрос.

Но в общем случае code_verifier следует хэшировать с SHA256 в code_challenge, так что даже при перехвате запросазлоумышленник не может вывести code_verifier.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...