Re: OpenVPN + rutoken + неэкспортируемая пара ГОСТ = возможно? (решено!)
Павел Анфимов, файл конфигурации который загружается при инициализации клиента?
Вы не авторизованы. Пожалуйста, войдите или зарегистрируйтесь.
Форум Рутокен → Рутокен и Open Source → OpenVPN + rutoken + неэкспортируемая пара ГОСТ = возможно? (решено!)
Чтобы отправить ответ, нужно авторизоваться или зарегистрироваться
Павел Анфимов, файл конфигурации который загружается при инициализации клиента?
Павел Анфимов, можно подробней, что именно храниться на токене, кроме ключевой пары?
Сергей Оглы, параметры конфигурации, такие как сервер Рутокен VPN и проч.
Павел Анфимов, а как загружаете эти данные? Не вводите в заблуждение ваших клиентов...
Все оч. просто: есть желание подружить ваш клиент Рутокен VPN клиент + свисток РуТокен(было желание купить несколько десятков) и OpenVPN сервер, но появились сомнения в вашей тех. поддержке.
Сергей Оглы, совместно с клиентом Рутокен VPN клиент нужно использовать сервер Рутокен VPN. Насколько вам это подходит?
Павел Анфимов, был бы сервер - не было бы вопросов про конфигурационные файлы, но сомнения про производительность, как понимаю там железо типа Расбери Пи...
Пойдем другим путем!
Где можно ознакомиться с модифицированным исходным кодом проекта OpenVPN и сопутствующих ему, использующихся в вашем клиенте Рутокен VPN? Или ваша компания не уважает лицензию GPL v2?
А именно:
OpenVPN 2.4.1 [git:gost2012-devel/a014fb5c64960679] i686-w64-mingw32 [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] built on Aug 8 2017
library versions: OpenSSL 1.1.0e 16 Feb 2017, LZO 2.06
Windows version 6.1 (Windows 7) 64bit
Originally developed by James Yonan
Copyright (C) 2002-2017 OpenVPN Technologies, Inc. <sales@openvpn.net>
Сергей Оглы, к сожалению, Рутокен VPN при работе по протоколам ГОСТ не использует механизм файлов *.ovpn.
Вся необходимая для подключения информация хранится на токене.
Полнейшая чу.., либо сознательно вводите в заблуждение, либо зря получаете зарплату!
Внимательно посмотрев на ваш клиент(Рутокен VPN), оказалось ваш клиент не более чем графическая оснастка для OpenVPN, которая получает список ключей с рутокена и формирует файл %APPDATA%\rutokenvpnclient\clientvpn.ovpn, с которым и запускает процесс OpenVPN. Все параметры которые которые хранятся на рутокене - это маркер rutokenVpnClient по которому определяете годность ЭЦП для работы (через openvpn --show-pkcs11-ids ...) и маркер даты (через split("_")) в сабжекте по CN=.
Далее, перед запуском openvpn, формирется файл clientvpn.ovpn и добавляете pkcs11-providers и pkcs11-id (с параметром выбранной ЭЦП). И здесь начинается самое интересное...
Варианта два:
1. Дурите клиентов - не оч. хочется верить.
2. Есть дополнительный параметр в OpenVPN(в *.ovpn - начальной конфигурации) для запуска дополнительно механизма, такого как в stunnel (использующий методы ENGINE_load_pulibc_key и ENGINE_load_private_key),и не через pkcs11_helper (т.к. ваш родной клиент не определяет тип ключа)
Как дела с исходниками? или чтение лицензии не дается?
Сергей Оглы, отправьте официальный запрос на info@rutoken.ru
Павел Анфимов, публичного запроса вам не достаточно?
Сергей Оглы, добрый день.
1) Пример конфигурационного файла RutokenVpn: конфигурация ГОСТ ( Enterprise) + Рутокен ЭЦП2.0
client
verb 3
nobind
dev tun
remote 91.хх.хх.хх
<ca>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</ca>
<dh>
-----BEGIN DH PARAMETERS-----
...
-----END DH PARAMETERS-----
</dh>
remote-cert-tls server
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
...
-----END OpenVPN Static key V1-----
</tls-auth>
key-direction 1
###cipher section
engine gost
cipher grasshopper-cbc
tls-cipher GOST2012-GOST8912-GOST8912
auth md_gost12_512
ncp-disable
###network section
persist-key
persist-tun
proto udp
port 1194
dhcp-option DOMAIN domain.ru
dhcp-option DNS 192.168.0.2
Надеюсь, это поможет Вам в решении вашей задачи.
2) Первичная генерация конфигурационного файла происходит на сервере, после этого файл подгружается в RutokenVpn client,
где модифицируется.
pkcs11-providers 'C:\\Program Files (x86)\\RutokenVpnClient\\resources\\app\\executables\\rtPKCS11ECP.dll'
pkcs11-id 'Aktiv\x20Co\x2E/Rutoken\x20ECP/375a3e2b/test/03651E3C312464CCA51397727E809E0EF4BE0E39\r'
Дмитрий Тимофеевский, доброго.
Спасибо за предоставленную информацию.
В итоге получается на Рутокене храниться не ГОСТ сертификат и клиент ваш не умеет работать с гост сертификатами?
Fri Aug 07 11:08:23 2020 Loading static ENGINE support
Fri Aug 07 11:08:23 2020 Initializing OpenSSL support for engine 'gost'
Fri Aug 07 11:08:23 2020 OpenVPN 2.4.1 [git:gost2012-devel/a014fb5c64960679] i686-w64-mingw32 [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] built on Aug 8 2017
Fri Aug 07 11:08:23 2020 Windows version 6.1 (Windows 7) 64bit
Fri Aug 07 11:08:23 2020 library versions: OpenSSL 1.1.0e 16 Feb 2017, LZO 2.06
Fri Aug 07 11:08:23 2020 PKCS#11: Adding PKCS#11 provider 'c:\\Program Files (x86)\\RutokenVpnClient\\resources\\app\\executables\\rtPKCS11ECP.dll'
Fri Aug 07 11:08:23 2020 PKCS#11: Invalid public key algorithm 980
Fri Aug 07 11:08:23 2020 PKCS#11: Unable get evp object
Fri Aug 07 11:08:23 2020 Cannot load certificate "Aktiv\x20Co\x2E/Rutoken\x20ECP/346abfb/Rutoken\x20ECP\x20\x3Cno\x20label\x3E/32303230" using PKCS#11 interface
Fri Aug 07 11:08:23 2020 Error: private key password verification failed
Fri Aug 07 11:08:23 2020 Exiting due to fatal error
Сергей Оглы, сложность в том, что тех.специалист по RutokenVpn сейчас отсутствует. Мы постараемся решить Ваш основной вопрос.
На данный момент могу предоставить лог-файл успешного подключения к серверу RutokenVpn с помощью ГОСТ сертификата, хранящегося на ЭЦП2.0 + RutokenVpn клиент (win64).
FRI AUG 07 22:24:31 2020 LOADING STATIC ENGINE SUPPORT
FRI AUG 07 22:24:31 2020 INITIALIZING OPENSSL SUPPORT FOR ENGINE 'GOST'
'
FRI AUG 07 22:24:31 2020 OPENVPN 2.4.1 [GIT:GOST2012-DEVEL/A014FB5C64960679] I686-W64-MINGW32 [SSL (OPENSSL)] [LZO] [LZ4] [PKCS11] [AEAD] BUILT ON AUG 8 2017
FRI AUG 07 22:24:31 2020 WINDOWS VERSION 6.2 (WINDOWS 8 OR GREATER) 64BIT
FRI AUG 07 22:24:31 2020 LIBRARY VERSIONS: OPENSSL 1.1.0E 16 FEB 2017, LZO 2.06
FRI AUG 07 22:24:31 2020 PKCS#11: ADDING PKCS#11 PROVIDER 'C:\\PROGRAM FILES (X86)\\RUTOKENVPNCLIENT\\RESOURCES\\APP\\EXECUTABLES\\RTPKCS11ECP.DLL'
'
FRI AUG 07 22:24:31 2020 PKCS#11: __PKCS11H_OPENSSL_SESSION_SETGOST - ENTERED OPENSSL_SESSION=02F09A78, EVP=02EF0BB0
'
FRI AUG 07 22:24:31 2020 OUTGOING CONTROL CHANNEL AUTHENTICATION: USING 512 BIT MESSAGE HASH 'MD_GOST12_512' FOR HMAC AUTHENTICATION
FRI AUG 07 22:24:31 2020 INCOMING CONTROL CHANNEL AUTHENTICATION: USING 512 BIT MESSAGE HASH 'MD_GOST12_512' FOR HMAC AUTHENTICATION
'
FRI AUG 07 22:24:31 2020 TCP/UDP: PRESERVING RECENTLY USED REMOTE ADDRESS: [AF_INET]91.х x.xx.xx:1194
'
FRI AUG 07 22:24:31 2020 SOCKET BUFFERS: R=[65536->65536] S=[65536->65536]
FRI AUG 07 22:24:31 2020 UDP LINK LOCAL: (NOT BOUND)
FRI AUG 07 22:24:31 2020 UDP LINK REMOTE: [AF_INET]91.xx.xx.xx:1194
'
FRI AUG 07 22:24:31 2020 TLS: INITIAL PACKET FROM [AF_INET]91.xx.xx.xx:1194, SID=0D52FF08 5719DB4F
'
FRI AUG 07 22:24:31 2020 VERIFY OK: DEPTH=1, C=RU, ST=MOSCOW, L=MOSCOW, CN=TETS
'
FRI AUG 07 22:24:31 2020 VERIFY KU OK
FRI AUG 07 22:24:31 2020 VALIDATING CERTIFICATE EXTENDED KEY USAGE
FRI AUG 07 22:24:31 2020 ++ CERTIFICATE HAS EKU (STR) TLS WEB SERVER AUTHENTICATION, EXPECTS TLS WEB SERVER AUTHENTICATION
FRI AUG 07 22:24:31 2020 VERIFY EKU OK
FRI AUG 07 22:24:31 2020 VERIFY OK: DEPTH=0, C=RU, ST=MOSCOW, CN=VPNSERVER
'
ENTER TEST TOKEN PASSWORD:'
'
FRI AUG 07 22:24:35 2020 CONTROL CHANNEL: TLSV1.2, CIPHER TLSV1.0 GOST2012-GOST8912-GOST8912
FRI AUG 07 22:24:35 2020 [VPNSERVER] PEER CONNECTION INITIATED WITH [AF_INET]91.xx.xx.xx:1194
'
FRI AUG 07 22:24:36 2020 SENT CONTROL [VPNSERVER]: 'PUSH_REQUEST' (STATUS=1)
'
FRI AUG 07 22:24:36 2020 PUSH: RECEIVED CONTROL MESSAGE: 'PUSH_REPLY,DHCP-OPTION DNS 192.168.0.20,DHCP-OPTION DNS 192.168.0.xx,REDIRECT-GATEWAY DEF1,ROUTE 10.xx.0.1,TOPOLOGY NET30,PING 10,PING-RESTART 60,IFCONFIG 10.xx.xx.6 10.xx.x.5,PEER-ID 0'
FRI AUG 07 22:24:36 2020 OPTIONS IMPORT: TIMERS AND/OR TIMEOUTS MODIFIED
FRI AUG 07 22:24:36 2020 OPTIONS IMPORT: --IFCONFIG/UP OPTIONS MODIFIED
FRI AUG 07 22:24:36 2020 OPTIONS IMPORT: ROUTE OPTIONS MODIFIED
FRI AUG 07 22:24:36 2020 OPTIONS IMPORT: --IP-WIN32 AND/OR --DHCP-OPTION OPTIONS MODIFIED
FRI AUG 07 22:24:36 2020 OPTIONS IMPORT: PEER-ID SET
FRI AUG 07 22:24:36 2020 OPTIONS IMPORT: ADJUSTING LINK_MTU TO 1624
'
FRI AUG 07 22:24:36 2020 DATA CHANNEL ENCRYPT: CIPHER 'GRASSHOPPER-CBC' INITIALIZED WITH 256 BIT KEY
FRI AUG 07 22:24:36 2020 DATA CHANNEL ENCRYPT: USING 512 BIT MESSAGE HASH 'MD_GOST12_512' FOR HMAC AUTHENTICATION
FRI AUG 07 22:24:36 2020 DATA CHANNEL DECRYPT: CIPHER 'GRASSHOPPER-CBC' INITIALIZED WITH 256 BIT KEY
FRI AUG 07 22:24:36 2020 DATA CHANNEL DECRYPT: USING 512 BIT MESSAGE HASH 'MD_GOST12_512' FOR HMAC AUTHENTICATION
FRI AUG 07 22:24:36 2020 INTERACTIVE SERVICE MSG_CHANNEL=0
'
FRI AUG 07 22:24:36 2020 OPEN_TUN
'
FRI AUG 07 22:24:36 2020 TAP-WIN32 DEVICE [ETHERNET 2] OPENED: \\.\GLOBAL\{9173257A-7063-4C27-A86F-693536CF8051}.TAP
'
FRI AUG 07 22:24:36 2020 TAP-WINDOWS DRIVER VERSION 9.21
'
FRI AUG 07 22:24:36 2020 NOTIFIED TAP-WINDOWS DRIVER TO SET A DHCP IP/NETMASK OF 10.xx.xx.5/255.255.255.252 ON INTERFACE {9173257A-7063-4C27-A86F-693536CF8051} [DHCP-SERV: 10.xx.xx.5, LEASE-TIME: 31536000]
FRI AUG 07 22:24:36 2020 SUCCESSFUL ARP FLUSH ON INTERFACE [13] {9173257A-7063-4C27-A86F-693536CF8051}
'
FRI AUG 07 22:24:36 2020 DO_IFCONFIG, TT->DID_IFCONFIG_IPV6_SETUP=0
'
Чтобы отправить ответ, нужно авторизоваться или зарегистрироваться
Форум Рутокен → Рутокен и Open Source → OpenVPN + rutoken + неэкспортируемая пара ГОСТ = возможно? (решено!)