Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
Подписание ГОСТ-2012 через bouncycastle
Статус: Новичок
Группы: Участники
Зарегистрирован: 18.12.2019(UTC) Сообщений: 1 
|
Здравствуйте. Дано: интеграция с oauth есиа госуслуг (https://digital.gov.ru/ru/documents/6186/) на bouncycastle SHA256withRSA. Задача: перевести все это на гост-2012, оставшись на bc (без jcp). Причина: тп минсвязи уточнило, что это по сути не юридически значимый обмен данными и несертифицированное ПО в этом случае допустимо (насколько я понял). Главный вопрос: возможно ли это вообще? В моем представлении органы не будут приходить с проверкой такого механизма, как авторизация через госуслуги. Что сделано: - прочитал https://habr.com/ru/post/440882/, реализовал как написано - сгенерировал ключ через тестовый уц криптопро, купил http://www.lissi.ru/ls_product/utils/p12fromcsp/, получил pfx, пытаюсь его запихать в bc В чем проблемы: - полученный от p12fromcsp файл не открывается вообще ни встроенным keytool, ни реализацией от bc; keytool выдает ошибку parseAlgParameters failed: ObjectIdentifier() -- data isn't an object ID (tag = 48) (потому что не может прочитать aes, как я понимаю), bc выдает PKCS12 key store mac invalid - wrong password or corrupted file. Открывается только через openssl. - с помощью openssl с gostengine удалось перепаковать pfx так, чтобы keytool смог его прочитать - с перепакованным pfx проблема: java keytool и реализация BouncyCastleProvider его считывают, но не могут достать ключ из-за ограничения в 4 байта на der (DER length more than 4 bytes) Что хочу узнать: -как открыть полученный pfx от p12fromcsp? -как справится с размером der? эта ошибка из-за перепаковки, которую я делаю? с такой же ошибкой валится попытка считывания самоподписанного ключа из pfx, сделанного через openssl + gostengine Отредактировано пользователем 19 декабря 2019 г. 9:26:56(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 11.12.2019(UTC) Сообщений: 30
Сказал(а) «Спасибо»: 11 раз
|
Добрый день! Есть ли какое то решение описанной проблемы?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Здравствуйте. У меня схожая задача Через bouncy castle реализовать подпись long type 1... Даже не представляю, как приступить к решению задачи |
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 395 раз в 366 постах
|
В первом посте совершенно неправильный подход с выковыриванием ключа из контейнера КриптоПро. Правильный подход - получить из КриптоПро временный идентификатор ключа, во всех операциях с ключем через КриптоПро можно использовать именно его (этакий фейковый закрытый ключ). Вам абсолютно не нужен реальный ключ в bc, потому что bc будет передавать его обратно криптопровайдеру и тут выяснится что криптопровайдер КриптоПро не принимает реальные ключи извне, зато принимает все еще действующий временный идентификатор ключа, который сам КриптоПро выдал. Если Вы все же захотите использовать реальный ключ, то придется перейти на библиотеку реализующую гост-2012 без участия КриптоПро. Такая библиотека есть на гитхабе, но понятно реализация гост-2012 там совершенно не сертифицирована и не совместима по формату ключа с КриптоПро. Понятно, что обсуждать это на форуме КриптоПро совсем не место. Несовместимость формата кстати тут уже освещали, отличается порядок байт помимо того самого формата pfx. Естественно, чтобы bc смог получить и использовать идентификатор, сначала он должен "видеть" КриптоПро. Насколько помню уже расписывал кому-то как это работает, но...
Как всегда легче задать в духе "что-то сделал по левому руководству и не вышло, ну почему-у-у-у?", чем поискать сразу на этом форуме правильный вариант (если конечно хотите решение на основе Криптопро, а не гитхаба).
Если найду среди своих почти 900 сообщений, то скопирую ссылку сюда. Отредактировано пользователем 12 февраля 2020 г. 13:27:46(UTC)
| Причина: Не указана
|
 1 пользователь поблагодарил two_oceans за этот пост.
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Добрый день. Эта тема еще жива ? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 02.07.2021(UTC) Сообщений: 2  Откуда: Moscow
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
В общем решил проблему сперва некрасиво, а потом тоже некрасиво:
Пришлось дописать несколько методов в BouncyCastle, чтобы метод по формированию cades сообщения мог принимать на вход уже полученную ранее ЭП, а не вычислять эти байтики самостоятельно. Теперь что я, собстевнно говоря, делал (отмечу сразу, что писал все на C# / powershell): сперва я решил в cades записывать выход программы csptest -keyset -sign, которая рассчитывает необработанную ЭП, но парсить строки - это боль. Потом перешел на использование capilite: формирую массив подписанных атрибутов, подписываю его, а потом генерирую cades-bes. Вроде так все как бы работает |
|
|
|
|
Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
Подписание ГОСТ-2012 через bouncycastle
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close