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

Уведомление

Icon
Error

4 Страницы<1234>
Опции
К последнему сообщению К первому непрочитанному
Offline e-ken  
#21 Оставлено : 26 января 2010 г. 20:13:43(UTC)
e-ken

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

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

Да тоже через APDU подписывается документ. Подскажите есть ключ токен на нем есть ключевая пара открытый/закрытый ключ, закрытый ключ достать из токена невозможно, им подписывается документ, далее ЭЦП проверяется где-то там и кем-то с помощью Крипто ПРО, но как установить Крипто ПРО тот самый открытый ключ который всё таки можно достать из токена. Или тогда как по открытому ключу токена сгенерить сертификат с открытым ключом???
Offline bor1  
#22 Оставлено : 26 января 2010 г. 20:49:58(UTC)
bor1

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

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

Поблагодарили: 1 раз в 1 постах
Пользоваться для экспорта открытого ключа, для получения сертификата открытого ключа и выработки ЭЦП специальным провайдером. Только так.

Отредактировано пользователем 26 января 2010 г. 20:55:03(UTC)  | Причина: Не указана

Offline e-ken  
#23 Оставлено : 26 января 2010 г. 23:02:15(UTC)
e-ken

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

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

Специальным провайдером? А по конкретней, кусочек кода, или ключевые слова... можно?
Offline bor1  
#24 Оставлено : 27 января 2010 г. 17:56:42(UTC)
bor1

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

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

Поблагодарили: 1 раз в 1 постах
1. Ставите Крипто Про eToken CSP.
2. Код примерно такой:

Код:
    DWORD err = 0;
    HCRYPTPROV prv = 0;
    HCRYPTKEY hkey = 0, hpubkey = 0;
    LPBYTE data = NULL;
    DWORD datalen;

    if (!CryptAcquireContext(&prv, L"имя контейнера на носителе", NULL/*или имя провайдера Крипто Про eToken CSP*/, 75, 0))
    {
	err = GetLastError();
	goto done;
    }

    if (!CryptGetUserKey(prv,AT_KEYEXCHANGE,&hkey))
    {
	err = GetLastError();
	goto done;
    }

    if (!CryptExportKey (hkey, 0 , PUBLICKEYBLOB, 0, data, &datalen)) {
	err = GetLastError();
	goto done;
    }

    data = malloc (datalen);
    if (!data)    {
	err  = (DWORD)NTE_NO_MEMORY;
	goto done;
    }

    if (!CryptExportKey (hkey, 0 , PUBLICKEYBLOB, 0, data, &datalen)) {
	err = GetLastError();
	goto done;
    }

    if(!CryptImportKey( prv, data, datalen, 0,0, &hpubkey)) {
	err = GetLastError();
	goto done;
    }
    /* работа с hpubkey - проверка подписи, например. также проверять подпись можно на hkey */

done:
    if (data) free (data);
    if (hpubkey) CryptDestroyKey(hpubkey);
    if (hkey) CryptDestroyKey(hkey);
    if (prv) CryptReleaseContext(prv, 0);


Кроме того, последние 64 байта в data - голый открытый ключ.
Offline e-ken  
#25 Оставлено : 27 января 2010 г. 20:43:01(UTC)
e-ken

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

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

хорошо!
но ведь из ключа с помощью APDU я тоже могу получить открытый ключ, а он не подходит крипто ПРО пишет что в чистом виде установить нельзя!
Offline e-ken  
#26 Оставлено : 28 января 2010 г. 18:05:51(UTC)
e-ken

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

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

Вопрос простой к уважаемой Крипто ПРО. на одной машине работает клиент с ключом от Алладина (на машине нет крипто про), Клиент ключом подписывает документ, отправляет на сервер. На сервере стоит Крипто ПРО. Какова вероятность возможности проверки сигнатуры от Аладина продуктом Крипто ПРО???? Они что вообще не совместимы?
Offline mel26  
#27 Оставлено : 17 мая 2010 г. 19:42:48(UTC)
mel26

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

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

Код:

      CK_BYTE pubKeyValue[64]; //64 байта ключа из eToken
      BYTE keyParam = 1;     // Здесь Вы устанавливаете параметр, который использовался при генерации ключа
                              // 1 - STR_CRYPTO_PRO_A
                             // 2 - STR_CRYPTO_PRO_B
                             // 3 - STR_CRYPTO_PRO_C

      HCRYPTKEY cpPubKey;

      // Это заготовка для ключевого блоба КриптоПро. Формат структуры есть в SDK
      BYTE KeyBlob[100] = {
            0x06, 0x20, 0x00, 0x00, 0x23, 0x2E, 0x00, 0x00, 0x4D, 0x41, 0x47, 0x31, 0x00, 0x02, 0x00, 0x00, 
            0x30, 0x12, 0x06, 0x07, 0x2A, 0x85, 0x03, 0x02, 0x02, 0x23, 0x00, 0x06, 0x07, 0x2A, 0x85, 0x03, 
            0x02, 0x02, 0x1E, 0x01
      };

      // Дополняем блоб параметром ключа и самим ключом
      KeyBlob[26] = keyParam;
      memcpy(KeyBlob + 36, pubKeyValue, 64);

      // Импортируем ключ в КриптоПро
      if(!CryptImportKey(cpProvHandle, (BYTE*)&KeyBlob, sizeof(KeyBlob), NULL, PUBLICKEYBLOB, &cpPubKey))
      {
           // Вывод ошибки
      }
Offline mel26  
#28 Оставлено : 17 мая 2010 г. 19:50:38(UTC)
mel26

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

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

Еще одно замечаение - при проверке ЭЦП не забудьте сменить порядок следования байт в подписи.
eToken ГОСТ выдает ЭЦП в формате big-endian, КриптоПро - наоборот.
Offline elena123  
#29 Оставлено : 25 июня 2010 г. 19:38:31(UTC)
elena123

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

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

Здравствуйте!
Подскажите пожалуйста, как можно расшифровать сообщение, зашифрованное на ключе согласования, выработанном по RFC 4357 ?
Есть шифртекст и открытый ключ отправителя.

Задача стоит следующая: используется устройство eToken ГОСТ с одной стороны и КриптоПро с другой.
Дело в том, что eToken ГОСТ шифрует данные на ключе согласования, а КриптоПро шифрует данные на случайном ключе, который шифруется ключом согласования и присоединяется к передаваемому сообщению. Соответственно, тут немного разные алгоритмы выработки шифртекста.

Подскажите пожалуйста, как можно с помощью КриптоПро расшифровать то, что зашифровал eToken ГОСТ ?
Заранее большое спасибо, буду рада любой помощи.
Offline Максим Коллегин  
#30 Оставлено : 25 июня 2010 г. 19:44:45(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 37 раз
Поблагодарили: 717 раз в 621 постах
Задайте этот вопрос Аладдину.
Знания в базе знаний, поддержка в техподдержке
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
4 Страницы<1234>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.