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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline vnsuzdalev  
#1 Оставлено : 7 мая 2009 г. 16:54:56(UTC)
vnsuzdalev

Статус: Активный участник

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

Добрый день!
Разрабатываю систему сбора информации от клиентов с использованием ЭЦП. Я новичок в этой области.
Посмотрел примеры по подписанию. Вариантов много конечно, но ничего живого. Как вызвать метод подписи - это даже мне понятно. Это мало в чем помогает
А вот есть ли более приближенный к жизни пример на C#. Например так:
1. создаю ключ (Это просто)
2. подписываю(Это есть)
3. отдаю данные для проверки подписи (В каком виде?)
4. проверяю на основании этих данных, как бы полученных по незащищенному каналу (Например с диска)
Буду благодарен за пример, но даже текстовое описание алгоритма действий п.3 и 4 уже что-то
Без такого примера трудно видеть комплексную картину.

Offline Челпанов А.  
#2 Оставлено : 7 мая 2009 г. 17:24:28(UTC)
Челпанов А.

Статус: Активный участник

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

Поблагодарили: 2 раз в 2 постах
1. Создание ключа: собственно создание ключа, запрос на сертификат, получение сертификата, корневого сертификата, CRL... Здесь рекомендую почитать о Центрах сертификации. Для начала можно использовать наш тестовый центр сертификации.
2. Самый распространенный вариант подписи "документ, подпись и сертификат в CMS" (пример в SingleSigner).
3. В таком виде и отдаете.
4. Проверяете документ, проверяете сертификат на отзыв, корректность цепочки... (в SingleSigner только проверка документа)

Это описание исключительно для затравки, все очень сильно зависит от Ваших потребностей. Я бы рекомендовал пройти обучение, прежде чем заниматься встраиванием СКЗИ. Ссылки на курсы есть на нашем сайте.
С уважением, Александр.
Offline vnsuzdalev  
#3 Оставлено : 7 мая 2009 г. 19:55:47(UTC)
vnsuzdalev

Статус: Активный участник

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

Спасибо за материал для затравки. Только вот не очень понял где взять пример SingleSigner
Цитата:
(пример в SingleSigner)
Offline Челпанов А.  
#4 Оставлено : 7 мая 2009 г. 20:00:57(UTC)
Челпанов А.

Статус: Активный участник

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

Поблагодарили: 2 раз в 2 постах
В CryptoPro Sharpei SDK устанавливается архив simple.zip. Там есть пример CMS\SingleSigner.cs
С уважением, Александр.
Offline Randoom  
#5 Оставлено : 25 июня 2009 г. 12:14:09(UTC)
Randoom

Статус: Активный участник

Группы: Участники
Зарегистрирован: 15.06.2009(UTC)
Сообщений: 89
Откуда: Уфа, РРЦ "АйТи"

Челпанов А. написал:

4. Проверяете документ, проверяете сертификат на отзыв, корректность цепочки... (в SingleSigner только проверка документа)


Хотелось бы чуть подробнее про этот момент, и если есть реализация в примерах - то ссылку на нее

Т.е. есть XML документ подписываемый аналогично SignXmlFile из примеров.
Нужно не только проверить его через signedXml.CheckSignature(),
но и, как Вы уже сказали, проверить в самом центре сертификации.

Вообщем, вопросы следующие
1) Как извлечь ("по хорошему") X509Certificate (сертификаты) из подписанного документа ?

"По хорошему" - не таким страшным способом как
foreach (XmlNode xmlNode in signedXml.KeyInfo.GetXml().GetElementsByTagName("X509Certificate",
signedXml.KeyInfo.GetXml().NamespaceURI))
{
X509Certificate2 x509Certificate = CreateWSEX509CertificateFromXMLElement((XmlElement)xmlNode);
}

2) Где взять адрес центра проверки и его API (желательно с примером использования) ?
3) Нужен ли для примера к первому вопросу foreach - точнее как подписать/распарсить документ с несколькими подписями ?

Отредактировано пользователем 25 июня 2009 г. 13:38:30(UTC)  | Причина: Не указана

Offline Челпанов А.  
#6 Оставлено : 29 июня 2009 г. 15:55:35(UTC)
Челпанов А.

Статус: Активный участник

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

Поблагодарили: 2 раз в 2 постах
Если коротко, то примера нет.
Здесь все сильно зависит от Ваших нужд: каким образом Вы проверяете соответствие сертификата подписавшего с отправителем сообщения, требуется ли построение цепочки (или Вы как-то поддерживаете базы сертификатов возможных отправителей), что вы проверяете при построении цепочек, надо ли проверять сертификат центра (или достаточно его наличие в Root), есть еще масса всяких требуется.
1. А SignedCMS.SignerInfos[0].Certificate разве не проходит?
2. Отправная точка построения цепочек X509Chain
3. Не понял вопрос... Какую дополнительную информацию из SignedCms Вы хотите еще получить.

Пример на построение цепочек, сделаем, но быстро не обещаем.
С уважением, Александр.
Offline Randoom  
#7 Оставлено : 29 июня 2009 г. 16:23:38(UTC)
Randoom

Статус: Активный участник

Группы: Участники
Зарегистрирован: 15.06.2009(UTC)
Сообщений: 89
Откуда: Уфа, РРЦ "АйТи"

Челпанов А. написал:
Если коротко, то примера нет.
Здесь все сильно зависит от Ваших нужд: каким образом Вы проверяете соответствие сертификата подписавшего с отправителем сообщения, требуется ли построение цепочки (или Вы как-то поддерживаете базы сертификатов возможных отправителей), что вы проверяете при построении цепочек, надо ли проверять сертификат центра (или достаточно его наличие в Root), есть еще масса всяких требуется.
1. А SignedCMS.SignerInfos[0].Certificate разве не проходит?
2. Отправная точка построения цепочек X509Chain
3. Не понял вопрос... Какую дополнительную информацию из SignedCms Вы хотите еще получить.

Пример на построение цепочек, сделаем, но быстро не обещаем.

Возможно не совсем корректно задал вопросы, более здраво и с ответами здесь (для тех у кого они тоже первый раз возникнут не совсем верно ;) ):
http://www.cryptopro.ru/....aspx?g=posts&t=1389
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.