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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Michael Makushev  
#1 Оставлено : 13 января 2008 г. 16:50:40(UTC)
Michael Makushev

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

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

В продолжении темы про Access Violation Есть достаточно странная ситуация:
На машине установи эмулятор дисковода (отсутсвавал как вид вообще) после чего создал на нем контейнер посредством CryptAcquireContext и параметра CRYPT_NEWKEYSET. Контейнер был благополучно создан (физически это выглядело как каталог Makushev.000 и файл def.key ), далее в вашем центре сертификации попытался получить сертификат (ссылка http://www.cryptopro.ru/certsrv/certcarc.asp) и установил его без всяческих доп запросов. Куда он установился и как это мне честно говоря не понятно. Дальше при попытке получить сертификат...что-то получаю... но при попытке использовать его дальше возникает ошибка NTE_BAD_ALGID. Используя панель CSP КриптоПро выясняю что в данном контейнере сертификатов нет.
Где грабли и правильная ли последовательность моих действий для получения полноценного контейнера с сертификатом который я смогу использовать для криптования сообщения открытым ключем?
И второй вопрос: как вернуться к исходному состоянию и попытаться заново создать контейнер? Простое уделние контейнера с дискеты не проходит... вторично контейнер не будет создан...
И потом как поместить в контейнер сертификат, если ваша система ругается что контейнер не соответсвует сертификату? У меня если честно началась уже каша...
Offline Максим Коллегин  
#2 Оставлено : 13 января 2008 г. 16:58:14(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 19 раз
Поблагодарили: 613 раз в 546 постах
Очень сумбурно.
Какая стоит задача?
Для шифрования CryptEncryptMessage закрытый ключ не нужен.
Знания в базе знаний, поддержка в техподдержке
Offline Michael Makushev  
#3 Оставлено : 14 января 2008 г. 3:13:47(UTC)
Michael Makushev

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

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

maxdm написал:
Очень сумбурно.
Какая стоит задача?
Для шифрования CryptEncryptMessage закрытый ключ не нужен.

Задача проста: используя контейнер который соотв. находится на дискете и сертификат в нем, произвести кодирование, а затем раскодирование некоторого бинарного блоба.
Используя функцию CryptEncryptMessage полагаю это можно сделать.
Дальше чтобы проверить работоспособность программы в лабораторных условиях я устанавливаю пакет КриптоПро, затем включаю эмулятор дисковода и "вставляю" дискету, регистрирую её как считывающее устройство, функцией CryptAcquireContext и параметра CRYPT_NEWKEYSET создаю контейнер (как уже сказал выглядит физически как каталог инекий набор файлов), после чего .... что дальше? Я предполагал что надо в него поместить сертификат который я могу поличить (и получил) в вашем тестовом сертификационном центре. Но при попытке поместить в контейнер сертификат (дабы показывал он свое наличие в этом контейнере с помощью функций вашей сервисной оболочки и был доступен с помощью функций получения сертификатов из моей программы) оболочка ругается что контейнер не совместим с сертификатом или что-то в этом духе. Вот я почему и спрашиваю какая корректная последовательность работы с ключевым носителем, сертификатом и контейнером, дабы все таки проверить мне корректную работу моей программы?
И ещё грабли на которые я наступил: решив начать процесс проверки с начала, я вашими средствами удалил контейнер и решил создать его заново... в чем крупно обломался... так как на словах сервисной оболочки контейнер создавался, чего физически не наблюдалось, и не подтверждалось той же самой оболочкой...
Offline Максим Коллегин  
#4 Оставлено : 14 января 2008 г. 6:32:18(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 19 раз
Поблагодарили: 613 раз в 546 постах
1. Кодирование и шифрование - разные вещи.
2. CryptEncryptMessage шифрует, затем кодирует в ASN1.
3. Для шифрования нужен лишь открытый ключ (сертификат) получателя. Для расшифрования, соответственно закрытый.
4. Как вы устанавливали в контейнер сертификат я не знаю - для работы Decrypt нужно, чтобы у сертификата в хранилище была ссылка на закрытый ключ. Сертификат в контейнере нужен лишь для удобства пользователя (и для Propagate - но это выходит за рамки темы).
5. Код по шифрованию-расшифрованию я привел в предыдущем топике - если что не понятно - спрашивайте - попробую помочь. Корректная последовательность - там же - переводить в Pascal не буду - лет 10 уже не пользовался.
6. Все проблемы с Pascal обычно из-за кривых заголовочных файлов или маршаллинга.
7. Начать можно с этого http://www.citforum.ru/p...mming/delphi/use_crypto/

Знания в базе знаний, поддержка в техподдержке
Offline Michael Makushev  
#5 Оставлено : 14 января 2008 г. 20:40:06(UTC)
Michael Makushev

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

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

maxdm написал:
1. Кодирование и шифрование - разные вещи.
2. CryptEncryptMessage шифрует, затем кодирует в ASN1.
3. Для шифрования нужен лишь открытый ключ (сертификат) получателя. Для расшифрования, соответственно закрытый.
4. Как вы устанавливали в контейнер сертификат я не знаю - для работы Decrypt нужно, чтобы у сертификата в хранилище была ссылка на закрытый ключ. Сертификат в контейнере нужен лишь для удобства пользователя (и для Propagate - но это выходит за рамки темы).
5. Код по шифрованию-расшифрованию я привел в предыдущем топике - если что не понятно - спрашивайте - попробую помочь. Корректная последовательность - там же - переводить в Pascal не буду - лет 10 уже не пользовался.
6. Все проблемы с Pascal обычно из-за кривых заголовочных файлов или маршаллинга.
7. Начать можно с этого http://www.citforum.ru/p...mming/delphi/use_crypto/


1. Согласен, погорячился.
2. Так же согласен, но я это опускал, так как меня интересовал конечный результат
3. Это я в курсе ещё из института. И про методы выработки больших чисел.
4. А для работы CryptEncrypt что нужно?
5. -
6. Я согласен. Но от моего согласия или несогласия код сам не перепишется...
7. Спасибо.
Так что существенным для меня остался 4-й вопрос. Каким образом мне получить контейнер на дискете и привязать к ключу в нем совместимый сертификат.
Offline Максим Коллегин  
#6 Оставлено : 14 января 2008 г. 21:55:54(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 19 раз
Поблагодарили: 613 раз в 546 постах
Для CryptEncrypt нужен сессионный ключ (или открытый ключ RSA - но такая схема используется исключительно редко)
Контейнер с сертификатом и сам сертификат проще всего сгенерить и получить на нашем тестовом центре.
Можно использовать makecert из MS SDK, но только для буржуйских алгоритмов.
PS. CryptEncrypt и CryptEncryptMessage - абсолютно разные функции.

Отредактировано пользователем 14 января 2008 г. 22:00:12(UTC)  | Причина: Не указана

Знания в базе знаний, поддержка в техподдержке
Offline Michael Makushev  
#7 Оставлено : 14 января 2008 г. 22:01:14(UTC)
Michael Makushev

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

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

maxdm написал:
Для CryptEncrypt нужен сессионый ключ (или открытый ключ RSA - но такая схема используется исключительно редко)
Контейнер с сертификатом и сам сертификат проще всего сгенерить и получить на нашем тестовом центре.
Можно использовать makecert из MS SDK, но только для буржуйских алгоритмов.
PS. CryptEncrypt и CryptEncryptMessage - абсолютно разные функции.

Я в курсе что разные... просто я полагал что мы ведем разговор CryptEncryptMessage.
Ну вот получил я в вашем центре контейнер... и что дальше? как его пометить на носитель типа "дискета"?
Offline Максим Коллегин  
#8 Оставлено : 14 января 2008 г. 22:44:17(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 19 раз
Поблагодарили: 613 раз в 546 постах
Хм, а на каком алгоритме и носителе вы его сгенерили?
Знания в базе знаний, поддержка в техподдержке
Offline Michael Makushev  
#9 Оставлено : 15 января 2008 г. 16:39:09(UTC)
Michael Makushev

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

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

maxdm написал:
Хм, а на каком алгоритме и носителе вы его сгенерили?

На машине установил эмулятор дисковода (отсутсвавал как вид вообще) после чего создал на нем контейнер посредством CryptAcquireContext и параметра CRYPT_NEWKEYSET. На сколько я помню после него пявился контейнер. И применял так же
Цитата:
CryptGenKey(hProv, CALG_RC4, AT_KEYEXCHANGE, nil);
Offline Максим Коллегин  
#10 Оставлено : 15 января 2008 г. 23:58:17(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 19 раз
Поблагодарили: 613 раз в 546 постах
хм, а не проще сгенерить ключ на страничке запроса на сертификат?
Знания в базе знаний, поддержка в техподдержке
Offline Michael Makushev  
#11 Оставлено : 16 января 2008 г. 16:42:34(UTC)
Michael Makushev

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

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

maxdm написал:
хм, а не проще сгенерить ключ на страничке запроса на сертификат?

Давайте так. Как мне сделать "хорошо"? То есть как мне сгенерить контейнер с сертификатом и поместить на носитель который предусмотрен в вашей системе, а именно на дискету?
Какова последовательность действий, затем для использования всего сгенерированного и записанного
Offline Максим Коллегин  
#12 Оставлено : 16 января 2008 г. 22:03:35(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 19 раз
Поблагодарили: 613 раз в 546 постах
Может обсудим по Skype? слишком много писать.
Знания в базе знаний, поддержка в техподдержке
Offline Alto  
#13 Оставлено : 17 января 2008 г. 20:51:49(UTC)
Alto

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

Группы: Участники
Зарегистрирован: 16.01.2008(UTC)
Сообщений: 1
Откуда: Siberia, Kuzbass, Kemerovo

Очень хорошо нам в 2005 году помог опыт Кирила Соболева... и его четкие и конкретные ответы на все возникающие, по ходу дела, вопросы... не очень понимаю, почему нельзя учавствовать вот в этой теме...
Offline Michael Makushev  
#14 Оставлено : 21 января 2008 г. 16:34:47(UTC)
Michael Makushev

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

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

maxdm написал:
Может обсудим по Skype? слишком много писать.

к сожалению скайп не могу. максимум на что хотелось бы расчитывать - это вы мне напишите на почту "M.Makushev@exisoft.ru"
с него я буду отвечать более оперативно.
Ну и результаты конечно уйдут сюда...
Offline Michael Makushev  
#15 Оставлено : 23 января 2008 г. 21:54:23(UTC)
Michael Makushev

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

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

maxdm написал:
Может обсудим по Skype? слишком много писать.

Почему много? Неужели данная процедура столько занимает?!!
Offline Максим Коллегин  
#16 Оставлено : 24 января 2008 г. 2:52:56(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 19 раз
Поблагодарили: 613 раз в 546 постах
Судя по уже второму топику - столько. Можно еще ICQ :)
Знания в базе знаний, поддержка в техподдержке
Offline Michael Makushev  
#17 Оставлено : 24 января 2008 г. 20:25:49(UTC)
Michael Makushev

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

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

maxdm написал:
Судя по уже второму топику - столько. Можно еще ICQ :)

Ну я же не берусь судить... это ваши слова.
То есть физическое создание дискеты, создание ключа или/и получение на вашем сайте сертификата с ключем, и перемещение всего этого на дискету процедура настолько сложная для описания, что требует только персонального общения что даже почта не поможет?
Вы знаете, я не профи конечно в области криптографии, но мне крайне сомнительно что все обстоит именно так как я описал...
На сколько я понимаю я подробно описал физические параметры того чем я обладаю для создания работоспособного тестового комплекса для проверки работы алгоритма программы по критованию. Скажите честно чего вам не хватает в описании?

PS. Не надо мне предлагать читать основы криптографии - я по ним диплом сдавал и математическую основу знаю вполне. Работа с CryptoAPI тоже не видится мне особенно сложной, так как с помощью советов приведённых на этом и на старом форуме я заставил кореектно работать паскалевский "порт" с паскалевскими хедерами. Проблема возникает при попытке понять и применить принциып работы именно CSP КриптоПро. И вы видимо или не представляете вообще о чем речь или не желаете помогать - простите за прямоту, но у меня сложилось именно такое впечатление
Offline Максим Коллегин  
#18 Оставлено : 25 января 2008 г. 3:13:43(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 19 раз
Поблагодарили: 613 раз в 546 постах
Отписал на почту. Сложного ничего нет - но почему этот тред активен уже вторую неделю - не понимаю.
Знания в базе знаний, поддержка в техподдержке
Offline Michael Makushev  
#19 Оставлено : 29 января 2008 г. 16:56:39(UTC)
Michael Makushev

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

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

maxdm написал:
Отписал на почту. Сложного ничего нет - но почему этот тред активен уже вторую неделю - не понимаю.

Ну вот и замечательно, что сложного ничего нет. Я так же как и вы удивляюсь долгожительству этого треда. Позвольте я угадаю почему так происходит? Третью неделю, моя беспробудно тупая личность пытается выведать у гуру процесс всего что я описал выше. И гуру, говоря что сложного ничего нет... почему-то не желает раскрывать особенности вышеозначенного процесса. Даже не представляю почему такое происходит...
Offline Василий Дементьев  
#20 Оставлено : 29 января 2008 г. 21:51:06(UTC)
Василий Дементьев

Статус: Администратор

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

Поблагодарили: 5 раз в 4 постах
Предлагаю действовать "от обратного".
Вряд ли Вам интересна функция CryptEncryptMessage сама по себе.
Вероятно, пишется некоторая программа для работы пользователей.
Если так - то СНАЧАЛА надо определить: где и каким образом пользователи будут получать сертификат и соответствующий ему секретный ключ.
Как только это будет определено - станет более понятно, что рекомендовать по технике - как делать запрос на сертификат, как сертификат устанавливать (т.е. нужно ли писать свою программу или будет достаточно готовых решений).
И вообще, может быть, и саму программу шифрования писать не придётся. Опять-таки, есть готовые решения:
http://www.cryptopro.ru/...ucts/cryptcp/default.htm
http://digt.ru/products/cryptoarm/
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.