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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline tikani93  
#1 Оставлено : 10 декабря 2022 г. 20:02:21(UTC)
tikani93

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

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

Здравствуйте!
Заранее прошу прощения, если вопросы покажутся глупыми, есть только опыт использования стандартных Java JDK SSL/TLS средств и криптографии, никогда раньше не сталкивался с КриптоПро и ГОСТ шифрованием.

В общем, есть задача - реализовать кастомный интеграционный сервис с ИС МДЛП API на Java 11 платформе. Предварительный гуглёж показал, что ИС МЛДП для доступа к своему REST API требует HTTPS на гостовском шифре, а также снабжение отправляемой "полезной нагрузки" откреплённой цифровой подписью по сертификату заказчика.

Дальнейшие поиски показали, что вроде бы для решения вышеописанной задачи подойдет КриптоПРО JCP. Но дальше не совсем понимаю, что нужно делать. В наличии:
1) Скаченный дистрибутив JCP-2.0.41940-А
2) Установленный OpenJDK 11 (Eclipse Temurin)
3) Эксплуатироваться все будет на Linux (Debian 11 stable)
4) PFX от начальства (по описанию - это сделанный под Windows экспорт средствами КриптоПро CSP информации с USB-ключа).

Собственно, возникли следующие вопросы:
1) В JCP дистрибутиве масса JAR-ников, в документации по соседству сказано, что нужно просто добавить в classpath, но не понимаю, какие JAR нужны, а какие нет, для подключения по ГОСТ HTTPS и формирования открепленной цифровой подписи. Не хочется добавлять лишнего.
2) Для работы с обычным HTTPS (без mutual TLS) средствами стандартного OpenJDK достаточно передать путь до соответствующего PFX или JKS с корневыми и промежуточными сертификами в SSLContext.truststore, передать инстанс SSL контекста в нужный HTTP клиент и можно подключаться. Правильно ли понимаю, что в случае КриптоПро JCP тоже будут аналогичные действия, т.к. JCP является прозрачным криптопровайдером, реализующим стандартные интерфейсы JSSE, а вся "магия" будет "под капотом"? Ну, т.е., в инструкции по ИС МДЛП API от "Честного знака" указан набор корневых и промежуточных сертификатов, я их могу сложить в один JKS через jdk keytool например и передать как truststore и всё должно заработать с правильной версией TLS и chipher suite?
3) Не очень понятно, куда прописать путь до PFX от начальства для получения возможности формирования открепленной подписи, в документации чего-то не нашел((
4) Можно ли интеграционный микросервис собирать как fat jar или будут какие-то проблемы с тем, что JCP джарники подписаны?
5) Нужна ли лицензия на использование ГОСТ TLS и формирование откреплённой ЭП на стороне клиента? Вроде поиск выдает, что у вас обязательно требуется только оплачиваемая серверная лицензия.

Offline Евгений Афанасьев  
#2 Оставлено : 12 декабря 2022 г. 14:39:22(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Здравствуйте.
Автор: tikani93 Перейти к цитате

1) В JCP дистрибутиве масса JAR-ников, в документации по соседству сказано, что нужно просто добавить в classpath, но не понимаю, какие JAR нужны, а какие нет, для подключения по ГОСТ HTTPS и формирования открепленной цифровой подписи. Не хочется добавлять лишнего.
2) Для работы с обычным HTTPS (без mutual TLS) средствами стандартного OpenJDK достаточно передать путь до соответствующего PFX или JKS с корневыми и промежуточными сертификами в SSLContext.truststore, передать инстанс SSL контекста в нужный HTTP клиент и можно подключаться. Правильно ли понимаю, что в случае КриптоПро JCP тоже будут аналогичные действия, т.к. JCP является прозрачным криптопровайдером, реализующим стандартные интерфейсы JSSE, а вся "магия" будет "под капотом"? Ну, т.е., в инструкции по ИС МДЛП API от "Честного знака" указан набор корневых и промежуточных сертификатов, я их могу сложить в один JKS через jdk keytool например и передать как truststore и всё должно заработать с правильной версией TLS и chipher suite?
3) Не очень понятно, куда прописать путь до PFX от начальства для получения возможности формирования открепленной подписи, в документации чего-то не нашел((
4) Можно ли интеграционный микросервис собирать как fat jar или будут какие-то проблемы с тем, что JCP джарники подписаны?
5) Нужна ли лицензия на использование ГОСТ TLS и формирование откреплённой ЭП на стороне клиента? Вроде поиск выдает, что у вас обязательно требуется только оплачиваемая серверная лицензия.

1. Для создания/проверки CMS подписи требуются: asn1rt, ASN1P, JCP, JCryptoP, JCPRevCheck, JCPRevTools, JCPRequest. Остальное уже зависит от формата подписи: CAdES - AdES-core, CAdES; XAdES - AdES-core, CAdES, XAdES, XMLDSigRI, JCPxml; XML - XMLDSigRI, JCPxml и т.д.
2. JCP не умеет работать с PFX, PFX нужно сконвертировать в понятный формат HDImageStore (папка *.000 с файлами *.key на диске), в полученном ключевом контейнере должен быть сертификат (иногда его нет при экспорте из PFX). Далее ключевой контейнер формата HDImageStore можно будет использовать. Также должно быть хранилище корневых сертификатов другой стороны (серверов) произвольного формата (можно JKS, CertStore). Об этом есть в документации.
3. См. 2.
4. По идее, можно, посмотрите https://github.com/afev/fat-jar-with-jcp
5. Да, лицензия нужна для JCP. Тип лицензии зависит от ОС (см. документацию). Для JTLS лицензия не требуется, если у вас клиентское подключение (вы выступаете в роли клиента) к какому-то удаленному серверу.


Offline lexZ86  
#3 Оставлено : 27 марта 2024 г. 13:05:30(UTC)
lexZ86

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

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

Сказал(а) «Спасибо»: 2 раз
Много где на форуме написано по поводу лицензий. Для исключения двоякого толкования, подскажите. Есть сервер с лицензиями JCSP, CSP, JTLS. Для двусторонней аутентификации на стороне клиента все же нужны какие-либо лицензии или нет?
Offline Евгений Афанасьев  
#4 Оставлено : 27 марта 2024 г. 15:12:00(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Из клиента при двусторонней аутентификации требуется лицензия (северная или клиентская - зависит от ОС) на jcp, если используется jcp.
Если на клиенте при двусторонней аутентификации используется jcsp одной из последних версий, то лицензия нужна на csp, а на jcsp не требуется.
thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
lexZ86 оставлено 27.03.2024(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.