Инструменты пользователя

Инструменты сайта


hmac

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

hmac [2018/11/04 18:19]
hmac [2020/06/13 13:45] (текущий)
Строка 1: Строка 1:
 +====== Алгоритм HMAC для OpenVPN ======
 +
 +{{htmlmetatags>
 +metatag-description=(Создание статического ключа HMAC для использования на сервере OpenVPN.)
 +}}
 +{{ :hmac-openvpn.jpg |}}
 +
 +Статический ключ (хэш-код) аутентификации сообщений (Hash-based Message Authentication Code, HMAC) обеспечивает проверку подлинности информации, передаваемой между сторонами. Этот ключ создается на сервере [[OpenVPN]].
 +
 +Директива **tls-auth** добавляет дополнительную подпись HMAC ко всем пакетам рукопожатия [[SSL]]/[[TLS]] (SSL/TLS handshake packets) для проверки целостности. Любой [[UDP]]-пакет, не имеющий правильной HMAC-подписи, может быть отброшен без дальнейшей обработки. HMAC-подпись, устанавливаемая директивой tls-auth, обеспечивает повышенный уровень безопасности дополнительно к безопасности, предоставляемой протоколом SSL/TLS. Это может защитить от:
 +
 +  * DoS-атак или флуда на UDP-порт OpenVPN.
 +  * Сканирования портов, предназначенного для определения прослушиваемых сервером UDP-портов.
 +  * Уязвимостей, связанных с переполнением буфера в реализации SSL/TLS.
 +  * Попыток инициации SSL/TLS-рукопожатия от несанкционированной машины (хотя, в конечном итоге, такие рукопожатия не пройдут аутентификацию, tls-auth может отсечь их на гораздо более ранней стадии).
 +
 +
 +  * Для создания ключа HMAC (ta.key) используйте команду openvpn с опциями --genkey и --secret.<file>
 +openvpn --genkey --secret ta.key
 +
 +mv ta.key /etc/openvpn/keys/
 +</file>
 +  * Для использования ключа HMAC нужно<file>
 +# Для еще большей безопасности чем предоставляет
 +# SSL/TLS, создайте "HMAC-файрвол",
 +# чтобы заблокировать DoS-атаки и UDP-флуд.
 +#
 +# Генерация:
 +#   openvpn --genkey --secret ta.key
 +#
 +# Сервер и каждый клиент должен иметь
 +# копию этого ключа.
 +# Второй параметр должен быть '0'
 +# на сервере и '1 'на клиентах.
 +;tls-auth ta.key 0 # Этот файл является секретным
 +</file>для сервера прописать параметр <file>
 +tls-auth /etc/openvpn/keys/ta.key 0
 +</file>а в пользовательском конфигурационном файле<file>
 +tls-auth /etc/openvpn/keys/ta.key 1
 +</file>
 +
 +