Защита REST API с использованием подписи

137
14

У меня есть некоторые проблемы, чтобы понять, как защитить REST API. Когда клиент регистрируется, пароль хэшируется и отправляется на сервер через HTTPS. Затем хеш-память сервера (пароль + приватный).

Когда клиент потребляет услугу отдыха, он создает запрос и подпись HMAC-SHA1 со своим собственным паролем (например, здесь). Server, как подписать запрос для сравнения с подписью клиента, если пароль hash-salted в базе данных?

Я знаю, что данные отображаются прозрачно через Интернет, но я просто хочу аутентифицировать пользователя.

спросил(а) 2021-01-19T16:04:44+03:00 2 месяца, 4 недели назад
1
Решение
114

Ты прав. Если пароль сохранен хэшированным и соленым на стороне сервера, невозможно проверить HMAC, вычисленный по запросу: MAC требуется общий секрет между клиентом и сервером.

Некоторые решения могут быть следующими:

    используя специальный ключ API, который не является паролем пользователя. Насколько я знаю, это выбор AWS. Пароль используется для административной работы в учетной записи пользователя (например, изменение контактной информации), а ключ API используется клиентом API. В этом случае, если этот ключ API скомпрометирован, относительно легко отменить его и создать новый с более ограниченным воздействием на безопасность. используя HTTPS с клиентскими сертификатами X509. Это более тяжелое решение и, вероятно, сложнее настроить. Однако он прозрачен для пользователей API, поскольку аутентификация перемещается на транспортный уровень протокола.

ответил(а) 2021-01-19T16:04:44+03:00 2 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема