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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline vovano2003  
#1 Оставлено : 16 мая 2019 г. 14:41:04(UTC)
vovano2003

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

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

Сказал(а) «Спасибо»: 3 раз
Добрый день. Осуществляем подпись через JCP. Параметры из закрытого ключа из JCP Панели:
*** Signature key***
GOST R 34.10-2012 512 bits

* Signature parameter set: GOST R 34.10-2012 (512), default parameters
* Digest parameter set: GOST R 34.11-2012 (512) digest
* Encryption parameter set: GOST 28147-89, TC 26 encryption parameters Z
* Private key usage period: till 14-06-2020 12:59:36

При самостоятельной проверке своей же подписи через JCP все проверяется (и через отдельный выгруженный сертификат и через HDStore). Передаем контрагенту подпись и сертификат открытого ключа (делаем экспорт из JCP панель). У них проверить не получается (используют CSP) При подписи пробовали использовать следующий алгоритмы:
Signature.getInstance("GOST3411_2012_512withGOST3410_2012_512")
и также вариант по документации обеспечивающий совместимость с CSP
Signature.getInstance("CryptoProSignature_2012_512")

Проверка через CSP не работает, через JCP работает. Заранее благодарны за любую помощь!

PS Аналогично не можем проверить подпись проставленную в CSP от контрагента (используем также механизм JCP()

Отредактировано пользователем 16 мая 2019 г. 17:18:13(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#2 Оставлено : 16 мая 2019 г. 17:38:39(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,924
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 690 раз в 651 постах
Здравствуйте.
Подписи бывают разного формата: plain (64/128 байт), CMS, CAdES и др. Какая ваша?
Если используется Signature.getInstance(), то создается plain.
thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
vovano2003 оставлено 16.05.2019(UTC)
Offline vovano2003  
#3 Оставлено : 16 мая 2019 г. 18:01:22(UTC)
vovano2003

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Евгений Афанасьев Перейти к цитате
Здравствуйте.
Подписи бывают разного формата: plain (64/128 байт), CMS, CAdES и др. Какая ваша?
Если используется Signature.getInstance(), то создается plain.


Делается судя по всему Plain, вот пример кода, который мы используем:

Signature sig = Signature.getInstance("CryptoProSignature_2012_512");
sig.initSign(nkp.getKeyPair().getPrivate());
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
while (body.read(buf)!=-1) {
bos.write(buf);
}
bos.flush();
byte[] bodyAsArray = bos.toByteArray();
for (byte b:bodyAsArray) {
sig.update(b);
}
return sig.sign();

Мы посмотрели, размер подписи 128....
А как сделать чтобы получилось Plain 64? Может это нам поможет?

Отредактировано пользователем 16 мая 2019 г. 18:22:34(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#4 Оставлено : 16 мая 2019 г. 18:25:22(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,924
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 690 раз в 651 постах
Длина зависит от алгоритма (ГОСТ 2012 256 и ГОСТ 2012 512), в вашем случае, видимо, 128 байт. Как csp проверяет подпись? Помимо подписи передается и сертификат?
thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
vovano2003 оставлено 16.05.2019(UTC)
Offline vovano2003  
#5 Оставлено : 16 мая 2019 г. 18:48:37(UTC)
vovano2003

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Евгений Афанасьев Перейти к цитате
Длина зависит от алгоритма (ГОСТ 2012 256 и ГОСТ 2012 512), в вашем случае, видимо, 128 байт. Как csp проверяет подпись? Помимо подписи передается и сертификат?


Да, сетфикат открытого ключа передаем тому кто проверяет нашу подпись (как без этого). Выгружаем его (сертифкат) из JCP Panel, нажимимаем View на сертфикате, переходим на вкладку Details, нажимаем кнопку Export, указываем имя файла. Этим же сертификатом проверяем сами свою подпись (как писал ранее проверка проходит без проблем)
Вот дополнительные данные по нашей системе:
OS: windows 7 64 bit
Java: jdk1.8.0_201 (с установленным JCP 2.0)

Как CSP проверяет подпись сказать не можем, т.к данное приложение не у нас. Те кто проверяют нашу подпись, предполагают, что есть какая то несовместимость CSP и JCP. И мы попробовали перейти на CryptoProSignature_2012_512, но это не помогло.

PS Нас просят прислать хэш чтобы сверить, но мы при подписи не создаем хэш в ручную. Он где-то внутри реализации JCP сам создается. Есть какая то возможность посмотреть чему равен хэш данных которые подписываются??? (только нужна гарантия что именно этот хэш используется внутри JCP)

Отредактировано пользователем 16 мая 2019 г. 18:59:51(UTC)  | Причина: Указана версия JCP

Offline Евгений Афанасьев  
#6 Оставлено : 16 мая 2019 г. 19:37:07(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,924
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 690 раз в 651 постах
Если только отдельно захешировать. Вы уверены, что передавать надо plain подпись, а не cms? Та сторона может прислать вам образец того, что они ожидают получить от вас?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.