secure_link_hmac_algorithm
Определяет алгоритм хеширования HMAC, используемый для создания защищённых ссылок в NGINX.
Описание
Директива secure_link_hmac_algorithm задаёт криптографическую хеш‑функцию, используемую для генерации HMAC (код аутентификации сообщения на основе хеша) для защищённых ссылок на сервере NGINX. Эта директива, являющаяся частью Alternative NGINX HMAC Secure Link module, позволяет выбирать из множества хеш‑алгоритмов, поддерживаемых OpenSSL, таких как sha256, sha512, md5 и многие другие. Выбор конкретной хеш‑функции влияет как на уровень безопасности, так и на производительность операций проверки ссылок, поскольку различные алгоритмы отличаются по сложности и устойчивости к коллизиям.
Когда осуществляется доступ к защищённой ссылке, NGINX использует алгоритм, заданный этой директивой, для вычисления HMAC на основе составленного сообщения, которое обычно содержит URI, метку времени и необязательный период истечения срока действия. Полученный HMAC затем сравнивается с токеном, переданным в HTTP‑запросе, для проверки целостности и действительности ссылки. Если вычисленный HMAC совпадает с токеном и срок действия ссылки не истёк, доступ предоставляется. Такая гибкость поддерживает различные фреймворки безопасности и обеспечивает соответствие генерации ссылок политике безопасности организации.
Пример конфига
location ^~ /files/ {
secure_link_hmac "$arg_st,$arg_ts,$arg_e";
secure_link_hmac_secret "my_secret_key";
secure_link_hmac_message "$uri|$arg_ts|$arg_e";
secure_link_hmac_algorithm sha256;
if ($secure_link_hmac != "1") {
return 404;
}
rewrite ^/files/(.*)$ /files/$1 break;
}Убедитесь, что указанный алгоритм поддерживается версией OpenSSL, используемой с NGINX.
Изменение алгоритма может потребовать обновления как серверных, так и клиентских реализаций для обеспечения совместимости.
Если используется менее безопасный алгоритм, такой как MD5, учтите связанные с этим риски безопасности.