lifayk Оставлено | |
Здравствуйте. Пытаюсь сгенерировать и загрузить пару RSA+сертификат в КриптоПРО 4. Подскажите, пожалуйста, что я делаю не так? Код:
| |
Андрей Русев Оставлено | |
Здравствуйте. | |
djuwa4 Оставлено | |
Добрый день! Что я хочу, я хочу чтобы python3 вместо openssl использовал Крипто ПРО и установленные при помощи certmgr по умолчанию, чтобы когда я делаю API запрос при помощи Возможно вы сможете мне подсказать, что я еще не доделал, и будет ли вообще работать схема которую я описал? Отредактировано пользователем 16 августа 2021 г. 11:26:19(UTC) | |
djuwa4 Оставлено | |
Ситдиков Денис Оставлено | |
Добрый день! | |
djuwa4 Оставлено | |
Автор: Ситдиков Денис Добрый день! Денис, я еще раз уточню, для понимания. Денис, тогда можно в кратце, для каких сценариев модуль pycades нужен. Из описания применения модуля мне не очень понятно. | |
Ситдиков Денис Оставлено | |
Автор: djuwa4 Автор: Ситдиков Денис Добрый день! Денис, я еще раз уточню, для понимания. Денис, тогда можно в кратце, для каких сценариев модуль pycades нужен. Из описания применения модуля мне не очень понятно. Да, для отправки запросов API через python3 по протокол https pycades не поможет. | |
В данной статье делается попытка ответить на вопрос: возможно ли использовать OpenSource библиотеки для работы с ГОСТовыми сертификатами?
Если коротко, то да.
Для проверки использовалась последняя на данный момент версия OpenSSL (1.0.1с), собранная из исходников с поддержкой gost engine
Для начала нужно установить КриптоПро CSP 3.6 R3, поскольку в нем реализована поддержка экспорта сертификатов в формате pfx. Эту часть работ нужно делать в операционной системе Windows. Не буду описывать подробно этот процесс, скажу лишь, что нужно сохранить приватный ключ в формате CryptoPro на флэшку и импортировать его в хранилище “Реестр”. Выгрузив сертификат в файл, например store.pfx (включая приватный ключ), можно вывести приватный ключ в stdout командой
/usr/local/ssl/bin/openssl pkcs12 -info -engine gost -nodes -in ~/store.pfx
- -info вывести информацию о содержимом файла в формате pkcs12 (.pfx)
- -engine использовать указанный криптографический модуль
- -nodes не нужно шифровать приватный ключ
- -in входной файл
Если вы получаете ошибку вида “unknown PBE algorithm”
Enter Import Password:MAC Iteration 2000MAC verified OKPKCS7 DataShrouded Keybag: undefined, Iteration 2000Bag Attributes Microsoft Local Key set: localKeyID: 01 00 00 00 friendlyName: REGISTRY\\1ba6dcf8-b953-4774-8a9e-de98de071f24 Microsoft CSP Name: Crypto-Pro GOST R 34.10-2001 Cryptographic Service ProviderError outputting keys and certificates140669637789344:error:06074079:digital envelope routines:EVP_PBE_CipherInit:unknown pbe algorithm:evp_pbe.c:167:TYPE=1.2.840.113549.1.12.1.80140669637789344:error:23077073:PKCS12 routines:PKCS12_pbe_crypt:pkcs12 algor cipherinit error:p12_decr.c:83:140669637789344:error:2306A075:PKCS12 routines:PKCS12_item_decrypt_d2i:pkcs12 pbe crypt error:p12_decr.c:130:
То это означает, что вам потребуется другое средство для получения pfx файла, утилитка P12FromGostCSP.exe
Если вы получаете ошибку вида “unknown digest algorithm”
Enter Import Password:MAC Iteration 2048Mac verify error: invalid password?140572666472096:error:2306B076:PKCS12 routines:PKCS12_gen_mac:unknown digest algorithm:p12_mutl.c:88:140572666472096:error:2307E06D:PKCS12 routines:PKCS12_verify_mac:mac generation error:p12_mutl.c:122:
то скорее всего в вашем openssl нет поддержки ГОСТовых алгоритмов либо вы используете не ту копию openssl.
Если все прошло без ошибок, то в консоли вы получите приватный ключ и сертификат. Скопировав выведенный в консоль приватный ключ (вместе со словами
—–BEGIN PRIVATE KEY—– и —–END PRIVATE KEY—–) в отдельный
файл private.key мы сможем с его помощью создавать ЭЦП.
Команда для генерации примерно следующая:
/usr/local/ssl/bin/openssl cms -sign -inkey ~/private.key -in ~/file.txt -CAfile ~/CA.cer -signer ~/client.cer -engine gost -out ~/test.sign -outform DER -noattr -binary
- -sign генерация подписи
- -inkey путь к приватному ключу
- -in подписываемый файл
- -CAfile файл УЦ
- -signer файл с сертификатом, которым осуществляется подпись
- -engine использовать указанный криптографический модуль
- -out файл, в который будет записана ЭЦП
- -outform формат подписи
- -noattr не добавлять дополнительных аттрибутов в подпись
- -binary считать подписываемый файл массивом байт, а не текстом
К сожалению, Bouncy Castle (версии 1.46), хоть в нем и декларируется поддержка ГОСТовых алгоритмов, не может разобрать формат приватного ключа, так что использовать его для генерации ЭЦП на данный момент не представляется возможным.
UPD:
Bouncy Castle 1.55 уже умеет работать с такими приватными ключами
tarkhil Оставлено | |
Добрый день Пытаюсь экспортировать ключ+сертификат от Диадока, выданный ООО “ЦИБ-Сервис”. Экспортировал в .pfx и скоро вспомнил, что .pfx от КриптоПро несовместим с .pfx от OpenSSL Вытащил P12FromGostCSP, но и он не осилил экспорт, мотивировав тем, что Цитата: ————————————————————- Никто не напомнит, с каким бубном в этом сезоне подходят к вопросу совместимости? | |
Андрей * Оставлено | |
Автор: tarkhil Добрый день Пытаюсь экспортировать ключ+сертификат от Диадока, выданный ООО “ЦИБ-Сервис”. Не по теме, а зачем? Им нельзя ничего подписывать в 2022 году же… | |
tarkhil Оставлено | |
Нам этот ключ дали для работы с диадоком. А что в нем не так? | |
Андрей * Оставлено | |
Автор: tarkhil Нам этот ключ дали для работы с диадоком. А что в нем не так? Все УЦ, которые не получили аккредитацию по новым требования – аккредитация прекращена. | |
tarkhil Оставлено | |
Каааааак интересно! Ну ок, спасибо, это я провентилирую, а ключ-то как вынуть? | |
tarkhil Оставлено | |
Автор: Андрей * Автор: tarkhil Добрый день Пытаюсь экспортировать ключ+сертификат от Диадока, выданный ООО “ЦИБ-Сервис”. Не по теме, а зачем? Им нельзя ничего подписывать в 2022 году же… Так, тут я ошибся. Речь о ДРУГОМ сертификате. От Контура. Цитата: ============================================================= P12FromGostCSP Fri Jan 14 12:27:34 2022 ————————————————————- | |
tarkhil Оставлено | |
Разобрался. На сегодня танец с бубном выглядит так:
| |
two_oceans Оставлено | |
Ответ: штатных способов нет. Хотя есть некоторые способы вытаскивания вручную из pfx КриптоПро-стайл, но они и так рассказаны в каком-то из моих сообщений – поиск по форуму в помощь, зачем создавать миллион первую тему о том, что openssl “не понимайт” 1.2.840.113549.1.12.1.80. Через ту утилиту P12FromGostCSP можно попробовать, но надо на время экспорта убрать пинкод от контейнера – это сильно повышает вероятность экспорта сторонними утилитами (количество раундов хэширования защищающих ключ снижается с 2000 до 2). Потом можете вернуть пинкод обратно. Смущает, что судя по выводу утилиты ключ не экспортируемый? Как тогда экспортировали средствами КриптоПро? Или из pfx снова импортировали и забыли пометить как экспортируемый? в этом случае импортируйте снова и помечайте. Автор: tarkhil Задаемся риторическим вопросом “А почему панель КриптоПро не умеет в такое?” Требование к защите ключа такое. Никуда не отпущать. Отредактировано пользователем 14 января 2022 г. 13:38:40(UTC) | |
Андрей * Оставлено | |
Автор: tarkhil Разобрался. На сегодня танец с бубном надеюсь сертификат не квалифицированный (шутка, конечно квал).. что там насчёт соблюдения требований ФЗ\ФСБ? | |
tarkhil Оставлено | |
Автор: Андрей * Автор: tarkhil Разобрался. На сегодня танец с бубном надеюсь сертификат не квалифицированный (шутка, конечно квал).. что там насчёт соблюдения требований ФЗ\ФСБ? Каких именно? По сертификации эмитента? Все ок, я не от того сертификата данные написал (и, чтоб два раза не вставать, уже его снес) | |
Решения nginx и Apache HTTP Server (далее — Apache) — два самых широко распространенных веб-сервера с открытым исходным кодом в мире. Каждый из них обладает собственными преимуществами, при этом одной из основных функциональных возможностей обоих серверов является построение защищенного с использованием протокола TLS соединения между клиентом и сервером с обеспечением целостности и конфиденциальности передаваемых данных, в том числе с применением российских криптографических алгоритмов ГОСТ.
Возможность использования TLS с ГОСТ обеспечивается с помощью вызова функций СКЗИ КриптоПро CSP (далее — СКЗИ):
- в nginx — применением к исходным текстам специальных патчей, входящих в состав отдельных версий СКЗИ;
- в Apache — использованием бинарного модуля mod_ssl из состава СКЗИ.
Таким образом, СКЗИ можно эксплуатировать совместно с серверами nginx и Apache определенных версий для реализации TLS с ГОСТ без проведения исследований по оценке влияния указанных серверов на СКЗИ, что делает возможным использование данного решения для обеспечения криптографической защиты передаваемых между клиентом и сервером конфиденциальных данных (в том числе персональных данных) в соответствии с требованиями законодательства РФ по информационной безопасности. При эксплуатации иных версий nginx/Apache или СКЗИ проведение оценки влияния является обязательным во всех случаях, предусмотренных законодательством. Подробнее о работе TLS с ГОСТ можно ознакомиться в нашей статье.
Процесс установки и настройки совместной работы СКЗИ с веб-серверами nginx описан в Руководстве администратора безопасности к соответствующей версии СКЗИ. Необходимые компоненты для работы решения можно скачать в составе СКЗИ. Программное обеспечение nginx и Apache не входит в комплект поставки СКЗИ. Исходные тексты nginx необходимо скачать с официального сайта с последующей проверкой контрольной суммы, а дистрибутив Apache обычно входит в состав ОС.
По сравнению со штатным использованием серверов nginx и Apache, при реализации TLS с ГОСТ на nginx или Apache в качестве криптографического ядра вместо OpenSSL используется СКЗИ КриптоПро CSP и поэтому функциональность решения имеет некоторые особенности:
- Общий кэш при работе в рабочих процессах отсутствует;
- Поддержка директив конфигурации, указанных в файле конфигурации и относящихся к TLS, реализована частично.
Для реализации TLS с ГОСТ на nginx или Apache необходимо приобрести годовую или бессрочную клиентскую лицензию (обязательно при реализации двухстороннего TLS с ГОСТ), специальную бессрочную серверную лицензию с поддержкой TLS и при необходимости сертификаты технической поддержки на указанные лицензии. С полным перечнем необходимых для реализации решения лицензий и сертификатов технической поддержки можно ознакомиться на нашем сайте.
В настоящее время в состав СКЗИ КриптоПро CSP версий 5.0 R2 KC1 (исполнение 1-Base) и 5.0 R2 КС2 (исполнение 2-Base) входят следующие версии компонентов решения для ОС семейства Linux:
- Патч для nginx версии 1.18.0;
- Модуль mod_ssl для Apache версии 2.4.25+ (для ОС Astra Linux SE) и Apache 2.4.41+ (для других ОС семейства Linux).
Отдельно стоит отметить возможность реализации TLS с ГОСТ на веб-сервере Apache Tomcat, используемом для исполнения веб-приложений, написанных на Java. Для решения данной задачи можно использовать криптопровайдер КриптоПро JCP, реализующий SSL и TLS протоколы на базе российских криптографических алгоритмов ГОСТ. При этом, в случае использования КриптоПро JCP 2.0 R4, проведение оценки влияния Apache Tomcat на СКЗИ не потребуется.
В качестве альтернативы предлагаем также рассмотреть более функциональное и производительное решение — TLS-шлюз и VPN КриптоПро NGate, сертифицированный ФСБ России и позволяющий одновременно реализовать TLS с ГОСТ для большого количества веб-серверов, также без необходимости проведения оценки влияния среды функционирования.
- Страница для печати
Вариант 2: gost_capi.dll (для OpenSSL <1.1.0) или gostengy.dll (для OpenSSL >= 1.1.0) – библиотека от КриптоПро для работы установленного КриптоПро CSP через интерфейсы OpenSSL (работает только при установленном КриптоПро CSP, т.к. вся работа с ГОСТ будет осуществляться КриптоПро CSP, но опосредованно через интерфейсы OpenSSL).
Аналогично, как и с библиотекой gost.dll, версия библиотеки зависит от используемой версии OpenSSL:
- для OpenSSL >= 1.1.0: необходимо использовать библиотеку gostengy, поддерживает ГОСТ 2012
Скачать необходимые версии библиотеки можно на сайте КриптоПро . Более подробное описание использования можно найти у них же на форуме.
Развертывание :
Создать файл конфигурации OpenSSL:
openssl_conf = openssl_def [openssl_def] engines = engine_section [engine_section] gost = gostengy_section [gostengy_section] engine_id = gostengy dynamic_path = ./gostengy.dll default_algorithms = CIPHERS, DIGESTS, PKEY, PKEY_CRYPTO, PKEY_ASN1
В указанном примере файла конфигурации предполагается, что библиотека поддержки алгоритмов ГОСТ находится рядом с исполняемыми файлами. Но файл конфигурации может быть расположен в ином месте. В таком случае необходимо указать полный, а не относительный путь к библиотеке. Кстати, в качестве разделителя каталогов пути необходимо использовать прямой слэш “/” как в Unix, а не обратный, как в Windows, либо экранировать обратные слэши еще одним обратным слэшем – “\\”.
В случае использования существующего файла конфигурации, например поставляемого с самим OpenSSL, необходимо 1-ю строчку (openssl_conf = openssl_def) вставить в начало этого файла, а остальные строки в самый конец файла.
Указанный файл конфигурации является примером, и может быть изменен пользователем в зависимости от требуемых настроек.
- Установить системную переменную окружения ОС с именем OPENSSL_CONF и значением указывающим полный путь к файлу конфигурации OpenSSL.
- В связи с тем, что КриптоПро не работает с файлами закрытых ключей находящихся в файлах, необходимо использовать приватный ключ находящийся в одном из следующих мест где криптопровайдер КриптоПро сможет его найти и использовать:
- системное хранилище сертификатов Windows (certmgr.msc) – необходимо предварительно импортировать сертификат содержащий приватный ключ одним из штатных способов
- хранилища сертификатов самого КриптоПро – необходимо предварительно импортировать сертификат содержащий приватный ключ с помощью инструментов КриптоПро, наприме утилиты certmgr из штатной поставки КриптоПро
- аппаратный носитель (USB токен, смарт карт) содержащий приватный ключ
В любом из вышеперечисленном варианте, путь к закрытому ключу нужно указывать не как к файлу, а с помощью расширения для OpenSSL от КриптоПро (gost_capi или gostengy), например – , т.е. по шаблону engine:gost_capi или gostengy:FQDN указанное в сертификате (доменное имя). При непосредственном использовании этого ключа сам криптопровайдер определит его местонахождение, и при необходимости будет иницировать интерактивный процесс запроса разрешения на использование указанного ключа и его пароля. Но в любом случае, приватный ключ должен быть доступен КриптоПро и находиться в одном из вышеуказанных хранилищах, а не в файле.
- В файле конфигурации текущего сервиса MillAppServer.conf, который находится рядом с исполняемым файлом в зависимости от используемой разрядности, в элементе найти и изменить (или в случае его отсутствия, добавить) узел для поддержки всех версий ГОСТ – 2012, 2001 и 94, либо для поддержки только версии ГОСТ 2012.
В случае проблем с использованием настроенного и запущенного сервиса, для проверки его работоспособности рекомендуется использовать утилиту openssl в режиме клиента TLS, с помощью команды openssl s_client -connect 127.0.0.1:443. В случае успешного соединения с сервером в выводе консоли будет указана вся информация об установленном соединении, такая как сертификат, версия протокола TLS, используемый шифр и многое другое. Перед использованием OpenSSL утилиты необходимо аналогично обеспечить настройку файла конфигурации OpenSSL, как указано в пункте 2 и установить системную переменную окружения ОС с именем OPENSSL_CONF, как указано в пункте 3.
kuvschin Оставлено | |
Подскажите пожалуйста как получить папку (например, “MySite.001”), содержающую файлы header.key, masks.key, masks2.key, name.key, primary.key, primary2.key – из файлов .key + .crt? | |
Александр Лавник Оставлено | |
Автор: kuvschin Подскажите пожалуйста как получить папку (например, “MySite.001”), содержающую файлы header.key, masks.key, masks2.key, name.key, primary.key, primary2.key – из файлов .key + .crt? Попробуйте так: Код:
| |
kuvschin Оставлено | |
Доброго. X:\1>”C:\Program Files\OpenSSL-Win64\bin\openssl.exe” pkcs12 -export -out bsoinsuronline.pfx -inkey bsoinsuronline.key -in bsoinsuronline.crt -keypbe gost89 X:\1> | |
Андрей * Оставлено | |
kuvschin Оставлено | |
OpenSSL-Win64 | |
kuvschin Оставлено | |
Господа, что за тишина, вас оскорбила моя версия опенссл? | |
kuvschin Оставлено | |
Люди, помогите пожалуйста. | |
TolikTipaTut1 Оставлено | |
Код:
| |
kuvschin Оставлено | |
Доброго .pem у меня нет файлов с таким расширением, только .key и .crt Первая строка: C:\Users\CO09-3>x: X:\>cd 1 X:\1>”C:\Program Files\OpenSSL-Win64\bin\openssl.exe” pkcs12 -engine gost -export -inkey bsoinsuronline.key -in bsoinsuronline.crt -out pfx.pfx -password pass:123 -keypbe gost89 -certpbe gost89 -macalg md_gost12_256 X:\1> До второй не дошло т.к. первая не сработала, да и нет у меня такого файла p12util.x86.exe | |
TolikTipaTut1 Оставлено | |
Так, в сертификате какой алгоритм указан? Чтобы узнать, надо дважды кликнуть по сертификату, и в открывшемся окне выбрать вкладку “Состав”. Нужные поля называются: “Алгоритм подписи” и “Хэш-алгоритм подписи”. Отредактировано пользователем 1 апреля 2022 г. 20:47:30(UTC) | |
kuvschin Оставлено | |
sha256RSA | |
TolikTipaTut1 Оставлено | |
Тааааак…… А зачем вам КриптоПро для этого, если у вас RSA-шный серт? | |
kuvschin Оставлено | |
Ну как – эта хрень позволяет серверу себя удостоверить, я прикручу её к авторизации стуннель. Только мне надо чтобы оно в контейнере криптопро жило:) | |
TolikTipaTut1 Оставлено | |
Мне даже интересно стало – а что вам раньше выдавало минцифры? Гостовые серты что-ли? Отредактировано пользователем 1 апреля 2022 г. 22:15:16(UTC) | |
kuvschin Оставлено | |
Это выдано впервые, раньше ничего не выдавало минцифры. | |
Андрей * Оставлено | |
Автор: kuvschin Это выдано впервые, раньше ничего не выдавало минцифры. Ключ RSA, | |
kuvschin Оставлено | |
Мне так выше сказали сделать: Попробуйте так: | |
TolikTipaTut1 Оставлено | |
Автор: kuvschin Мне так выше сказали сделать: Попробуйте так: Честно сказать, когда писал – не знал, что у вас rsa. Ранее же нигде вы об этом публично не заявляли вроде как… Удалите из команды все параметры, связанные с ГОСТ-ом. Отредактировано пользователем 2 апреля 2022 г. 0:10:16(UTC) | |
kuvschin Оставлено | |
Автор: TolikTipaTut1 Автор: kuvschin Мне так выше сказали сделать: Попробуйте так: Честно сказать, когда писал – не знал, что у вас rsa. Ранее же нигде вы об этом публично не заявляли вроде как… Удалите из команды все параметры, связанные с ГОСТ-ом. “C:\Program Files\OpenSSL-Win64\bin\openssl.exe” pkcs12 -export -out bsoinsurru.pfx -inkey bsoinsurru.key -in bsoinsurru.crt В том-то и вся беда, что мы зашли на круг. | |
Андрей * Оставлено | |
И зачем нужно, чтобы было в КриптоПро csp? (подразумевая реализацию с RSA) Конечная цель, чтобы приложение по сертификату получило доступ к ЗК. Проверили? | |
ILya D Оставлено | |
two_oceans Оставлено | |
Добрый день. Автор: ILya D есть таблица с браузерами, где указаны только: ИЕ, Спутник, Яндекс браузер и Хромиум-гост. Список может пополняться. Заявлено у этих браузеров, ИЕ и Хромиум-гост можно сказать имеют поддержку от разработчиков самого криптопровайдера, а Спутник и Яндекс – чего-то допиливали. Всегда могут появится еще желающие допилить, но Опера и Мозилла пока такого желания не высказывали. Автор: ILya D Правильно я понимаю, чтобы подключиться к серверу который работает по TLS GOST нужен обязательно один из этих браузеров + плагин крипто про + установленный серт УЦ выдавшего сертификаты установленные на сервер? Клиенту нужен браузер, поддерживающий TLS GOST; криптопровайдер (в теории любой с компонентой TLS ГОСТ-2012, самые популярные КриптоПро CSP или Vipnet CSP, на практике – из поддерживаемых браузером); корневой сертификат для цепочки сертификатов сервера (если ГУЦ или Минкомсвязь, то поставится с КриптоПро CSP). Сервер можно настроить на передачу клиенту и сертификата промежуточного УЦ и сертификата самого сервера, то есть сертификат промежуточного УЦ может отсутствовать у клиента и тогда будет прислан сервером. Если же сервер не присылает сертификат промежуточного УЦ, то сертификат промежуточного УЦ должен быть заранее установлен у клиента. Автор: ILya D И смогу ли я подключиться к серверу из других браузеров например из хрома, оперы или файр фокс используя шифрование TLS GOST? Из самого браузера, используя шифрование TLS GOST – нет, но можно приукрасить, разрешить без гост или вставить прослойку между браузером и nginx у клиента. Отредактировано пользователем 2 апреля 2021 г. 13:08:00(UTC) | |
Андрей Русев Оставлено | |
Правильно использовать только актуальную инструкцию: вместо openssl+gostengy надо использовать легализованный в КриптоПро CSP 5.0 R2 патч на nginx: | |
lab2 Оставлено | |
Автор: Андрей Русев вместо openssl+gostengy надо использовать легализованный в КриптоПро CSP 5.0 R2 патч на nginx: По текущим лицензиям на серверную CSP, все так? | |
alex_nur Оставлено | |
В данный момент используем оба варианта. Вопрос такой. Установленный таким образом nginx позволяет осуществить подключение максимум TLS1.0. Устанавливал на Astra Linux SE Смоленск. Это проблема в КриптоПро CSP 5 R2 (нужно что-то дополнительно где-то указать?) или в ОС? | |
lab2 Оставлено | |
Автор: alex_nur В данный момент используем оба варианта. Как думаете по лицензиям, для gostengy достаточно обычной серверной лицензии? Вот если покупать сейчас для gostengy (несертифицируемый)+КриптоПро CSP 5 R2, с обычной серверной лицензией будет работать? Интересно и наоборот – лицензия “TLS-сервер на 1000 подключений” будет работать с gostengy ? | |
alex_nur Оставлено | |
Автор: lab2 Как думаете по лицензиям, для gostengy достаточно обычной серверной лицензии? Вот если покупать сейчас для gostengy (несертифицируемый)+КриптоПро CSP 5 R2, с обычной серверной лицензией будет работать? Было достаточно. Но не исключено, что в будущих версиях CSP не поставят запрет на использование “обычной серверной” лицензии. Возможно, что в R2 уже нельзя (этот вопрос лучше в техподдержку адресуйте), ведь TLS дороже. Думаю что точно вполне реально, что если не на R2, то на какой-нибудь более старой версии CSP точно работать будет. Автор: lab2 Интересно и наоборот – лицензия “TLS-сервер на 1000 подключений” будет работать с gostengy ? Точно будет. Проверено. | |
two_oceans Оставлено | |
Цитата: Если бы мне лично … необходим был бы SSL с ГОСТ, я бы использовал просто gostengy. Другое дело, что ничего не стоит на месте, и в будущем потребуется какая-либо фича, которой нет в связке с gostengy, и никто ее не реализует, т.к. эта связка больше не развивается. Соглашусь полностью. Тут есть наверняка есть минимум 2 фактора изменений: 1) для использования TLS openssl (как сам openssl, так и его библиотеки в других продуктах nginx и т.д.) нужно поддерживать в актуальной версии, так как там все время находят уязвимости. Соответственно новая версия openssl может уже оказаться несовместимой с gostengy. Поэтому более перспективно использование gostengy с openssl только в качестве внутреннего УЦ – в этом случае уязвимости TLS значения не имеют и по сертификацию тоже речи не идет, обновлять openssl необходимости нет; Цитата: Как думаете по лицензиям, Думаю, что gostengy продолжит работать, так как по сути может использоваться и в клиентском ПО, а поддержки новых алгоритмов там уже ожидать не приходится. Так этот путь будет просто временным отступлением от “генеральной линии партии”. Более интересно, что теперь еще и stunnel входит в состав сертифицированного СКЗИ. Так Вы можете и на клиентских ос снимать шифрование гост либо перешифровать на rsasha256 и использовать в браузерах без поддержки гост. Зачем какие-то патчи если можно сервер расположить за ним (разве что из-за возможности при патче принимать и гост и не-гост)? Вот с лицензией конечно вопрос – полагаю теперь на stunnel требуется отдельная (которая тут упоминается как вариант 2)? Отредактировано пользователем 6 октября 2021 г. 8:09:58(UTC) | |
alex_nur Оставлено | |
Автор: alex_nur В данный момент используем оба варианта. Ответила техподдержка, что версии TLS регулируются директивой Работает, подтверждаю. Для меня из инструкции было неочевидным, что sspi_protocols TLSv1.2 является самостоятельной директивой, т.к. все сливалось в комментарий к директиве sspi_certificate. | |
1 пользователь поблагодарил alex_nur за этот пост. | |
cps999 Оставлено | |
А где можно получить собственно сам ng-nginx.1.18.0.patch ? | |
lightness Оставлено | |
Здравствуйте! Помогите разобраться с вопросом импорта закрытого ключа из файла по ГОСТ Р 34.11-2012/34.10-2012 256 бит. Использую следующее окружение: Код:
Например, получил ключ с помощью openssl, который настроен на ГОСТ. Код:
Пытаюсь прочитать закрытый ключ keyA.pem из файла по алгоритму подписи ГОСТ Р 34.10-2012 с ключом 256 (1.2.643.7.1.1.1.1) с помощью провайдера BouncyCastle Security Provider v1.60. Код:
Возможно ли прочитать ключ в PrivateKey таким образом? Код:
| |
two_oceans Оставлено | |
Добрый день. Как я понимаю, импортировать таким способом ключ в КриптоПро невозможно. КриптоПро CSP не выпускает реальный ключ “наружу” (и через большинство интерфейсов не принимает реальный ключ “извне”) – при поиске контейнера КриптоПро по сертификату в результате в классе PrivateKey находится идентификатор закрытого ключа вместо реального закрытого ключа. Аналог как в раздевалке берется пальто с прилавка и дается в руки номерок вместо пальто. Соответственно при использовании класса PrivateKey для подписания/шифрования также расчет на то, что там идентификатор, а не сам ключ. По идентификатору КриптоПро находит у себя закрытый ключ (по номерку находится пальто). Импорт ключа из PrivateKey просто не поддерживается: выходит что вместо номерка пихаете еще одно пальто. В теории способ перенести ключ openssl в КриптоПро есть: средствами openssl нужно зашифровать ключ в формат P12/PFX, с алгоритмом шифрования гост-89 и маками гост-2012 512 бит (согласно рекомендациям ТК26), затем использовать p12utility для переноса ключа из pfx в контейнер КриптоПро. Один из JCP/JCSP к слову умеет читать PFX с ключами гост-2012, но мне сложно подсказать какие там алгоритмы обертки ключа принимаются. | |
lightness Оставлено | |
Спасибо за ответ! Отличный пример с раздевалкой, сразу становится всё на свои места. ))) Цитата: Импорта куда? Опишите какую задачу решаете. Задача решалась в рамках интеграции с адаптером СМЭВ, импорт ключей в JCP контейнер. | |
lightness Оставлено | |
Ещё пару вопросов: – p12utility есть ли аналоги этой утилиты в Linux? – ошибка тестирования подписи закрытого ключа в настройках информационной системы (ИС) адаптера СМЭВ. | |
two_oceans Оставлено | |
Цитата: – p12utility есть ли аналоги этой утилиты в Linux? Мне не попадались на глаза. По внешнему анализу под Windows утилита самодостаточная (КриптоПро CSP не требуется), но запрашивает у Майкрософт КриптоАпи случайные данные, поэтому для портирования в Linux явно понадобится другой надежный источник случайных чисел. Скорее всего с этим проблем – к чему ее привязать на разномастных Linux тот еще вопросик. Автор: lightness – ошибка тестирования подписи закрытого ключа в настройках информационной системы (ИС) адаптера СМЭВ. Про ид закрытого ключа скорее речи нет – в папке в файле name.key указывается дружественное имя контейнера и может фигурировать контрольная сумма от него, так что при копировании папки это должно сохранится. Для флешек может фигурировать метка флешки и volumeid. Для токена его серийный номер. Для двух HDIMAGE не припомню чтобы были какие отличия, но могу ошибаться. Можно сравнить какие fqcn у контейнера в одном месте и в другом. Если отличаются, то связка сертификата и контейнера после копирования стала неверна и нужно по-новой связать сертификат и контейнер. Правда, как это выглядит в JCP подсказать не смогу, другой alias это станет или что еще. Если вообще не видно контейнера… На первый взгляд путь правдоподобный. Может еще быть пользователь не тот (путь для root, а приложение от чьего имени выполняется? ), либо нет прав у пользователя на этот каталог. | |
lightness Оставлено | |
Цитата: Может еще быть пользователь не тот (путь для root, а приложение от чьего имени выполняется? ), либо нет прав у пользователя на этот каталог Приложение адаптера запускаю под root, и криптоконтейнер настраивал для root. | |
lightness Оставлено | |
Спасибо большое за развёрнутый ответ! Стало понятно, что подпись можно настроить в докер контейнере независимо от rutoken. | |