Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline defimov  
#1 Оставлено : 14 апреля 2022 г. 22:05:51(UTC)
defimov

Статус: Участник

Группы: Участники
Зарегистрирован: 14.04.2022(UTC)
Сообщений: 11
Российская Федерация
Откуда: Нижний Новгород

Добрый день.

Подскажите, где я могу найти документацию разработчика по пакетам(библиотекам), которые я скачал с сайта https://cryptopro.ru/products/csp/downloads
для КриптоПро CSP 5.0 R3?
по ссылкам :
https://cryptopro.ru/sit...0/12417/aurora-armhf.tgz
https://cryptopro.ru/sit...50/12417/aurora-ia32.tgz

Где было бы подробно описано, как работать с объектами и их методами для конкретных действий, порядок вызова методов, инструкции по их использованию, инструкцией по подключению библиотек.
И примеры по работе с библиотеками и методами.

Спасибо.
Offline Андрей Русев  
#2 Оставлено : 15 апреля 2022 г. 12:16:35(UTC)
Русев Андрей

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,261

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 444 раз в 323 постах
Здравствуйте.
https://support.cryptopr...7/0/sbork-primerov-n-nix
Если вы не знакомы с CryptoAPI, настоятельно рекомендую писать код так, чтобы касающуюся криптографии часть можно было собрать и отладить под обычным Linux. Это сэкономит много времени и сил, так как CryptoAPI и так непростой интерфейс, а разработка под Аврору сопровождается значительными дополнительными трудностями.
Официальная техподдержка. Официальная база знаний.
Offline defimov  
#3 Оставлено : 15 апреля 2022 г. 14:18:11(UTC)
defimov

Статус: Участник

Группы: Участники
Зарегистрирован: 14.04.2022(UTC)
Сообщений: 11
Российская Федерация
Откуда: Нижний Новгород

1) А есть ли подробная документация разработчика под Linux где бы описывались различные моменты, последовательность действий по CryptoAPI?
Или вот этих 4-х пунктах \|/ есть всё, что нужно, чтоб разобраться?

1.Описание реализации (pdf-документ из комплекта документации на СКЗИ)
2.Правила пользования (pdf-документ из комплекта документации на СКЗИ), особенно "Приложение 2" - "Перечень вызовов, использование которых при разработке систем на основе СКЗИ возможно без дополнительных тематических исследований"
3.Раздел про криптографию на MSDN - здесь наиболее объёмная документация на API
4.Руководство программиста - дополняет MSDN в части поддержки отечественных алгоритмов, а также расширения API в нашем СКЗИ

1 и 2 брать из этого архива:?
https://cryptopro.ru/sit...csp/50/12417/doc-kc1.zip

2) Я нашёл примеры в пакете cprocsp-binaries-5.0.12417-4.i686.rpm
и они собираются по командам из редми.

Я попробовал добавить код из src/doxygen/CSP/CreatingKeyContainer/CreatingKeyContainer.c
в свой проект, но после завершения энтропии (при вызове метода CryptGenKey) выдаётся такая ошибка:
Error number : 0x80090020

/**/
/* MessageId: NTE_FAIL*/
/**/
/* MessageText:*/
/**/
/* An internal error occurred.*/
/**/
#define NTE_FAIL _HRESULT_TYPEDEF_(0x80090020L)

Но как я теперь понял:
- механизм отображения диалогов провайдера (БиоДСЧ, ввод пароля) из сторонних приложений находится в проработке, до её завершения необходимо перенести эту задачу на прикладное ПО: задавать пароли с помощью CryptSetProvParam(PP_KEYEXCHANGE_PIN), вместо генерации ключей использовать импорт готовых контейнеров из pfx или отделяемые носители.
Или это другая ошибка?

Где можно почитать про "импорт готовых контейнеров из pfx"?

3) Я правильно понимаю, первое что нужно сделать это создать 'ключевой контейнер'(или импортировать готовых контейнеров из pfx), и потом установить сертификат в него, и уже с помощью ключевого контейнера подписывать документы?
Есть ли описание этого процесса, чтоб понять логику и порядок вызова методов жизненного цикла?
И про то, на каком этапе нужно взаимодействовать УЦ, про отправку запроса на сертификат на удостоверяющий центр.
Чтоб было понятно что за чем следует и от чего зависит.

4) Я правильно понимаю, что нужно использовать только пакеты из R3 для 4-й версии авроры, или можно всё-таки попробовать для R2, как я понял экран энтропии добавлен в R3 или без энтропии никак?

Спасибо.
Offline Андрей Русев  
#4 Оставлено : 15 апреля 2022 г. 17:57:01(UTC)
Русев Андрей

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,261

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 444 раз в 323 постах
1) Учебник по CryptoAPI и в частности по КриптоПро я сходу не назову. Такие курсы ведутся в некоторых ВУЗах для студентов, но выложены ли материалы, я не знаю. Этих 4-х пунктов может быть недостаточно. Наверное, лучше всего начать с примеров из пакета SDK, чтобы бегло сориентироваться в API.

pdf-ы в этом архиве, да.

2) CryptGenKey не работает из-за БиоДСЧ, да. В личку скину ночную сборку, где эта проблема частично решена.

https://docs.microsoft.c...crypt-pfximportcertstore
после этого сертификаты надо скопировать в хранилище "my".

3) Да. Причём обычно (безграмотно, но отчасти верно) говорят "подписывать сертификатом" как раз потому, что сертификат ставится в хранилище "my" со ссылкой на закрытый ключ, а потом функции подписи сами по сертификату находят контейнер и ключ.

4) Только 5.0 R3
Официальная техподдержка. Официальная база знаний.
Offline defimov  
#5 Оставлено : 18 апреля 2022 г. 9:36:22(UTC)
defimov

Статус: Участник

Группы: Участники
Зарегистрирован: 14.04.2022(UTC)
Сообщений: 11
Российская Федерация
Откуда: Нижний Новгород

Добрый день.

1) Я попробовал установить пакеты из ночной сборки, архива aurora-ia32_5.0.12470_r240661.tgz, но при использовании примера CreatingKeyContainer после завершения БиоДСЧ (при вызове метода CryptGenKey) ошибка 0x80090020 остаётся.
Нет ли тестового pfx файла с закрытым ключом, чтобы можно было попробовать подписать запрос на сертификат и установить туда сертификат и попробовать подписать документы?

2) Я попробовал добавить код из примера src/doxygen/CSP/CPCA20/CPCA20.cpp в свой проект, с использованием тестового УЦ:
https://testca2012.cryptopro.ru/ui | b1ca4992-d7cd-4f7e-b56e-a81e00db58ee
но при вызове UnixRequest::GetUserRegisterInfo возникает такая ошибка:
[D] HandleError:68 - Error number : 0x2f8f
Child exited with status 143

Что она означает я не нашёл.
Ссылка для регистрации https://testca2012.crypt....ru/ui/1/RegRequest.aspx с http://testca2012.cryptopro.ru/ui/ не открывается.
Я попробовал установить пакеты R2 на Ubuntu 21.10, но при вызове UnixRequest::GetUserRegisterInfo происходит segmentation fault.
Не могли бы вы пояснить в чём может быть проблема?

И подскажите какой адрес УЦ 1.5 для примера CPCA15 использовать?

3) Я попробовал установить rpm пакеты R2:
lsb-cprocsp-base-5.0.12000-6.noarch.rpm
lsb-cprocsp-ca-certs-5.0.12000-6.noarch.rpm
lsb-cprocsp-capilite-64-5.0.12000-6.x86_64.rpm
lsb-cprocsp-devel-5.0.12000-6.noarch.rpm
lsb-cprocsp-kc1-64-5.0.12000-6.x86_64.rpm
lsb-cprocsp-rdr-64-5.0.12000-6.x86_64.rpm

на Arch Linux, но при использовании примера CreatingKeyContainer в методе:
CryptAcquireContextA(
&hCryptProv,
containerName,
NULL,
PROV_GOST_2012_256,
CRYPT_NEWKEYSET))

происходит ошибка:
/**/
/* MessageId: NTE_PROV_TYPE_NOT_DEF*/
/**/
/* MessageText:*/
/**/
/* Provider type not defined.*/
/**/
#define NTE_PROV_TYPE_NOT_DEF _HRESULT_TYPEDEF_(0x80090017L)


Могли бы подсказать что не хватает для работы с криптопровайдером на Arch Linux?
Нужно что-нибудь установить, запустить?
На Ubuntu 21.10 попробовал установить пакеты R2, но в этом методе проблем нет.
На Ubuntu какая-то служба криптопровайдера запускается?

Спасибо.

Отредактировано пользователем 18 апреля 2022 г. 10:57:47(UTC)  | Причина: Не указана

Offline Андрей Русев  
#6 Оставлено : 18 апреля 2022 г. 18:06:08(UTC)
Русев Андрей

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,261

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 444 раз в 323 постах
1. Проблему подтверждаю, пока не исправили. В ближайшие несколько дней БиоДСЧ починим. Возможно, придётся обновить Аврору, чтобы всё заработало, так как на её стороне тоже нередко вносятся исправления.
pfx вы можете сделать на десктопе сами:
Код:
[rt-user@hw-x64-cent7 ~]$ /opt/cprocsp/bin/amd64/cryptcp -creatcert -exprt -rdn 'CN=user_name' -cont 'user_cont'
CryptCP 5.0 (c) "Crypto-Pro", 2002-2021.
Command prompt Utility for file signature and encryption.
Creating request...
Crypto-Pro GOST R 34.10-2012 KC1 CSP requests new container password
New password:
Confirm password:
Sending request to CA...
Installing certificate...
Message contains root certificate that is absent in your root store.
RDN:"Тестовый УЦ ООО ""КРИПТО-ПРО""", "ООО ""КРИПТО-ПРО""", Москва, г. Москва, RU, ул. Сущёвский вал д. 18, 001234567890, 1234567890123
Valid from 12.09.2018 10:19:30 to 12.09.2023 10:28:55

Do you want to add it to Root store? [Y]es or [N]o: y
Adding certificate to Root store.
CPCSP: Warning: installing a root certificate with an unconfirmed thumbprint is a security risk. Do you want to install this certificate?
Subject: Тестовый УЦ ООО "КРИПТО-ПРО"
Thumbprint (sha1): 927C1E1EB2B397CBC5D11712E2E3BBEDC876BD7E
(o)OK, (c)Cancel
o
Crypto-Pro GOST R 34.10-2012 KC1 CSP requests container password
Type password:
Certificate is installed.
[ErrorCode: 0x00000000]
[rt-user@hw-x64-cent7 ~]$ /opt/cprocsp/bin/amd64/certmgr -export -pfx -dn 'CN=user_name' -dest /tmp/t.pfx -pin 1234
Certmgr 1.1 (c) "Crypto-Pro", 2007-2021.
Program for managing certificates, CRLs and stores.
Exporting:
=============================================================================
1-------
Issuer              : ОГРН=1234567890123, ИНН=001234567890, STREET=ул. Сущёвский вал д. 18, C=RU, S=г. Москва, L=Москва, O="ООО ""КРИПТО-ПРО""", CN="Тестовый УЦ ООО ""КРИПТО-ПРО"""
Subject             : CN=user_name
Serial              : 0x7C00051DF9C308D5E0885E4F56000100051DF9
SHA1 Thumbprint     : 65a35008f2f6c4ba63d20e97b7b4fe05019fab4a
SubjKeyID           : 58bce6882c383312ab0d5cb5aae008a19f920aed
Signature Algorithm : ГОСТ Р 34.11-2012/34.10-2012 256 бит
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before    : 18/04/2022 13:15:00 UTC
Not valid after     : 18/07/2022 13:25:00 UTC
PrivateKey Link     : Yes
Container           : HDIMAGE\\userrcon.000\B464
Provider Name       : Crypto-Pro GOST R 34.10-2012 KC1 CSP
Provider Info       : Provider Type: 80, Key Spec: 1, Flags: 0x0
CA cert URL         : http://testgost2012.cryptopro.ru/CertEnroll/root2018.crt
OCSP URL            : http://testgost2012.cryptopro.ru/ocsp2012g/ocsp.srf
OCSP URL            : http://testgost2012.cryptopro.ru/ocsp2012gst/ocsp.srf
CDP                 : http://testgost2012.cryptopro.ru/CertEnroll/!0422!0435!0441!0442!043e!0432!044b!0439%20!0423!0426%20!041e!041e!041e%20!0022!041a!0420!0418!041f!0422!041e-!041f!0420!041e!0022(1).crl
CDP                 : http://testgost2012.cryptopro.ru/CertEnroll/testgost2012(1).crl
=============================================================================
Crypto-Pro GOST R 34.10-2012 KC1 CSP requests container password
Type password:

[ErrorCode: 0x00000000]

Если экспортировать сертификат с ключом через cptools (Инструменты КриптоПро), то в него кроме сертификата пользователя можно по галке положить также цепочку сертификатов до корневого УЦ. А при обработке после PFXImportCertStore надо учитывать, какой сертификат куда класть. Если делать совсем топорно, то можно так:
https://github.com/deemr...rc/msspi.cpp#L1989-L2009
Раскодирование из BASE64 (CryptStringToBinaryA) не нужно, так как pfx/pkcs#12 - это конкретный формат, который не может быть в BASE64.

2. При разработке как правило лучше использовать последнюю версию, так как там исправлено наибольшее число ошибок. В частности в этих примерах они исправлялись.
УЦ 1.5 безнадёжно устарел: он не поддерживает ГОСТ Р 34.10-2012, а только ГОСТ Р 34.10-2001, создание подписей с участием которого запрещено с 1 января 2020 года в соответствии с письмом ФСБ России от 07.09.2018 №149/7/6-363.

3. Arch мы официально не поддерживаем, но по братски я помогал. Ваша проблема похожа как раз на то, что я патчил.
Официальная техподдержка. Официальная база знаний.
Offline defimov  
#7 Оставлено : 18 апреля 2022 г. 18:19:38(UTC)
defimov

Статус: Участник

Группы: Участники
Зарегистрирован: 14.04.2022(UTC)
Сообщений: 11
Российская Федерация
Откуда: Нижний Новгород

Спасибо.

Хотел бы уточнить по поводу 2-го пункта:

Цитата:
2) Я попробовал добавить код из примера src/doxygen/CSP/CPCA20/CPCA20.cpp в свой проект, с использованием тестового УЦ:
https://testca2012.cryptopro.ru/ui | b1ca4992-d7cd-4f7e-b56e-a81e00db58ee
но при вызове UnixRequest::GetUserRegisterInfo возникает такая ошибка:
[D] HandleError:68 - Error number : 0x2f8f
Child exited with status 143

Что она означает я не нашёл.
Ссылка для регистрации https://testca2012.crypt....ru/ui/1/RegRequest.aspx с http://testca2012.cryptopro.ru/ui/ не открывается.

Я этот пример пробовал на эмуляторе Аврора ОС с пакетами R3. И ошибка:
[D] HandleError:68 - Error number : 0x2f8f
Child exited with status 143

Появляется там.

Не могли бы подсказать в чём может быть проблема на Аврора ОС, с пакетами R3?
Offline defimov  
#8 Оставлено : 19 апреля 2022 г. 15:15:11(UTC)
defimov

Статус: Участник

Группы: Участники
Зарегистрирован: 14.04.2022(UTC)
Сообщений: 11
Российская Федерация
Откуда: Нижний Новгород

И по поводу лицензии подскажите, как её применять, при помощи каких методов, библиотек производится работа с ней.
И где бы можно было почитать про работу с ней, для каких операций она необходима.

Спасибо.
Offline Андрей Русев  
#9 Оставлено : 20 апреля 2022 г. 17:08:05(UTC)
Русев Андрей

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,261

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 444 раз в 323 постах
По примеру подскажу позже. Лицензию можно ввести с помощью нашего приложения через UI.
Официальная техподдержка. Официальная база знаний.
Offline defimov  
#10 Оставлено : 20 апреля 2022 г. 17:12:49(UTC)
defimov

Статус: Участник

Группы: Участники
Зарегистрирован: 14.04.2022(UTC)
Сообщений: 11
Российская Федерация
Откуда: Нижний Новгород

Понятно, спасибо, будем ждать ответ по примеру.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.