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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Lers  
#1 Оставлено : 19 августа 2010 г. 12:06:03(UTC)
Lers

Статус: Новичок

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

Здравствуйте

Для формирования ЭЦП и ее проверки я использую CAPICOM. Обратил внимание, что для проверки подписи не требуется Сертификат безопасности. Это штатный порядок работы или я что то не правильно делаю? Код взял из документации и адаптировал на C# (привожу его ниже).
Если так и должно быть, то от куда берется public key для проверки подписи?

Для формирования подписи использую следующий код:
Код:

CAPICOM.Signer signer = new CAPICOM.Signer();
signer.Certificate = GetSignerCertificate("322A156F00010000060B");	// GetSignerCertificate - моя функция получения сертификата по серийному номеру

CAPICOM.SignedData signedData = new CAPICOM.SignedData();
signedData.Content = "Какое то сообщение";
string sign = signedData.Sign(signer, true, CAPICOM.CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64);


А для проверки подписи такой:
Код:

CAPICOM.SignedData signedData = new CAPICOM.SignedData();
signedData.Content = "Какое то сообщение";
signedData.Verify(sign, true, CAPICOM.CAPICOM_SIGNED_DATA_VERIFY_FLAG.CAPICOM_VERIFY_SIGNATURE_ONLY);	// где sign - это string с полученной подписью


P.S. При тестировании видно, что подпись действительно проверяется. Понятно, что если заменить флаг CAPICOM_VERIFY_SIGNATURE_ONLY на CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE, то потребуется не только мой сертификат, но и все промежуточные, т.к. производится проверка на валидность сертификата.
Offline Lers  
#2 Оставлено : 19 августа 2010 г. 13:05:33(UTC)
Lers

Статус: Новичок

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

Прочитал про PKCS7 envelope. Как понимаю, public key находится внутри подписи.
Offline Kirill Sobolev  
#3 Оставлено : 19 августа 2010 г. 15:18:26(UTC)
Кирилл Соболев

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

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,733
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
CAPICOM при создании подписи кладет внутрь PKCS7 как минимум сертификат подписчика (а может и всю цепочку положить). Поэтому и при проверке он берет его оттуда.
Убедиться в его наличии можно так - сохраните в файл с расширением p7b и просмотрите в Windows.
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.