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

Уведомление

Icon
Error

6 Страницы«<23456>
Опции
К последнему сообщению К первому непрочитанному
Offline Юрий  
#31 Оставлено : 18 апреля 2013 г. 6:02:16(UTC)
Юрий

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

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 93 раз в 67 постах
Автор: Boris@Serezhkin.com Перейти к цитате
Автор: Юрий Перейти к цитате
Нет, то что описали это только первый уровень этого сумрака :)
...
И вот уже потом пробовать добавлять подпись с другим алгоритмом.


Все как в сказке, дальше в сумрак, ближе свет.
Кстати CryptEncodeObject вместе с Decode - Unsupported.
Пройдем дальше, к ASN1. Тут все ясно.
Стоит задача получить пустую структуру содержащую в себе "digestAlgorithms"
Заполненый гостом и негостом. подложить заготовку и все вроде должно заработать.
Даже Detach на смеси сертификатов.
Замечательно что эта структура просто обязана быть константой.
И не надо ее каждый раз вычислять, достаточно хранить.

Эти функции являются основой обработки ASN.1 в Crypto API. "Deprecated" они заработали, возможно, просто потому что появились аналоги вида CryptEncodeObjectEx.

UPD: Вот, точно! Посмотрел http://msdn.microsoft.com/en-us/library/ms936955.aspx - именно CryptEncodeObjectEx и поддерживается. Но в общем странно равняться на Microsoft® Windows® CE 5.0, я так считаю.

Отредактировано пользователем 18 апреля 2013 г. 6:40:42(UTC)  | Причина: Не указана

С уважением,
Юрий Строжевский
Offline Новожилова Елена  
#32 Оставлено : 18 апреля 2013 г. 13:30:53(UTC)
Новожилова Елена

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

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
Я имела в виду, что с ходу не скажу, как при помощи CryptoAPI _добавить_ закодированную структуру digestAlgorithms в сообщение. Если только создать подпись, потом ее удалить и надеяться, что алгоритм удален не будет. А закодировать алгоритм - дело нехитрое :-)
Offline Boris@Serezhkin.com  
#33 Оставлено : 19 апреля 2013 г. 3:08:19(UTC)
Boris@Serezhkin.com

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 11 раз в 10 постах
Автор: Новожилова Елена Перейти к цитате
Я имела в виду, что с ходу не скажу, как при помощи CryptoAPI _добавить_ закодированную структуру digestAlgorithms в сообщение. Если только создать подпись, потом ее удалить и надеяться, что алгоритм удален не будет. А закодировать алгоритм - дело нехитрое :-)


Вобщем я так и поступил, и было мне счастье.
алгоритмы остались.
Теперь у меня есть две пустышки, первые детач подписи прекрасно добавляются.
Осталось скрестить их в одну.
Конечно можно остановиться и на этом. посмотрел алгоритм подписанта, взял нужную пустышку.
А если и этого можно избежать?

Поискал АСН1 редакторы, с ходу ничего внятного не нашел.
Может кто подскажет?

Как я понимаю в пустышке надо изменить число алгоритмов на 2
и добавить последовательность описывающую второй алгоритм.

Может кто-нибудь, например Елена Drool , сможет это для меня сделать?
Хочется проверить детач подпись со смесью алгоритмов.
Практического смысла это наверное не имеет, но хххочется.......

Борис

Отредактировано пользователем 19 апреля 2013 г. 3:08:58(UTC)  | Причина: Забыл пустышки прикламть.

Вложение(я):
EmptySHA1.txt (1kb) загружен 3 раз(а).
EmptyGost.txt (1kb) загружен 5 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Boris@Serezhkin.com  
#34 Оставлено : 19 апреля 2013 г. 3:22:10(UTC)
Boris@Serezhkin.com

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 11 раз в 10 постах
Автор: Юрий Перейти к цитате
Эти функции являются основой обработки ASN.1 в Crypto API. "Deprecated" они заработали, возможно, просто потому что появились аналоги вида CryptEncodeObjectEx.

Или еще почему, это важно?

Автор: Юрий Перейти к цитате
UPD: Вот, точно! Посмотрел http://msdn.microsoft.com/en-us/library/ms936955.aspx - именно CryptEncodeObjectEx и поддерживается. Но в общем странно равняться на Microsoft® Windows® CE 5.0, я так считаю.

А это меня переклинило, я посчитал, что это виндус8.
Хотя почему бы и не равняться?
Если я творю класс, то должен использовать общий минимум для максимального результата.

Offline Андрей Писарев  
#35 Оставлено : 19 апреля 2013 г. 7:40:37(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Автор: Boris@Serezhkin.com Перейти к цитате


Поискал АСН1 редакторы, с ходу ничего внятного не нашел.
Может кто подскажет?

Борис


Смотри в ЛС
Пользователь Андрей * прикрепил следующие файлы:
asn1editor.png (75kb) загружен 19 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Техническую поддержку оказываем тут
Наша база знаний
Offline Boris@Serezhkin.com  
#36 Оставлено : 19 апреля 2013 г. 14:13:37(UTC)
Boris@Serezhkin.com

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 11 раз в 10 постах
Седьмой и надеюсь последний последний уровень сумрака Dancing

Автор: Новожилова Елена Перейти к цитате
С отделенной подписью проблема. CryptoAPI умеет добавлять подписи только по уже известным алгоритмам хэширования. Тем, которые записаны в поле digestAlgorithms.

Как говорится:
Кот Матроскин написал:
Урра, заработало !!!

Скрестил две пустышки

Детач подпись прекрасно формируется на смеси сертификатов через CryptMsgControl.
И первая и последующие.
Кому интересно, результаты теста прилагаю.

Осталось непонятка, как в пустышку впихнуть данные? для присоединенной подписи.
Пока я использую CryptSignMessage с пустым списком подписантов.
Ну и потом opentodecode, update, control.

Наверное opentodecode(Attached), update(пустышка),update(данные), control.
Ну и последний вопрос как наиболее просто узнать что блоб не есть ASN1 ?
Вложение(я):
T_Sasha.log (1kb) загружен 2 раз(а).
EmptyBOTH.txt (1kb) загружен 2 раз(а).
dtc.txt (1kb) загружен 2 раз(а).
dtc.txt.sig.TXT (7kb) загружен 3 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Boris@Serezhkin.com  
#37 Оставлено : 19 апреля 2013 г. 19:42:43(UTC)
Boris@Serezhkin.com

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 11 раз в 10 постах
Anxious
Ты не радуйся змея, скоро выпустят меня....
Рано обрадовался.

Осталось реализовать удаление подписи. начал с детач.
удаляю по индексу нулевую, соответственно и сертификат подписанта по тому же индексу.
проверяю что получилось:
подписантов N-1, сертификатов N-1.
Берем первого из оставшихся и видим что сертификата для него нету.
Вспоминаем слова Елены, что сет подписантов сортируется по вышепотусторонним правилам ASN1
о размещении непонятно чего неизвестно где.
Распространяем высказывание на сертификаты подписантов и начинаем распространять уныние.
Получается что для удаления одной из подписей, даже единственной, а я знаю сколько их там,
по индексу или по другому критерию (сернорм,издатель или отпечаток или имя , издатель).
необходимо получить список подписантов, список их сертификатов,
установить соответствие по [сер.ном,издатель], посчитать отпечаток, а вдруг кто захочет.
удалить из одного списка по индексу Х, а из другого списка по индексу З. а индекс З может быть и -1
ну не приложили сертификат.
А потом не забыть соответствие перестроить, ибо никто не гарантирует поведение ASN1.
- Голова пухнет. Brick wall
нету недостижимой стройности.

Кстати после удаления подписи, так как я сказал вначале, КриптоАРМ на остаток говорит что все хорошо и сертификаты в порядке.
да, КриптоАрм прекрасно показывает Детач подпись на смеси алгоритмов, хотя сам этого делать не хочет
- недоработка?
Получается, что КриптоАрм лазит по локальным хранилищам для поиска сертификата подписанта.
Причем находит даже в хранилище с именем "ЕРУНДА" Drool
А если и я начну лазать где ни поподя и буду удалять серт не смотря где его нашел? Dancing

Offline Новожилова Елена  
#38 Оставлено : 23 апреля 2013 г. 10:25:44(UTC)
Новожилова Елена

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

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
Так вы сделайте проще - находите подпись, которую нужно удалить. Потом, среди сертификатов в сообщении пытаетесь найти тот, на котором она была сделана. Нашелся сертификат - удаляете. Не нашелся - еще лучше. Или вообще не удалять сертификат - а вдруг там было 2 подписи на одном сертификате :-)
Offline Boris@Serezhkin.com  
#39 Оставлено : 23 апреля 2013 г. 12:28:17(UTC)
Boris@Serezhkin.com

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 11 раз в 10 постах
Автор: Новожилова Елена Перейти к цитате
Так вы сделайте проще - находите подпись, которую нужно удалить. Потом, среди сертификатов в сообщении пытаетесь найти тот, на котором она была сделана. Нашелся сертификат - удаляете. Не нашелся - еще лучше.

Dancing - Именно сейчас я и пытаюсь реализовать ЭТО.
Не найтись не может, я же их сам и добавляю.
Автор: Новожилова Елена Перейти к цитате
Или вообще не удалять сертификат - а вдруг там было 2 подписи на одном сертификате :-)

А насчет "не удалять", так подпись разбухнет. Или это не страшно?
А придет сертификат неиспользованный? вроде это не красиво будет.
То что сейчас работает я делал через CAPICOM+VB6, так там есть кнопка "Снять ВСЕ подписи" - и по новой...
А сейчас хотят выборочно. У привереды...Drool
Борис

ЗЫ:
Все сделал, работает....

Отредактировано пользователем 23 апреля 2013 г. 13:48:04(UTC)  | Причина: Add PS

Offline Ахат  
#40 Оставлено : 23 августа 2013 г. 13:22:17(UTC)
Ахат

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

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

Сказал(а) «Спасибо»: 5 раз
Задача: есть отсоединенная PKCS7 подпись, нужно добавить подпись, не загружая исходные данные, HCRYPTMSG между подписями закрывается.
Именно добавить подпись, а не подписать предыдущую подпись (CryptMsgCountersign).

Делаю CryptMsgControl(CMSG_CTRL_ADD_SIGNER), для которой заполняется CMSG_SIGNER_ENCODE_INFO,
причем туда в атрибуты копируется атрибут szOID_RSA_messageDigest (хеш исходных данных) из предыдущей подписи или посчитанный отдельно для обоих подписей.
В итоге CryptMsgGetParam(CMSG_ENCODED_MESSAGE) получаем при просмотре asn1 просмотрщиком, что вторая подпись содержит два атрибута szOID_RSA_messageDigest,
один - хэш пустых данных (981E5F3CA30C841487830F84FB433E13AC1101569B9C13584AC483234CD656C0), другой - наш, правильный.
Бывают 2 случая: 1 - наш правильный хэш идет до хэша от пустых данных, тогда проверка подписи дает, что она верна.
2 случай - если наоборот, тогда подпись не верна.

Как указать системе или криптопровайдеру, чтобы он не включал свой атрибут szOID_RSA_messageDigest (от пустых данных) при CMSG_CTRL_ADD_SIGNER ?
Пробовал флаг CPCMSG_CADES_DISABLE - не помогает (все равно включается szOID_RSA_messageDigest от пустых данных).
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
6 Страницы«<23456>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.