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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline arthur78  
#1 Оставлено : 19 декабря 2019 г. 8:44:13(UTC)
arthur78

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

Группы: Участники
Зарегистрирован: 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)  | Причина: Не указана

Offline test.user  
#2 Оставлено : 12 февраля 2020 г. 10:29:42(UTC)
test.user

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

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

Сказал(а) «Спасибо»: 8 раз
Добрый день!
Есть ли какое то решение описанной проблемы?
Offline Анатолий Колкочев  
#3 Оставлено : 12 февраля 2020 г. 10:57:01(UTC)
TolikTipaTut1

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

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

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
Здравствуйте.
У меня схожая задача
Через bouncy castle реализовать подпись long type 1...
Даже не представляю, как приступить к решению задачи
Offline two_oceans  
#4 Оставлено : 12 февраля 2020 г. 12:24:20(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
В первом посте совершенно неправильный подход с выковыриванием ключа из контейнера КриптоПро.

Правильный подход - получить из КриптоПро временный идентификатор ключа, во всех операциях с ключем через КриптоПро можно использовать именно его (этакий фейковый закрытый ключ). Вам абсолютно не нужен реальный ключ в bc, потому что bc будет передавать его обратно криптопровайдеру и тут выяснится что криптопровайдер КриптоПро не принимает реальные ключи извне, зато принимает все еще действующий временный идентификатор ключа, который сам КриптоПро выдал. Если Вы все же захотите использовать реальный ключ, то придется перейти на библиотеку реализующую гост-2012 без участия КриптоПро. Такая библиотека есть на гитхабе, но понятно реализация гост-2012 там совершенно не сертифицирована и не совместима по формату ключа с КриптоПро. Понятно, что обсуждать это на форуме КриптоПро совсем не место. Несовместимость формата кстати тут уже освещали, отличается порядок байт помимо того самого формата pfx.

Естественно, чтобы bc смог получить и использовать идентификатор, сначала он должен "видеть" КриптоПро. Насколько помню уже расписывал кому-то как это работает, но...
Если найду среди своих почти 900 сообщений, то скопирую ссылку сюда.

Отредактировано пользователем 12 февраля 2020 г. 13:27:46(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил two_oceans за этот пост.
test.user оставлено 12.02.2020(UTC)
Offline Анатолий Колкочев  
#5 Оставлено : 21 июня 2020 г. 13:21:13(UTC)
TolikTipaTut1

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

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

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
Добрый день.
Эта тема еще жива ?
Offline Arsen1  
#6 Оставлено : 18 мая 2022 г. 11:04:12(UTC)
Arsen1

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

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

Offline TolikTipaTut1  
#7 Оставлено : 19 декабря 2022 г. 16:26:46(UTC)
TolikTipaTut1

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

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

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
В общем решил проблему сперва некрасиво, а потом тоже некрасиво:

Пришлось дописать несколько методов в BouncyCastle, чтобы метод по формированию cades сообщения мог принимать на вход уже полученную ранее ЭП, а не вычислять эти байтики самостоятельно. Теперь что я, собстевнно говоря, делал (отмечу сразу, что писал все на C# / powershell):
сперва я решил в cades записывать выход программы csptest -keyset -sign, которая рассчитывает необработанную ЭП, но парсить строки - это боль.
Потом перешел на использование capilite: формирую массив подписанных атрибутов, подписываю его, а потом генерирую cades-bes. Вроде так все как бы работает
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.