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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline vepr  
#1 Оставлено : 4 декабря 2009 г. 19:11:08(UTC)
vepr

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

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

подскажите как работать связке? есть примеры только на С++.
у меня задача
выдать сертификат .pfx (закрытый+открытый
ключ+сертификат) с алгоритмом шифрования и хэширования ГОСТ 34.10-2001.
Слышал есть классы под .net
Offline Челпанов А.  
#2 Оставлено : 7 декабря 2009 г. 10:36:14(UTC)
Челпанов А.

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

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

Поблагодарили: 2 раз в 2 постах
Продукт называется КриптоПро Sharpei. В КриптоПро Sharpei SDK есть примеры. Сделать .pfx с секретным ключем, все равно не получится - csp не поддерживается (уж больно он не стойкий формат).
С уважением, Александр.
Offline vepr  
#3 Оставлено : 7 декабря 2009 г. 16:48:44(UTC)
vepr

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

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

Хорошо
1. Как можно тогда обойти этот момент с pfx
2. Для работы программы sharpei должен стоять на клиентской машине Я же буду его библиотеки использовать?
Offline vepr  
#4 Оставлено : 7 декабря 2009 г. 21:08:51(UTC)
vepr

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

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

хорошо, сегодня изучал 1 раз Sharpei.
Как хотя бы просто сгенерировать сертификат и выдать его самому себе?
Offline Челпанов А.  
#5 Оставлено : 8 декабря 2009 г. 12:00:17(UTC)
Челпанов А.

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

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

Поблагодарили: 2 раз в 2 постах
Цитата:
1. Как можно тогда обойти этот момент с pfx
Генерировать ключевые контейнеры, CSP (и Sharpei соответственно), поддерживает несколько ключевых носителей. Зачем необходим именно pfx?
Цитата:
2. Для работы программы sharpei должен стоять на клиентской машине Я же буду его библиотеки использовать?
Да. Sharpei и CSP необходимо устанавливать на клиента.
Цитата:
Как хотя бы просто сгенерировать сертификат и выдать его самому себе?
Ключевой контейнер и сертификат для тестовых целей проще сделать без всякого Sharpei, зайти на наш тестовый центр сертифиации. Если необходимо именно именно из .Net Framework, то в Sharpei SDK есть серия примеров по взаимодействуию с центром GenCert.zip
С уважением, Александр.
Offline vepr  
#6 Оставлено : 8 декабря 2009 г. 12:26:51(UTC)
vepr

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

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

Благодарю за ответ.
Хорошо - без pfx обойдусь.
Дело в том, что я хочу сам сгенерировать сертификат, используя алгоритм ГОСТ.
В примерах такого не нашёл - только работа с центром сертификации
Offline Челпанов А.  
#7 Оставлено : 8 декабря 2009 г. 12:44:47(UTC)
Челпанов А.

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

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

Поблагодарили: 2 раз в 2 постах
Цитата:
Дело в том, что я хочу сам сгенерировать сертификат, используя алгоритм ГОСТ.
Для тестовых целей? Тогда можно воспользоваться утилитой из состава csp, например так:
Цитата:
csptest.exe -makecert CN=lalala -p 0
или makecert.exe из состава Microsoft SDK (тогда указывайте имя ГОСТ провайдера).
С уважением, Александр.
Offline vepr  
#8 Оставлено : 8 декабря 2009 г. 13:01:59(UTC)
vepr

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

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

А без использования csptest?
Я её уже освоил ) - но необходимо всё в код уместить. Как?
Offline Челпанов А.  
#9 Оставлено : 8 декабря 2009 г. 13:13:44(UTC)
Челпанов А.

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

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

Поблагодарили: 2 раз в 2 постах
Это придется делать либо на C++ либо через P/Invoke, других путей мне не изветсно... :(. Могу дать отправную точку в MSDN CryptSignAndEncodeCertificate.
Мне все равно не понятно зачем программная генерация самоподписанных сертификатов... Для тестов можно и утилитами обойтись, как рабочее решение все равно нельзя использовать.
С уважением, Александр.
Offline gvi  
#10 Оставлено : 8 декабря 2009 г. 13:25:26(UTC)
gvi

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

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

Вложение(я):
КриптоПро УЦ Руководство программиста.zip (848kb) загружен 268 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline vepr  
#11 Оставлено : 8 декабря 2009 г. 19:24:28(UTC)
vepr

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

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

Ну тогда вариант такой получается - делать консольную софтинку с приёмомо параметров на С++.
Начать с чего?
С руководства?
Offline Челпанов А.  
#12 Оставлено : 9 декабря 2009 г. 10:17:12(UTC)
Челпанов А.

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

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

Поблагодарили: 2 раз в 2 постах
Это зависит от целей утилиты... Если все-таки для рабочих целей (на наш сервер), то я бы посоветовал почитать руководство.

Отредактировано пользователем 9 декабря 2009 г. 10:22:02(UTC)  | Причина: Не указана

С уважением, Александр.
Offline vepr  
#13 Оставлено : 9 декабря 2009 г. 11:56:39(UTC)
vepr

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

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

Хорошо - читаю
Offline vepr  
#14 Оставлено : 13 декабря 2009 г. 23:10:52(UTC)
vepr

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

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

Прочитал документацию и нашёл хороший пример
http://www.delphikingdom...witem.asp?catalogid=1323
То что на Delphi - не смущает, хочу понять принцип работы функций cryptoAPI. Долго разбирал описанный класс, не совсем всё понял.

У меня сейчас задача простая - зашифровать и расшифровать файл. В примере файл сразу шифруется и расшифровывается.
Я попробовал зашифровать файл отдельно,
а расшифровать не получается - получаю ошибку во время импорта ключа...
Общий принцип шифрования написан такой
Цитата:

Общая схема шифрования такова.
Получаем хэндл своей ключевой пары
Импортируем открытый ключ получателя на свою ключевую пару
Генерируем сессионный ключ (указываем алгоритм шифрования)
Устанавливаем режим шифрования
Экспортируем сессионный ключ в зашифрованном виде
Извлекаем вектор инициализации
Шифруем сообщение.

расшифровки
Цитата:

Для успешной расшифровки получателю необходимо иметь:
Публичный ключ отправителя
Свою ключевую пару, на публичном ключе которой шифровался сессионный ключ
Шифрованный сессионный ключ
Вектор инициализации
Зашифрованные данные.
Режим шифрования
Идентификатор алгоритма шифрования

Я создал контекст, сгенерл ключи, экспортировал их потом
что-то с вектором инициализации делаю - и далее шифрую CryptEncrypt
И как работать, если контейнер есть? Т.Е. я сделал контекст с именем имеющегося контекста, как потом ключи брать
Какова последовательность работы? Общие принципы понятны, а поконкретнее?
Offline vepr  
#15 Оставлено : 14 декабря 2009 г. 15:29:14(UTC)
vepr

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

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

разобрался с шифровкой-дешифровкой! Вопрос в том обязательно ли сохранять файлы pubkey,вектора инициализации, сессионного ключа. Можно ли эти данные прятать в сам файл? Или куда их можно прятать?
Offline Челпанов А.  
#16 Оставлено : 14 декабря 2009 г. 15:42:31(UTC)
Челпанов А.

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

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

Поблагодарили: 2 раз в 2 постах
Вектор инициализации, сессионный ключ и открытый ключ можно сохранять в файле.
Посмотрите формат PKCS #7/CMS. Этот формат поддерживается в .Net, в CryptoApi, CapiCom... Может будет удобнее использовать его, а не изобретать собственный
С уважением, Александр.
Offline vepr  
#17 Оставлено : 14 декабря 2009 г. 21:14:49(UTC)
vepr

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

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

буду признателен за ссылку на пример
Offline Челпанов А.  
#18 Оставлено : 16 декабря 2009 г. 13:31:14(UTC)
Челпанов А.

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

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

Поблагодарили: 2 раз в 2 постах
.Net Framework
Описание классов в MSDN namespace System.Security.Cryptography.Pkcs
Один из примеров в MSDN статья под названием "How to: Envelope a Message for One Recipient"
КриптоПро Sharpei пример из SimpleCS.zip CMS\G_EnvelopedSingleRecepient.cs (в КриптоПро Sharpei SDK небольшое описание примера)

CryptoAPI
В MSDN статья под названием "Encoding Enveloped Data" - описание и рядом примеры
В MSDN описание функции CryptEncryptMessage в ней примеры и рядом описание других функций.
Примеры в КриптоПро CSP SDK : каталог sdk\samples\CSP\CryptMessages
В Microsoft Platform SDK: Samples\Security\CryptoApi\EncryptMessage\CPP\

Capicom
Из MSDN Статья "EnvelopedData Object" - описание объекта
Пример в КриптоПро CSP SDK: sdk\samples\CSP\CEnvelop\CEnvelop.vbs"
В Microsoft Platform SDK Samples\Security\capicom\vbs
С уважением, Александр.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.