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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline CPSharpUser  
#1 Оставлено : 11 октября 2012 г. 15:53:34(UTC)
CPSharpUser

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

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

Цель - подписать фрагмент XML-документа с помощью созданной для этого функции. Имеется .pfx-файл на диске. Использую код:

Код:

X509Certificate2 CPCertificate = new X509Certificate2("Путь к pfx-файлу", "ПАРОЛЬ");


Появляется окно с заголовком "КриптоПро CSP" и сообщением "Вставьте и выберите носитель для хранения контейнера закрытого ключа...". Из списка устройств выбираю флешку. Появляется новое диалоговое окно с предложением выбрать пароль для создаваемого контейнера. Указываю пароль. На флешке появляются директории с множеством .key-файлов. После этого фрагмент XML уже нормально подписывается.

Недостатки данного метода, которые хотелось бы устранить:

1) Требуется вставленная флешка.
2) Каждый запуск программы приводит к созданию ненужных директорий. Приходится писать дополнительный код по их удалению после работы программы.
3) Диалоговые окна, которые не нужны, я хочу только подписать фрагмент XML при помощи .pfx.

Раньше с криптографией не работал. Просьба помочь решить проблему.
Offline CPSharpUser  
#2 Оставлено : 12 октября 2012 г. 14:56:20(UTC)
CPSharpUser

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

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

Для подписи фрагмента XML мне нужен объект класса X509Certificate2. Использование именно PFX-файла непринципиально. Пусть на флешке уже лежат .key-файлы. Пусть флешка постоянно вставлена в компьютер. Можно ли создать объект класса X509Certificate2 беззвучно (SILENT)? То есть подписать XML без отображения каких-либо диалогов? Например, от диалога при вызове ComputeSignature() избавиться можно.
Offline Георгий Садофьев  
#3 Оставлено : 12 октября 2012 г. 15:11:11(UTC)
Георгий Садофьев

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

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

Поблагодарили: 26 раз в 25 постах
То есть сертификат в хранилище (Пользователя или компьютера) не установлен?
Если сертификат присутствует в контейнере закрытого ключа, то можно воспользоваться свойством Gost3410CryptographicServiceProvider ContainerCertificate, содержащим сертификат.
Техническую поддержку оказываем тут
Наша база знаний
Offline CPSharpUser  
#4 Оставлено : 12 октября 2012 г. 16:03:43(UTC)
CPSharpUser

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

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

Сертификат в хранилище не установлен.
Сертификат присутствует в контейнере закрытого ключа, так как после отображения диалогов и появления на флешке .key файлов вместо PFX, фрагмент XML подписывается правильно.

Не подскажете, как получить объект класса X509Certificate2, воспользовавшись свойством Gost3410CryptographicServiceProvider ContainerCertificate и путём к .key-файлам?
Offline CPSharpUser  
#5 Оставлено : 15 октября 2012 г. 14:50:59(UTC)
CPSharpUser

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

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

Если установить сертификат в хранилище "Личные", то диалоги не отображаются. Но по-прежнему требуется вставленная флешка. Возможно ли всё-таки избежать установки сертификата в хранилище или наличия вставленной флешки?
Offline Андрей Писарев  
#6 Оставлено : 15 октября 2012 г. 15:15:08(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
CPSharpUser написал:
Если установить сертификат в хранилище "Личные", то диалоги не отображаются. Но по-прежнему требуется вставленная флешка. Возможно ли всё-таки избежать установки сертификата в хранилище или наличия вставленной флешки?


На флешке - закрытый ключ, каким образом без его участия предполагается создавать ЭЦП?
Скопируйте контейнер и установите в реестр с привязкой к сертификату - тогда внешних носителей не потребуется
Техническую поддержку оказываем тут
Наша база знаний
Offline CPSharpUser  
#7 Оставлено : 15 октября 2012 г. 15:44:23(UTC)
CPSharpUser

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

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

Может быть, это принципиально невозможно. Я уже говорил, что новичок в криптографии. Но я рассчитывал использовать файлы на локальном диске в папке с моим проектом. То есть разместить рядом с .EXE .PFX или папку с *.key-файлами (насколько я понимаю, в них содержатся и закрытый ключ, и сертификат). И далее их использовать. То есть обойтись без флешки, реестра, хранилищ. Если это невозможно, то прекращаю все попытки. Если возможно, то просьба указать, как именно можно это сделать.
Offline Андрей Писарев  
#8 Оставлено : 15 октября 2012 г. 15:46:47(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Не нужно использовать PFX, используй Реестр\съемный носитель
Техническую поддержку оказываем тут
Наша база знаний
Offline Максим Коллегин  
#9 Оставлено : 15 октября 2012 г. 22:08:30(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Ключевая система КриптоПро CSP не подразумевает использования файлов в качестве контейнеров ключей. Вышеуказанная задача сложна и не очень понятен ее смысл.
Знания в базе знаний, поддержка в техподдержке
Offline umatkot  
#10 Оставлено : 25 ноября 2013 г. 8:27:34(UTC)
umatkot

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

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

Сказал(а) «Спасибо»: 4 раз
Автор: maxdm Перейти к цитате
Ключевая система КриптоПро CSP не подразумевает использования файлов в качестве контейнеров ключей. Вышеуказанная задача сложна и не очень понятен ее смысл.


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