2016-04-19 2 views
0

Некоторые службы REST, с которыми я столкнулся, требуют, чтобы я загрузил ключ API или какой-то общий секрет и просто передал это с заголовками.Является ли HMAC часто внедренным неправильно?

Но при попытке описать этот шаблон дизайна в поиске Google все, что я получаю, это «HMAC», который выглядит более сложным; HMAC предназначен для того, чтобы никогда не отправлять общий секрет непосредственно на сервер и включает хеширование секретного ключа другими данными.

Итак, на что я смотрю? Есть ли имя для этого?

+0

IINM, если он («ключ API», «общий секрет» или «серверный ключ») передается в заголовках, он используется для _Authorization_ (для доступа к API), в отличие от «пароля», более вероятного отправленного HTTPS. Ключи/разделяемые секреты, используемые для _sign или генерации токенов_, не отображаются и не передаются в заголовках - они используются с обеих сторон для генерации и проверки некоторого «сообщения» (например, ожидаемого отправителя, предполагаемого приемника, «святости» данных) не было подделано на транспорте и т. д.) ... – EdSF

ответ

0

Вы правы, используя ключ API в том, как вы описываете, не является HMAC. Его часто называют «аутентификацией ключа API» или некоторым подобным именем. Идентификация ключа API - это просто пароль, который передается, как правило, как заголовок вместе с каждым запросом.

Это безопасно только при соединении с HTTPS, так что любой, кто смотрит трафик, не может просто прочитать ключ API.

+0

Спасибо! Все чисто! –

Смежные вопросы