key
Директива 'key' задаёт HMAC-ключ, используемый для генерации безопасных токенов для запросов в модуле Secure Token для NGINX.
Описание
Директива 'key' в модуле Secure Token для NGINX необходима для генерации защищённых токенов доставки контента, особенно при интеграции с CDN, такими как Akamai и CloudFront. Указав hex-encoded строку, представляющую ключ, сервер может создавать значения HMAC (Hash-based Message Authentication Code), которые обеспечивают целостность и подлинность токенов. Эти токены могут передаваться в виде query string parameters или cookies, что позволяет клиентам аутентифицировать доступ к защищённым ресурсам с использованием ограниченных по времени и защищённых токенов.
При задании директивы 'key' важно использовать надёжный ключ, который сложно угадать, так как он напрямую влияет на безопасность генерируемых токенов. Ключ используется вместе с параметрами, такими как время истечения срока действия и ACL (Access Control List), каждый из которых добавляет уровень безопасности и контроля доступа к ресурсам. HMAC вычисляется с использованием алгоритма хеширования SHA-256, что обеспечивает высокий уровень безопасности, поскольку для проверки целостности токена и защиты от подделки требуется исходный ключ.
Задание директивы 'key' обязательно, так как модуль не может генерировать действительные токены без неё. На серверной стороне этот ключ будет использоваться для вычисления HMAC для токена, что в конечном счёте обеспечивает безопасный метод управления доступом к ресурсам. Если ключ указан неверно, клиентам может быть отказано в доступе даже при наличии корректных токенов из-за несовпадения подписи.
Пример конфига
secure_token_akamai {
key 0123456789abcdef0123456789abcdef;
acl "allow all";
start 1h;
end 2h;
param_name "token";
}Убедитесь, что ключ достаточно длинный и сложный, чтобы предотвратить атаки перебором.
Ключ должен быть предоставлен в шестнадцатеричном формате; неправильное форматирование может привести к ошибкам при генерации токенов.
Изменения ключа требуют повторного распределения токенов, поскольку ранее выданные токены станут недействительными, если ключ изменится.