OpenSSL, ГОСТ Engine и Provider для OpenVPN¶
OpenVPN в НАЙС.ОС собран с библиотекой OpenSSL. Через её EVP-интерфейс он получает реализации криптографических алгоритмов, которые используются в канале данных. ГОСТ-компоненты НАЙС.ОС расширяют OpenSSL российскими шифрами и хэш-функциями.
Проверка OpenSSL¶
openssl version -a
openssl list -providers
openssl list -cipher-algorithms | grep -Ei 'kuznyechik|magma|gost89'
openssl list -digest-algorithms | grep -Ei 'gost|tc26'
В НАЙС.ОС в списках видны, в частности:
| Тип | Примеры названий OpenSSL |
|---|---|
| Блочное шифрование | kuznyechik-cbc, kuznyechik-ctr, magma-cbc |
| Современные режимы | kuznyechik-mgm, magma-mgm, kuznyechik-ctr-acpkm |
| Хэширование | id-tc26-gost3411-12-256, id-tc26-gost3411-12-512 |
| Совместимость | gost89, gost89-cbc, id-GostR3411-94 |
Список OpenSSL шире, чем список режимов, которые OpenVPN принимает для data-ciphers. Например, появление kuznyechik-mgm среди алгоритмов OpenSSL не означает автоматического наличия этого варианта в openvpn --show-ciphers.
Engine и Provider¶
В НАЙС.ОС доступны два исторически разных механизма расширения OpenSSL: Engine и Provider. При этом для пользователя OpenVPN важнее не вид выбранного механизма, а реально доступные операции EVP и согласованные алгоритмы в журнале.
openssl list -providers показывает состояние отдельного процесса openssl, а не внутреннее состояние уже запущенного сервиса OpenVPN. Поэтому для проверки VPN дополнительно обязательны сообщения реального подключения.
Обновления криптографических компонентов НАЙС.ОС расширяют доступные возможности; после обновления перечитайте --show-ciphers и --show-digests и пройдите приёмочные тесты.
Как соотносятся режимы TLS и канала данных¶
OpenVPN задаёт data-ciphers для IP-трафика. Параметры tls-cipher и tls-ciphersuites относятся к управляющему TLS и работают в разных версиях TLS. Для ГОСТ-TLS недостаточно указать kuznyechik-cbc: необходим совместимый TLS-набор, соответствующие ключи, подписи и сертификаты обеих сторон.
См. OpenSSL: Engine и Provider и ГОСТ-TLS.
Upstream: gost-engine, OpenVPN manual.