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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline finex  
#1 Оставлено : 1 апреля 2015 г. 17:11:50(UTC)
finex

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

Группы: Участники
Зарегистрирован: 01.04.2015(UTC)
Сообщений: 14
Российская Федерация
Откуда: Екатеринбург

Сказал(а) «Спасибо»: 1 раз
Добрый день
Имеется стороннее приложение написанное на Delphi7. Приложение использует в работе модули CryptoAPI по следующему алгоритму:
1. Создает текстовый файл sig.tmp
2. Подписывает файл сертификатом пользователя с помощью функции, которая возвращает некоторый текст (файл+подпись)

CryptoAPI.CertSign(StrToAlg('GOST2001'),
'MY', fname,
CertFindCfg('', CertSN, 0, X500Empty, X500Empty),
False, True, False, False, False, s,
true)

3. Далее полученный текст сохраняется в файл sig.sig

Проверка средствами самой программы проходит нормально, но при проверке средствами CAPICOM либо CSPTEST всегда выдает сообщение "встречено неверное значение тега asn1"

Пrи этом если файл sig.tmp подписать средствами CAPICOM, то файл sig.sig будет отличаться от файла из п.3
Offline Kirill Sobolev  
#2 Оставлено : 1 апреля 2015 г. 17:16:21(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
А в чем вопрос?
В CryptoAPI от MS нет функции CertSign (и вообще нет функций подписи файла).
Очевидно, что функция CertSign использует какой-то свой формат записи данных.
Техническую поддержку оказываем тут
Наша база знаний
Offline finex  
#3 Оставлено : 2 апреля 2015 г. 11:46:24(UTC)
finex

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

Группы: Участники
Зарегистрирован: 01.04.2015(UTC)
Сообщений: 14
Российская Федерация
Откуда: Екатеринбург

Сказал(а) «Спасибо»: 1 раз
В том то и дело. Просмотрев исходники кода обнаружил, что для данной программы брались "самописные" модули и похоже на этапе запаковки подписанного объема данных в файл происходила не просто запись последовательности байт. а запись по определенным правилам. Видимо поэтому и получается ошибка
Offline Kirill Sobolev  
#4 Оставлено : 2 апреля 2015 г. 22:25:21(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Компания Крипто-Про не имеет никакого отношения к этим модулям.
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#5 Оставлено : 3 апреля 2015 г. 8:21:57(UTC)
Андрей *

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

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

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
Автор: finex Перейти к цитате
В том то и дело. Просмотрев исходники кода обнаружил, что для данной программы брались "самописные" модули и похоже на этапе запаковки подписанного объема данных в файл происходила не просто запись последовательности байт. а запись по определенным правилам. Видимо поэтому и получается ошибка


Ценная информация. Помощь нужна или строки, где неправильно используются функции, уже известны?
Техническую поддержку оказываем тут
Наша база знаний
Offline finex  
#6 Оставлено : 3 апреля 2015 г. 11:55:09(UTC)
finex

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

Группы: Участники
Зарегистрирован: 01.04.2015(UTC)
Сообщений: 14
Российская Федерация
Откуда: Екатеринбург

Сказал(а) «Спасибо»: 1 раз
Модули были GConsts, GWinCryp, GWinCPro, GGlbUtil, GVariant, GDifUtil (в секции uses). Это на случай если кому то интересно.
Тему можно считать закрытой, т.к. по факту подписанный таким образом файл не является достоверным с точки зрения любой другой системы
Offline Андрей Писарев  
#7 Оставлено : 3 апреля 2015 г. 12:46:59(UTC)
Андрей *

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

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

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
Автор: finex Перейти к цитате
Модули были GConsts, GWinCryp, GWinCPro, GGlbUtil, GVariant, GDifUtil (в секции uses). Это на случай если кому то интересно.
Тему можно считать закрытой, т.к. по факту подписанный таким образом файл не является достоверным с точки зрения любой другой системы

Может там CMS дополнительно кодируется?...
Даже не прикрепив примера итогового файла, сделал вывод.
Быстро сдался при наличии исходников-то...
Техническую поддержку оказываем тут
Наша база знаний
Offline finex  
#8 Оставлено : 3 апреля 2015 г. 13:45:24(UTC)
finex

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

Группы: Участники
Зарегистрирован: 01.04.2015(UTC)
Сообщений: 14
Российская Федерация
Откуда: Екатеринбург

Сказал(а) «Спасибо»: 1 раз
Автор: Андрей * Перейти к цитате

Быстро сдался при наличии исходников-то...


Исходники на делфе + куча сторонних компонентов помимо перечисленных выше. Да алгоритмы и знание среды разработки есть, но переносить его в другую платформу - напрасная трата рабочих ресурсов (за которые никто не заплатит), т.к. необходимость в подписании этим алгоритмом есть в ситеме А, в системе Б алгоритмы подписания стандартные CAPICOM и иже с ним. А вот эта штука необходима для вывода пользоавтелю системы Б информации о том, что данный набор реквизитов был подписан пользователем Ивановым в системе А. При этом система А будет выведена из обращения через несколько месяцев
Offline MCR  
#9 Оставлено : 3 апреля 2015 г. 14:18:22(UTC)
MCR

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

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

Сказал(а) «Спасибо»: 57 раз
Поблагодарили: 11 раз в 8 постах
Автор: finex Перейти к цитате
Автор: Андрей * Перейти к цитате

Быстро сдался при наличии исходников-то...


Исходники на делфе + куча сторонних компонентов помимо перечисленных выше. Да алгоритмы и знание среды разработки есть, но переносить его в другую платформу - напрасная трата рабочих ресурсов (за которые никто не заплатит), т.к. необходимость в подписании этим алгоритмом есть в ситеме А, в системе Б алгоритмы подписания стандартные CAPICOM и иже с ним. А вот эта штука необходима для вывода пользоавтелю системы Б информации о том, что данный набор реквизитов был подписан пользователем Ивановым в системе А. При этом система А будет выведена из обращения через несколько месяцев

Не хочется вас расстраивать, но CAPICOM мертв и уже давно.
Offline Андрей Писарев  
#10 Оставлено : 3 апреля 2015 г. 15:12:27(UTC)
Андрей *

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

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

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
Автор: MCR Перейти к цитате
Автор: finex Перейти к цитате
Автор: Андрей * Перейти к цитате

Быстро сдался при наличии исходников-то...


Исходники на делфе + куча сторонних компонентов помимо перечисленных выше. Да алгоритмы и знание среды разработки есть, но переносить его в другую платформу - напрасная трата рабочих ресурсов (за которые никто не заплатит), т.к. необходимость в подписании этим алгоритмом есть в ситеме А, в системе Б алгоритмы подписания стандартные CAPICOM и иже с ним. А вот эта штука необходима для вывода пользоавтелю системы Б информации о том, что данный набор реквизитов был подписан пользователем Ивановым в системе А. При этом система А будет выведена из обращения через несколько месяцев

Не хочется вас расстраивать, но CAPICOM мертв и уже давно.


Но это не мешает "для быстрого старта" использовать и по сей день,
ставить на Windows 8.1\Windows 10 ... d'oh!
требовать для работы с сайтом IE и так далее...

P.S. Некоторые версии ОС тоже "уже не поддерживаются MS, но используются и по сей день".


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