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

144
15

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

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

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

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

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

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

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

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

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