Статус: Новичок
Группы: Участники
Зарегистрирован: 09.11.2016(UTC) Сообщений: 2
Сказал(а) «Спасибо»: 1 раз
|
Добрый день. Работаю над клиентом для СМЭВ (в частности АСУР НСИ) и подобных систем. В требованиях стоит формирование хеша по ГОСТ Р 34.11-94. Подпись по ГОСТ Р 34.10-2001. Ключ экспортирован утилитой P12FromGostCSP. клиент для Windows на С++
Собрал OpenSSL 1.0.2j + gost engine в static lib. openssl.cnf настроен по дефолту, как в README.gost В качестве soap фреймворка использую gSoap
На выходе получаю сформированных soap пакет с подписями и хешем сформированными по правилам, описанных в руководствах. Хеш пересчитываю "вручную" через консольную утилиту openSSL - сходится Проверка подписи открытым ключом также проходит.
Со стороны сервиса приходит ответ, "Некорректная цифровая подпись, или цифровая подпись отсутствует (Подпись №1 не прошла проверку)". При этом, клиент на WCF + криптоПРО отрабатывает отлично. Техподдержка молчит.
Был бы благодарен за наводку в какую сторону копать.
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 15.03.2012(UTC) Сообщений: 9
Сказал(а) «Спасибо»: 1 раз
|
День добрый. Решаю такую же задачу, тоже на gSoap, но под Linux. Правда, я на более раннем этапе. В Вашем случае я бы начал с того, что Wireshark-ом посмотрел бы траффик, что именно уходит на сервер в одном и другом случае.
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 09.11.2016(UTC) Сообщений: 2
Сказал(а) «Спасибо»: 1 раз
|
Добрый. Без wireShark не удалось бы дойти до текущего результата. SOAP-пакет формируется правильно, проблема именно в алгоритмах формирования подписи и хеша.
На данный момент, я решил прекратить разработку текущей версии сервиса и перейти к "рекомендуемым" средствам (С# + КриптоПРО) Остановился из-за того, что не смог привести к единообразию результаты хеш-функций от криптоПРО (генерируемые WCF) и хеш от openSSL. Максимум к чему удалось придти - одинаковый хеш от openssl dgst -md_gost94 и утилиты cpverify.
Не сразу обратил внимание, в README.GOST от openssl указано, что по ГОСТу хеш представляется в little-endian. OpenSSL дает лишь дамп хеша, по идее его нужно преобразовать, тогда хеши от утилиты cpverify и openssl будут идентичны. Но хеш, получаемый от WCF отличается от генерируемого openSSL. И соответсвенно, ЭП от OpenSSL не проходит проверку средставми КриптоПРО и ЭП от криптоПРО не проходит проверку от OpenSSL. Вот на этом этапе я остановился.
Предлагаю обменяться контактами, мне в любом случае интересен этот вопрос. При наличии времени, хотел бы заняться его реализацией.
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close