HMAC vs Basic auth, кто круче для REST?

Realist

Я так вижу, что для HMAC сервер должен хранить секрет если не открытым текстом, то по крайней мере так, что он может его расшифровать. А это ж очень плохо.
В BASIC пароль солишь, хешируешь и спишь спокойно.
Однако я вижу, что все упарываются по HMAC
docs.telesign.com/rest/content/rest-auth.html
а даже если и принимают BASIC как
http://www.plivo.com/docs/api/request/
то ключ, сука, на дашборде прямым текстом показывают
Проблема того, что базу сопрут и восстановят все пароли всех пользователей, уже никого не волнуют что-ли?
:mad:

luna89

Поддерживаю вопрос. Могу сказать, что описание тут
docs.telesign.com/rest/content/rest-auth.htm
скопипащено из доков амазона:
http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentic...

psm-home

Однако я вижу, что все упарываются по HMAC
Вероятно это зависит от наблюдателя, у меня противоположное впечатление. По-моему в основном сервисы используют BASIC auth (и еще разные вариации OAuth 2), а HMAC кроме амазона особо никто не использует.
Например GitHub или Stripe
HMAC в том виде, в котором его использует амазон дает, как я понимаю 3 вещи:
1) аутентификацию отправителя;
2) контроль целостности сообщения и
3) защиту от replay.
BASIC auth же дает только аутентификацию. Целостность и защиту от повторов обеспечивают, заворачивая обмен в HTTPS (TLS). Зато, как ты справедливо заметил, HMAC подразумевает shared secret, и сломав серверную сторону можно поиметь всех пользователей сервиса.
Похоже что большинство сервисов не извращаются и используют BASIC(OAuth 2) поверх HTTPS, пароли/токены доступа хэшируют и солят, чем-то вроде PBKDF2/bcrypt/scrypt.

Hastya

Похоже что большинство сервисов не извращаются и используют BASIC(OAuth 2) поверх HTTPS
HTTPS дает сильно больше того, что предоставляет голый HMAC (в том числе клиентские сертификаты, вот это всё), поэтому никакого особого резона связываться с HMAC нету.
Оставить комментарий
Имя или ник:
Комментарий: