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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline ProstoDen  
#1 Оставлено : 2 марта 2021 г. 20:46:42(UTC)
ProstoDen

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

Группы: Участники
Зарегистрирован: 02.03.2021(UTC)
Сообщений: 12

Сказал(а) «Спасибо»: 9 раз
Здравствуйте!

Возникла такая проблема:
- Сгенерировал тестовый сертификат на dss.cryptopro.ru
- Записал его в локальное хранилище
Konsol'1 - [Koren' konsoli_Sertifikaty (lokal'nyjj .png (53kb) загружен 14 раз(а).

И пытаюсь его найти следующим кодом:
Код:
HCERTSTORE hCertStore = CertOpenSystemStore(0, L"MY");

if (nullptr == hCertStore)
{
	errCode = ::GetLastError();
	return {};
}

PCCERT_CONTEXT pContext = nullptr;
std::vector<unsigned char> kpiBuffer;
DWORD kpiSize = 0;

const DWORD propId = CERT_KEY_PROV_INFO_PROP_ID;

while (true)
{
	pContext = ::CertFindCertificateInStore(hCertStore, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, 0,
		CERT_FIND_PROPERTY, &propId, pContext);

	if (nullptr == pContext)
	{
		errCode = ::GetLastError();
		break;
	}

	if (FALSE == ::CertGetCertificateContextProperty(pContext, CERT_KEY_PROV_INFO_PROP_ID, nullptr, &kpiSize))
	{
		errCode = ::GetLastError();
		break;
	}

	kpiBuffer.resize(kpiSize);

	PCRYPT_KEY_PROV_INFO pKeyProvInfo = reinterpret_cast<PCRYPT_KEY_PROV_INFO>(kpiBuffer.data());

	if (FALSE == ::CertGetCertificateContextProperty(pContext, CERT_KEY_PROV_INFO_PROP_ID, pKeyProvInfo, &kpiSize))
	{
		errCode = ::GetLastError();
		break;
	}

	if (AT_SIGNATURE == pKeyProvInfo->dwKeySpec && L"TestCerf" == GetString(CERT_NAME_FRIENDLY_DISPLAY_TYPE, pContext))
	{
		// ... Нашли сертификат
	}
}


В итоге, программа никогда не попадает в условие с комментарием "Нашли сертификат". На каком этапе может быть ошибка?
Offline Санчир Момолдаев  
#2 Оставлено : 2 марта 2021 г. 22:54:03(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 835
Российская Федерация

Сказал(а) «Спасибо»: 71 раз
Поблагодарили: 174 раз в 169 постах
Добрый день.
Ключ может быть не AT_SIGNATURE а AT_KEYEXCHANGE
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Санчир Момолдаев за этот пост.
ProstoDen оставлено 03.03.2021(UTC)
Offline ProstoDen  
#3 Оставлено : 3 марта 2021 г. 11:54:46(UTC)
ProstoDen

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

Группы: Участники
Зарегистрирован: 02.03.2021(UTC)
Сообщений: 12

Сказал(а) «Спасибо»: 9 раз
Автор: Санчир Момолдаев Перейти к цитате
Добрый день.
Ключ может быть не AT_SIGNATURE а AT_KEYEXCHANGE


Добрый!
Попробовал с AT_KEYEXCHANGE, все равно не находит. Вообще он через while проходит только один раз, т.е. находит только один ключ в секции "MY", и GetString(CERT_NAME_FRIENDLY_DISPLAY_TYPE, pContext) для него возвращает имя и фамилию текущего пользователя. Я теперь не уверен даже, точно ли этот "MY" смотрит в папку "Личное", в которую я поместил сертификат.
Offline Санчир Момолдаев  
#4 Оставлено : 3 марта 2021 г. 12:37:44(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 835
Российская Федерация

Сказал(а) «Спасибо»: 71 раз
Поблагодарили: 174 раз в 169 постах
А вы примеры смотрели? Там есть пример поиска сертификата в хранилище и к примеру подпись
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Санчир Момолдаев за этот пост.
ProstoDen оставлено 03.03.2021(UTC)
Online Андрей *  
#5 Оставлено : 3 марта 2021 г. 13:10:34(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 10,841
Мужчина
Российская Федерация

Сказал «Спасибо»: 401 раз
Поблагодарили: 1644 раз в 1260 постах
Цитата:
В итоге, программа никогда не попадает в условие с комментарием "Нашли сертификат". На каком этапе может быть ошибка?

HCERTSTORE hCertStore = CertOpenSystemStore(0, L"MY");
https://docs.microsoft.c...ypt-certopensystemstorea

Remarks
Only current user certificates are accessible using this method, not the local machine store.



Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
ProstoDen оставлено 03.03.2021(UTC)
Online Андрей *  
#6 Оставлено : 3 марта 2021 г. 13:17:12(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 10,841
Мужчина
Российская Федерация

Сказал «Спасибо»: 401 раз
Поблагодарили: 1644 раз в 1260 постах
Также вопрос - закрытый ключ на сервере DSS?
Сертификат как установили? через КриптоПРО CSP или просто скачали и импортировали в локальное хранилище компьютера?
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
ProstoDen оставлено 03.03.2021(UTC)
Offline ProstoDen  
#7 Оставлено : 3 марта 2021 г. 17:37:39(UTC)
ProstoDen

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

Группы: Участники
Зарегистрирован: 02.03.2021(UTC)
Сообщений: 12

Сказал(а) «Спасибо»: 9 раз
Автор: Андрей * Перейти к цитате
Также вопрос - закрытый ключ на сервере DSS?
Сертификат как установили? через КриптоПРО CSP или просто скачали и импортировали в локальное хранилище компьютера?


Второе, просто импортировал.

По поводу CertOpenSystemStore, похоже, Вы правы, попробую сегодня-завтра импортировать в текущего пользователя и сообщу о результате
Offline ProstoDen  
#8 Оставлено : 3 марта 2021 г. 22:28:26(UTC)
ProstoDen

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

Группы: Участники
Зарегистрирован: 02.03.2021(UTC)
Сообщений: 12

Сказал(а) «Спасибо»: 9 раз
Переимпортировал сертификат в правильное место, теперь он находится, если искать с параметром CERT_FIND_ANY вместо CERT_FIND_PROPERTY.

Как сделать, чтобы в ключе был параметр CERT_KEY_PROV_INFO_PROP_ID?

Этот ключ я получил из dss.cryptopro.ru, сделал запрос на сертификат с такими параметрами:
Server ehlektronnojj podpisi KriptoPro DSS - Sozdani.png (67kb) загружен 5 раз(а).
Затем ввел пинкод и загрузил.
Online Андрей *  
#9 Оставлено : 4 марта 2021 г. 0:38:12(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 10,841
Мужчина
Российская Федерация

Сказал «Спасибо»: 401 раз
Поблагодарили: 1644 раз в 1260 постах
Автор: ProstoDen Перейти к цитате
Переимпортировал сертификат в правильное место, теперь он находится, если искать с параметром CERT_FIND_ANY вместо CERT_FIND_PROPERTY.

Как сделать, чтобы в ключе был параметр CERT_KEY_PROV_INFO_PROP_ID?

Этот ключ я получил из dss.cryptopro.ru, сделал запрос на сертификат с такими параметрами:
Server ehlektronnojj podpisi KriptoPro DSS - Sozdani.png (67kb) загружен 5 раз(а).
Затем ввел пинкод и загрузил.


Установить сертификат с привязкой к облачному контейнеру?
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
ProstoDen оставлено 05.03.2021(UTC)
Offline ProstoDen  
#10 Оставлено : 5 марта 2021 г. 1:46:01(UTC)
ProstoDen

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

Группы: Участники
Зарегистрирован: 02.03.2021(UTC)
Сообщений: 12

Сказал(а) «Спасибо»: 9 раз
Всем спасибо, в итоге получилось сгенерировать сертификат с помощью http://www.cryptopro.ru/certsrv/certrqma.asp.

Но теперь другой вопрос:
Я захотел повторно сгенерировать ключ с теми же параметрами, но в ответ пишет, что имя контейнера уже существует.
Где вообще можно просмотреть список этих контейнеров и, по возможности, удалить?
Offline ProstoDen  
#11 Оставлено : 5 марта 2021 г. 2:08:22(UTC)
ProstoDen

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

Группы: Участники
Зарегистрирован: 02.03.2021(UTC)
Сообщений: 12

Сказал(а) «Спасибо»: 9 раз
Автор: ProstoDen Перейти к цитате
Всем спасибо, в итоге получилось сгенерировать сертификат с помощью http://www.cryptopro.ru/certsrv/certrqma.asp.

Но теперь другой вопрос:
Я захотел повторно сгенерировать ключ с теми же параметрами, но в ответ пишет, что имя контейнера уже существует.
Где вообще можно просмотреть список этих контейнеров и, по возможности, удалить?


А, все, разобрался
Нужно запустить cmd от имени администратора и выполнить certutil -user -delkey <имя контейнера>
Offline ProstoDen  
#12 Оставлено : 5 марта 2021 г. 17:27:02(UTC)
ProstoDen

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

Группы: Участники
Зарегистрирован: 02.03.2021(UTC)
Сообщений: 12

Сказал(а) «Спасибо»: 9 раз
Еще один вопрос:
Теперь пытаюсь сгенерировать с помощью Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider, также указываю имя контейнера, но теперь нигде не могу найти этот контейнер.

cerfutil показывает такую информацию:
Administrator_ Komandnaja stroka 2021-03-05 16.36.3.png (36kb) загружен 3 раз(а).

Где и как этот контейнер удалить?
Online Андрей *  
#13 Оставлено : 5 марта 2021 г. 18:10:12(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 10,841
Мужчина
Российская Федерация

Сказал «Спасибо»: 401 раз
Поблагодарили: 1644 раз в 1260 постах
Панель управления\КриптоПРО CSP\Сервис

Есть тестирование, есть удаление.

И зачем 2001 вообще использовать?

В отчёте же написано где - реестр.
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
ProstoDen оставлено 05.03.2021(UTC)
Online Андрей *  
#14 Оставлено : 5 марта 2021 г. 18:10:59(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 10,841
Мужчина
Российская Федерация

Сказал «Спасибо»: 401 раз
Поблагодарили: 1644 раз в 1260 постах
Удалять, потому что новый не получается с таким же именем?
Может нужно при генерации - использовать уникальное имя?
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
ProstoDen оставлено 05.03.2021(UTC)
Offline ProstoDen  
#15 Оставлено : 5 марта 2021 г. 18:58:32(UTC)
ProstoDen

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

Группы: Участники
Зарегистрирован: 02.03.2021(UTC)
Сообщений: 12

Сказал(а) «Спасибо»: 9 раз
Автор: Андрей * Перейти к цитате
Панель управления\КриптоПРО CSP\Сервис
И зачем 2001 вообще использовать?

Там на странице только такой есть

Offline ProstoDen  
#16 Оставлено : 5 марта 2021 г. 18:59:51(UTC)
ProstoDen

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

Группы: Участники
Зарегистрирован: 02.03.2021(UTC)
Сообщений: 12

Сказал(а) «Спасибо»: 9 раз
Автор: Андрей * Перейти к цитате
Панель управления\КриптоПРО CSP\Сервис

Спасибо, сработало
Online Андрей *  
#17 Оставлено : 5 марта 2021 г. 21:44:30(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 10,841
Мужчина
Российская Федерация

Сказал «Спасибо»: 401 раз
Поблагодарили: 1644 раз в 1260 постах
Автор: ProstoDen Перейти к цитате
Автор: Андрей * Перейти к цитате
Панель управления\КриптоПРО CSP\Сервис
И зачем 2001 вообще использовать?

Там на странице только такой есть



А версия КриптоПРО CSP какая?
Если список раскрыть - нет 2012?

Snimok ehkrana ot 2021-03-05 22-43-49.png (112kb) загружен 5 раз(а).

Техническую поддержку оказываем тут
Наша база знаний
Offline ProstoDen  
#18 Оставлено : 15 марта 2021 г. 11:27:26(UTC)
ProstoDen

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

Группы: Участники
Зарегистрирован: 02.03.2021(UTC)
Сообщений: 12

Сказал(а) «Спасибо»: 9 раз
Автор: Андрей * Перейти к цитате
Автор: ProstoDen Перейти к цитате
Автор: Андрей * Перейти к цитате
Панель управления\КриптоПРО CSP\Сервис
И зачем 2001 вообще использовать?

Там на странице только такой есть



А версия КриптоПРО CSP какая?
Если список раскрыть - нет 2012?

Snimok ehkrana ot 2021-03-05 22-43-49.png (112kb) загружен 5 раз(а).



Там только такие варианты есть

Bezymjannyjj - Paint 2021-03-15 11.23.42.png (30kb) загружен 3 раз(а).

Версия ядра СКЗИ: 3.9.8010 КС1
Версия продукта: 3.9.8495
Online Андрей *  
#19 Оставлено : 15 марта 2021 г. 12:45:04(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 10,841
Мужчина
Российская Федерация

Сказал «Спасибо»: 401 раз
Поблагодарили: 1644 раз в 1260 постах
Автор: ProstoDen Перейти к цитате

Версия ядра СКЗИ: 3.9.8010 КС1
Версия продукта: 3.9.8495


И зачем в 2021 использовать 3.9?

2012 есть начиная с 4 версии.
Переходите на актуальную, 5 версию.
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
ProstoDen оставлено 22.03.2021(UTC)
Offline ProstoDen  
#20 Оставлено : 22 марта 2021 г. 19:04:53(UTC)
ProstoDen

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

Группы: Участники
Зарегистрирован: 02.03.2021(UTC)
Сообщений: 12

Сказал(а) «Спасибо»: 9 раз
А помогите, пожалуйста, разъяснить еще один момент. Допустим, у клиента есть мой файл + отделенная подпись, и он хочет проверить соответствие таким образом:
cryptcp -verify testImg.png -detached -f testImg.png.sgn
Я правильно понимаю, что здесь берется сертификат, который хранится в самом testImg.png.sgn файле и не идет обращения к хранилищу юзера?
И если да, то что в таком случае может помешать кому-то подделать сам файл, сгенерировав для него собственную подпись?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.