Подтвердить что ты не робот

Необходим ли HMAC, если все вызовы API выполняются через https?

Если все вызовы api отправляются через https, добавляет ли HMAC дополнительную защиту? Например, в oauth 2 клиент отправляет свой секретный ключ поставщику без какого-либо хэширования. Является ли это безопасным, потому что он превышает https? Хотя не строго oauth, будет ли использование HMAC при этом вызове сделать еще более безопасным? Если да, то почему это не стандартная часть oauth 2?

4b9b3361

Ответ 1

Стандарт OAuth 2 требует, чтобы сервер авторизации ДОЛЖЕН использовать HTTPS на всех своих конечных точках, и клиент ДОЛЖЕН использовать обратный вызов, защищенный HTTPS. Поскольку содержимое сообщений (заголовки, параметры запроса и фрагменты с учетом OAuth) известны только сервером и клиентом, использование HTTPS-соединения считается безопасным. Таким образом, нет никакой выгоды, использующей отдельную подпись для запроса авторизации, поэтому такие подписи даже не упоминаются в стандарте.

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

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

Ответ 2

HMAC предназначен для проверки подлинности, определяющей, кто вы, https для обеспечения безопасности транспорта, обеспечивающего на одном из посещений содержимое вашего транспорта.

Сервер авторизации Oauth 2 использует секретный ключ или пароль, определяющий, кто вы. Oauth2 сервер ресурсов использует токен с сервера авторизации, определяющий, кто вы. Использование https или не зависит от того, хотите ли вы защитить секретный ключ и токены.