СКЗИ «ЛИРССЛ-CSP». Программный модуль LIRVPN
Программный модуль LIRVPN (ПМ LIRVPN) – это реализация протокола OpenVPN с использованием российской криптографии (ГОСТ 28147‑89, ГОСТ Р 34.12-2015 («кузнечик», «магма»), ГОСТ Р 34.13-2015 («кузнечик», «магма»), ГОСТ Р 34.11-94/ГОСТ Р 34.11-2012, ГОСТ Р 34.10-2001/ГОСТ Р 34.10-2012 ) и рекомендаций технического комитета по стандартизации «Криптографическая защита информации» (ТК 26).
ПМ LIRVPN функционирует на платформах Linux, MS Windows, OS X, Android и других Unix-системах.
ПМ LIRVPN - полнофункциональное решение для построения VPN на основе протоколов TLSv1, с помощью которого можно решить широкий круг задач по обеспечению безопасного обмена информацией, включая подключение удаленных пользователей к корпоративной сети, безопасную связь между удаленными офисами, решения для удаленного доступа масштаба предприятий с поддержкой балансировки нагрузки, отказоустойчивости и четко разграниченным контролем доступа.
ПМ LIRVPN прошел сертификационные испытания в составе СКЗИ «ЛИРССЛ-CSP» (положительное заключение №149.3.2.3-1433 от 18.07.2017 г.).
В качестве протокола транспортного уровня ПМ LIRVPN может использовать как TCP, так и UDP. Авторизация узлов проводится на сертификатах X509 v.3. Сервер LIRVPN поддерживает режим VPN-концентратора, то есть узла, который может принимать множество VPN-соединений от пользователей. При этом сервер может быть настроен в двух режимах - маршрутизатора или моста. Есть еще две особенности - возможность применения компрессии LZO и способность передавать маршруты клиентам. Компрессия позволяет ускорить передачу информации, а передача маршрутов позволяет передать клиенту список сетей, которые доступны через это VPN-соединение. Для контроля целостности передаваемых пактов используются следующие алгоритмы:
…
gost-mac 32 bit digest size
magma-mac 32 bit digest size
kuznechik-mac 64 bit digest size
…
#
Для шифрования трафика могут использоваться следующие алгоритмы:
gost89-cnt 256 bit default key (fixed)
magma-ofb 256 bit default key (fixed)
magma-cfb 256 bit default key (fixed)
kuznechik-ofb 256 bit default key (fixed)
kuznechik-cfb 256 bit default key (fixed)
Для авторизации по протоколу TLS используются следующие шифрсьюты:
GOST2001-GOST89-GOST89
GOST2012-GOST89-GOST89
…
#
Для авторизации по протоколу TLS должны быть заданы сертификаты и закрытие ключи, а также корневой сертификат удостоверяющего центра, где были получены сертификаты.
Сертификат сервера или клиента ПМ LIRVPN может задаваться тремя различными способами.
В первом случае указываются явные пути к файлам с сертификатами и ключу.
Во втором случае, достаточно указать путь к контейнеру PKCS#12, в котором хранятся сертификаты и ключ ЭП. Если в контейнере PKCS#12 находится и корневой сертификат, то необязательно указывать в конфиге отдельно путь к корневому сертификату.
В том случае, если закрытый ключ хранится на токене/смарткарте PKCS11, то необходимо задать библиотеку PKCS#11 для данного типа токена (парметр engine), значение параметра key должно принять значение pkcs11, а также задать путь в сертификату, по которому собственно и будет найден закрытый ключ.
Для выпуска серверных и клиентских сертификатов удобно использовать графическую утилиту foxxca, также входящую в состав СКЗИ «ЛИРССЛ-CSP»:
Конфигурационный файл клиента, может выглядеть следующим образом:
client
# Если закрытый ключ хранится на Токене
;engine /usr/local/lissi-soft/ls11sw/lib/libls11sw2016.so
#Допустимые алгоритмы шифрования
;cipher kuznechik-ofb
cipher kuznechik-cfb
;cipher gost89
;cipher gost89-cnt
;cipher magma-ofb
;cipher magma-cfb
#Допустимые алгоритмы контроля целостности
;auth magma-mac
;auth kuznechik-mac
auth gost-mac
#Допустимые шифрсьюты
tls-cipher GOST2001-GOST89-GOST89
;tls-cipher GOST2012-GOST89-GOST89
#Тип устройства
;dev tap
dev tun
#Протокол
proto tcp
;proto udp
#Удаленный узел
remote 192.168.0.241 1194
#Контроль соединения
ping 10
ping-restart 5
resolv-retry infinite
nobind
persist-key
persist-tun
#Корневой сертификат
ca cacert.pem
#Сертификат клиента
;cert client.crt
#Ключ клиента
;key client.key
#Если закрытый ключ хранится на токене
;key pkcs11
#Если сертификат и закрытый ключ находятся в PKCS#12
pkcs12 client_01234567.p12
#Уровень детализации лога
verb 3
Говоря о токенах PKCS#11, прежде всего имеются ввиду сертифицированные токены из состава СКЗИ «ЛИРССЛ-CSP», а именно программный токен LS11SW2016 и программно-аппаратный токен на базе USB-флешки - LS11USB2016. Естественно, могут использоваться токены и других производителей, разработанные в соответствии с требованиями документа «Методические рекомендации. Расширение PKCS#11 для использования российских стандартов ГОСТ Р 34.10-2012, ГОСТ Р 34.11-2012, ГОСТ Р 34.12-2015 и ГОСТ Р 34.13-2015», проект которого подготовлен Техническим Комитетом ТК-26. Методические рекомендации базируются на стандарте PKCS#11 v.2.40.
Для удобства подготовки конфигурационного файла и управления программным модулем LirVPN разработана графическая оболочка GuiLirVPN.
При старте утилита GuiLirVPN находится в трее:
После нажатия любой кнопкой мыши на иконке в трее на экране отобразится основное окно утилиты:
После того, как будет выбран программный модуль
lirvpn (на самом деле это может быть любой программный модуль OpenVPN), можно
приступать к формированию/загрузке файла конфигурации. При этом списки
алгоритмов безопасности уже оказываются заполненными:
Можно загрузить уже существующий конфигурационный файл («Конфиг->Открыть») и работать с ним. При этом существенно то, что если параметры файла не находят для себя места на вкладках «Основные», «Сертификаты»
или в верхней половине «Опции», то они попадают в поле «Список дополнительных параметров»:
Для редактирования (добавления, удаления, изменения) используется поле «Редактирование дополнительных функций». Именно наличие данного поля позволяет создавать конфигурационные файлы любой сложности.
После того как конфиг подготовлен, его, естественно, надо сохранить. После того как конфиг сохранен или загружен из файла, можно запускать программный модуль («Протокол VPN»). После нажатия кнопки «Старт VPN» на вкладке «Протокол VPN» , будет предложении ввести либо пароль к контейнеру PKCS#12, либо пароль для закрытого ключа, либо PIN-код для токена PKCS#11, на котором хранится закрытый ключ:
После ввода пароля в окне «Протокол работы» будут отображаться диагностические сообщения ПМ LIRVPN:
До тех пор, пока ПМ LIRVPN нормально работает, кнопка «VPN активен» будет блокирована. При успешном старте модуля LIRVPN изменится иконка и в трее:
Если модуль LIRVPN по каким-то причинам завершит свою работу или будет остановлен пользователем (кнопка «Стоп VPN»), то кнопка разблокируется и снова станет кнопкой «Старт VPN». Иконка в трее также вернется в исходное состояние.
Когда ПМ LIRVPN нормально работает, его можно убрать в трей. Для этого можно использовать как кнопку «В трей» на вкладке «Протокол работы» или пункт меню главного окна («Управление → Убрать в трей»), так и иконку в трее.
Дополнительные материалы: