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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline xumix  
#1 Оставлено : 20 мая 2011 г. 15:51:30(UTC)
xumix

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

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

Задача - подписать данные на сервере сертификатом из eToken, после чего проверить их там же или на клиенте в браузере с помощью Capicom.
Просмотрел все примеры, не нашел, как выбрать сертификат для подписи и в каком формате надо делать подпись, чтобы потом на клиенте ее могли проверить?
При этом, во время подписания на сервере никаких запросов быть не должно(pin/сертификат и т.п.)

Отредактировано пользователем 20 мая 2011 г. 16:11:47(UTC)  | Причина: Не указана

Offline Kirill Sobolev  
#2 Оставлено : 20 мая 2011 г. 16:28:51(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
CAPICOM умеет работать только с PKCS#7.
Техническую поддержку оказываем тут
Наша база знаний
Offline xumix  
#3 Оставлено : 20 мая 2011 г. 17:27:09(UTC)
xumix

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

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

Kirill Sobolev написал:
CAPICOM умеет работать только с PKCS#7.

Так, и что это значит? Просто я только начал вникать в эту область.
Есть ли какие-то вариант по последнему предложению?

Отредактировано пользователем 20 мая 2011 г. 17:27:48(UTC)  | Причина: Не указана

Offline Kirill Sobolev  
#4 Оставлено : 20 мая 2011 г. 19:44:38(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Цитата:
Так, и что это значит?

Это ответ на вопрос
Цитата:
в каком формате надо делать подпись
Техническую поддержку оказываем тут
Наша база знаний
Offline xumix  
#5 Оставлено : 23 мая 2011 г. 18:39:24(UTC)
xumix

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

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

Кхм, хорошо, спасибо. А нет ли у вас примеров кода, который можно использовать, как базу?
Например: на выход от CAPICOM выходит подпись в виде строки - что это за строка? base64?
Как эту подпись проверить на сервере? Как выбрать сертификат программно и подписать им что-то, так, чтобы CAPICOM мог это прочитать?
Я задаю эти вопросы, т.к. сейчас у нас куплен CSP, думаем, насчет покупки Sharpei, хотелось бы понять, как это все будет работать.
Offline xumix  
#6 Оставлено : 23 мая 2011 г. 21:37:37(UTC)
xumix

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

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

Разобрался. Чтобы совпал формат подписи:
Код:

var data = Encoding.Unicode.GetBytes("123123"); // то, что подписываем на клиенте
var extSign = Convert.FromBase64String(sig); // sig == то, что получаем от SignedData.Sign(Signer, true, 0);
var contentInfo = new ContentInfo(data);
var signedCms = new SignedCms(contentInfo, true);
signedCms.Decode(encodedSignature);
signedCms.CheckSignature(true); // проверка

Все еще остался вопрос: как бы мне подписывать данные с помощью сертификата, но так, чтобы eToken у меня не спрашивал пароль
Offline Kirill Sobolev  
#7 Оставлено : 23 мая 2011 г. 22:00:42(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Техническую поддержку оказываем тут
Наша база знаний
Offline xumix  
#8 Оставлено : 23 мая 2011 г. 22:10:32(UTC)
xumix

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

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

Спасибо. Теперь получаю такое:
Код:

System.InvalidCastException was unhandled
  Message=[A]CryptoPro.Sharpei.Gost3410CryptoServiceProvider cannot be cast to [B]CryptoPro.Sharpei.Gost3410CryptoServiceProvider. Type A originates from 'CryptoPro.Sharpei.Base, Version=1.4.0.10, Culture=neutral, PublicKeyToken=473b8c5086e795f5' in the context 'Default' at location 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\CryptoPro.Sharpei.Base\v4.0_1.4.0.10__473b8c5086e795f5\CryptoPro.Sharpei.Base.dll'. Type B originates from 'CryptoPro.Sharpei.Base, Version=1.0.0.10, Culture=neutral, PublicKeyToken=473b8c5086e795f5' in the context 'Default' at location 'C:\Windows\assembly\GAC_MSIL\CryptoPro.Sharpei.Base\1.0.0.10__473b8c5086e795f5\CryptoPro.Sharpei.Base.dll'.
  Source=ConsoleApplication1
  StackTrace:
       at ConsoleApplication1.Program.SignMsg(Byte[] msg, X509Certificate2 signerCert) in c:\Program Files (x86)\Crypto Pro\Sharpei SDK\Examples\ConsoleApplication1\Program.cs:line 109
       at ConsoleApplication1.Program.Main(String[] args) in c:\Program Files (x86)\Crypto Pro\Sharpei SDK\Examples\ConsoleApplication1\Program.cs:line 59
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 

Offline xumix  
#9 Оставлено : 23 мая 2011 г. 22:12:36(UTC)
xumix

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

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

Нашел, ссылка была на версию для .NET 2.0
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.