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

Уведомление

Icon
Error

4 Страницы<1234>
Опции
К последнему сообщению К первому непрочитанному
Offline Konstantin  
#21 Оставлено : 29 июня 2009 г. 2:09:16(UTC)
Konstantin

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

Группы: Участники
Зарегистрирован: 24.09.2008(UTC)
Сообщений: 27
Мужчина
Откуда: Москва

Сказал «Спасибо»: 1 раз
А можно поподробней про нерешаемую задачу? То бишь почему нельзя из CMS вытащить хэш, подпись, информацию об открытом ключе и завернуть это всё в определенные тэги?
Offline Павел Смирнов  
#22 Оставлено : 29 июня 2009 г. 19:33:58(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Посмотрите на приложенный файл с примером XMLDSIG. Значение в SignatureValue - это подпись, вычисленная на представленный в канонической форме узел SingedInfo. Узел SignedInfo содержит хэш-значение от исходных данных. В отличие от CMS-подписи без подписанных атрибутов здесь подпись охватывает не исходный текст, а хэш-значение от этого текста, обрамлённое ещё и XML-тегами.
Вложение(я):
XmlDocSigned2001.xml (2kb) загружен 58 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline Konstantin  
#23 Оставлено : 29 июня 2009 г. 23:00:46(UTC)
Konstantin

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

Группы: Участники
Зарегистрирован: 24.09.2008(UTC)
Сообщений: 27
Мужчина
Откуда: Москва

Сказал «Спасибо»: 1 раз
Спасибо. А может есть какой-нибудь стандарт для такого отображения CMS-подписи в XML?
Или с коленки писать нечто похожее на XMLDSIG с тэгом CMSSignatureValue вместо SignatureValue.
Offline Павел Смирнов  
#24 Оставлено : 30 июня 2009 г. 15:58:58(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Такого стандарта нет, так что именно "с коленки".
Техническую поддержку оказываем тут.
Наша база знаний.
Offline Konstantin  
#25 Оставлено : 3 июля 2009 г. 13:01:25(UTC)
Konstantin

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

Группы: Участники
Зарегистрирован: 24.09.2008(UTC)
Сообщений: 27
Мужчина
Откуда: Москва

Сказал «Спасибо»: 1 раз
И еще обратная задача. Подписать хэш (CryptSignHash) и закодировать в CMS-сообщение тоже нельзя с помощью CryptoAPI?
Offline Павел Смирнов  
#26 Оставлено : 3 июля 2009 г. 13:28:18(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Можно, только это не просто. Всё, кроме SignerInfo вам придётся кодировать почти руками - на уровне отдельных OID и SEQUENCE, но всё это сделает CryptEncodeObject(). Эта же функция закодирует SignerInfo за один вызов.

P.S. Не понимаю чем CryptMsg-функции не устраивают? Если задача стоит "сделать CMS с помощью CryptoAPI", то надо именно ими и пользоваться.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline Konstantin  
#27 Оставлено : 3 июля 2009 г. 14:28:59(UTC)
Konstantin

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

Группы: Участники
Зарегистрирован: 24.09.2008(UTC)
Сообщений: 27
Мужчина
Откуда: Москва

Сказал «Спасибо»: 1 раз
Задача в общем такая: на входе есть хэш и сертификат, на выходе получить cms-подпись. Какими CryptMsg-функциями это можно сделать?

Я так понимаю, закодировать отдельно каждый атрибут с помощью CryptEncodeObject

SignedData ::= SEQUENCE {
version Version,
digestAlgorithms DigestAlgorithmIdentifiers,
contentInfo ContentInfo,
certificates [0] CertificateSet OPTIONAL,
crls [1] CertificateRevocationLists OPTIONAL,
signerInfos SignerInfos
}

а потом всё это закодировать в CryptEncodeObject(szOID_RSA_signedData)? И это будет искомая cms-подпись?
Offline Павел Смирнов  
#28 Оставлено : 3 июля 2009 г. 15:09:32(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
CryptEncodeObject(szOID_RSA_signedData) - такой возможности нет. Вам придётся кодировать отдельно все поля, а потом SEQUENCE из них.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline Kirill Sobolev  
#29 Оставлено : 3 июля 2009 г. 16:33:23(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
А с помощью CryptMsgControl(.., CMSG_CTRL_ADD_CMS_SIGNER_INFO, ..) не получится обойтись без кодирования?
Техническую поддержку оказываем тут
Наша база знаний
Offline Павел Смирнов  
#30 Оставлено : 7 июля 2009 г. 17:01:46(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Можно подумать в этом направлении... Для того, чтобы что-то добавить, надо сначала иметь то, к чему добавить. Т.е. для начала с помощью CryptoAPI подписываем произвольную фигню с использованием целевого алгоритма хэширования - это важно, т.к. алгоритмы хэширования перечисляются в заголовке CMS, а не только в SingerInfo. После этого мы ручками стряпаем интересующую подпись, добавляем её с помощью CryptMsgControl(CMSG_CTRL_ADD_CMS_SIGNER_INFO), а "левую" подпись удаляем с помощью CryptMsgControl(CMSG_CTRL_DEL_SIGNER).

Наверно возможен такой путь.
Техническую поддержку оказываем тут.
Наша база знаний.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (5)
4 Страницы<1234>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.