auth_hash_algorithm
Задает алгоритм хеширования, используемый для аутентификации хешей безопасных ссылок в NGINX.
Описание
Директива auth_hash_algorithm в NGINX позволяет администраторам указывать алгоритм хеширования, который будет использоваться при генерации безопасных ссылок для аутентификации. Этот алгоритм имеет решающее значение для создания защищённого токена, который объединяет заданное сообщение, секретный ключ и, при необходимости, информацию о временной метке. Он использует криптографические функции, определённые в OpenSSL, поддерживая множество алгоритмов, включая SHA-256, SHA-512, MD5 и многие другие.
Чтобы использовать директиву auth_hash_algorithm, её необходимо определить в контексте http, server или location. Директива принимает один аргумент — имя алгоритма в виде строки. Когда сервер обрабатывает входящий запрос, содержащий безопасную ссылку, он будет применять указанный алгоритм для проверки хеша по ожидаемому значению, полученному из соответствующего сообщения и секретного ключа. Такое поведение значительно повышает безопасность ссылок с чувствительными ко времени данными, предотвращая неавторизованный доступ к ресурсам на основе недействительных токенов.
Каждый алгоритм, реализованный в модуле, использует свой способ преобразования входных данных в защищённый токен. Выбор алгоритма может зависеть от требований безопасности или соображений производительности; например, более сложные алгоритмы могут обеспечивать более высокий уровень безопасности за счёт увеличения вычислительной нагрузки. Возможность выбора алгоритма позволяет конфигурациям NGINX адаптироваться к уникальным требованиям различных приложений в разных средах.
Пример конфига
location /protected {
auth_hash on;
auth_hash_secret "your_secret_key";
auth_hash_message "$uri|$arg_timestamp|$auth_hash_secret";
auth_hash_algorithm sha256;
auth_hash_check_time $arg_timestamp;
auth_hash_check_token $arg_token;
}Убедитесь, что указанный алгоритм поддерживается версией OpenSSL, используемой в сборке NGINX.
Использование небезопасного алгоритма хеширования (например, MD5) может скомпрометировать безопасность; отдавайте предпочтение более сильным алгоритмам, таким как SHA-256 или SHA-512.
Избегайте использования нестандартных символов в имени алгоритма, чтобы предотвратить ошибки конфигурации.