У меня есть веб-сервис, использующий HMAC для проверки подписанных запросов. В этом сценарии есть ключ (пароль), назначенный каждому абоненту моего сервиса. Пользователь, конечно, получает этот ключ, но мне также нужно сохранить ключ в моей базе данных, чтобы моя служба могла проверять подпись каждого входящего запроса.
Так что это тот случай, когда мне действительно нужно хранить пароли в базе данных в форме, которую я могу получить и использовать их. Я не могу использовать лучший метод хранения только соленого хэша пароля в базе данных.
Я мог бы зашифровать ключи, но тогда мне нужно где-то хранить ключ шифрования. Это довольно распространенный сценарий для защищенных веб-сервисов RESTful, поэтому подобные проблемы должны решать Amazon (AWS) и Microsoft (Azure).
Каковы лучшие практики в этой ситуации?