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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline vlntn  
#1 Оставлено : 22 ноября 2011 г. 22:06:18(UTC)
vlntn

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

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

Добрый день,
У меня есть задача обеспечить интеграцию КриптоПро в проект на Java. Суть в следующем: в браузере клиента должна подписываться любая Web форма. На server side (java application server) подпись формы проверяется (а также CRL, сертификат, и пр.). Я решил данную задачу используя Крипто Про JCP. Всё работает.
Однако, заказчик имеет требование использовать сертифицированную криптографическую алгоритмику только из CSP. Таким образом, реализация JCP не подходит.

Я вижу решение использовать провайдер SunMSCAPI, который предоставляет доступ на платформе Java SE 1.6+ к Microsoft Crypto API. По документации, Крипто Про вроде как является одним из провайдеров в архитектуре Microsoft Crypto API и, следовательно, его функции должны быть доступны через данное API.

Однако на практике (см. ниже) никакая функциональность КриптоПро не видна посредством SunMSCAPI. В чём ошибка?
Я некорректно вызываю провайдера, или нужна дополнительная настройка в Java или Крипто Про некорректно встроен в архитектуру win capi?


Код:
try {
Provider p = Security.getProvider("SunMSCAPI");
System.out.println(p.getServices());
Signature signatureAlgorithm = Signature.getInstance("GOST3411withGOST3410EL", "SunMSCAPI");
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
Результат:
[SunMSCAPI: SecureRandom.Windows-PRNG -> sun.security.mscapi.PRNG
, SunMSCAPI: KeyStore.Windows-MY -> sun.security.mscapi.KeyStore$MY
, SunMSCAPI: KeyStore.Windows-ROOT -> sun.security.mscapi.KeyStore$ROOT
, SunMSCAPI: Signature.SHA1withRSA -> sun.security.mscapi.RSASignature$SHA1
...... (пропустил для сокращения)
attributes: {SupportedKeyClasses=sun.security.mscapi.Key, SupportedPaddings=PKCS1PADDING, SupportedModes=ECB}
, SunMSCAPI: Cipher.RSA/ECB/PKCS1Padding -> sun.security.mscapi.RSACipher
]
no such algorithm: GOST3411withGOST3410EL for provider SunMSCAPI
Offline Kirill Sobolev  
#2 Оставлено : 23 ноября 2011 г. 16:55:31(UTC)
Кирилл Соболев

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

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,733
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Видимо SunMSCAPI поддерживает провайдеры только определенных типов.
Техническую поддержку оказываем тут
Наша база знаний
Offline vlntn  
#3 Оставлено : 23 ноября 2011 г. 17:19:01(UTC)
vlntn

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

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

Kirill Sobolev написал:
Видимо SunMSCAPI поддерживает провайдеры только определенных типов.


Скверно ) Получается, что у Крипто Про CSP не очень всё хорошо с интеграцией в приложения Java. JCP имеет проблемы с сертификацией и не удовлетворяет заказчиков из госведомств, а сертифицированная платформа CSP поставляется без интерфейса Java. Интегрировать можно, но сложно и неприятно. А где легко, там за деньги.

Вот небольшой список возможностей для интеграции CSP в Java среду:
1 Использовать ActiveX компонент CAPICOM и создать Java wrapper к нему (com4j) - ресурсоёмко, CAPICOM уходит в прошлое
2 Использовать интерфейс Win Crypto API и создать Java wrapper к нему (JNA) - ресурсоёмко, надо изучать незнакомое API
3 Библиотека Trust Java - платная
4 Провайдер в JCA Java 1.6 SE SunMScapi - наиболее удобный вариант, но по загадочной причине не подхватывает Крипто Про (хотя по здравому смылу должна бы)
4 Интерфейс командной строки к КриптоПро cryptocp.exe - очень слабосвязанный вариант интеграции. Но даже здесь Крипто Про умудряется испросить лицензию за 450 руб )
5 Использовать на стороне клиента и сервера средства создания и проверки ЭЦП на других языках (без Java) - это неудобно для проекта. Большинство корпоративных проектов идёт на JEE...

Может быть кто-нибудь подскажет как ещё можно быстро интегрировать Крипто Про CSP в среду Java...

Offline Георгий Садофьев  
#4 Оставлено : 23 ноября 2011 г. 17:34:28(UTC)
Георгий Садофьев

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

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

Поблагодарили: 33 раз в 32 постах
Разве у JCP нет действующих сертификатов ФСБ?...
Техническую поддержку оказываем тут
Наша база знаний
Offline vlntn  
#5 Оставлено : 23 ноября 2011 г. 17:55:42(UTC)
vlntn

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

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

Yoda написал:
Разве у JCP нет действующих сертификатов ФСБ?...


Что-то есть... Не знаю подробностей, но есть мнение, что по степени сертифицированности реализации криптоалгоритмов для платформы CSP и JCP отличаются. Т.е. для ФСБ продукт, построенный на основе JCP менее удовлетворителен, чем продукт построенный на базе CSP. Если я ошибаюсь и это только слухи, пусть представители Крипто Про подтвердят.
Иначе есть шанс долго делать приложение с СКЗИ JCP, которое потом не пройдёт сертификацию...

Offline Георгий Садофьев  
#6 Оставлено : 23 ноября 2011 г. 18:52:25(UTC)
Георгий Садофьев

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

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

Поблагодарили: 33 раз в 32 постах
На сайте КриптоПро представлены все сертификаты по продуктам, выпускаемым компанией, там Вы их можете просмотреть и сравнить.
КриптоПро JCP имеет сертификат соответствия требованиям ФСБ к СКЗИ класса КС1 (одно из исполнений КриптоПро CSP 3.6 R2 имеет такой же сертификат). Если заказчика, для которого Вы разрабатываете систему, это устраивает, то никаких проблем с ФСБ быть не может (они же сами и выдали сертификат).
Техническую поддержку оказываем тут
Наша база знаний
Offline vlntn  
#7 Оставлено : 24 ноября 2011 г. 17:58:25(UTC)
vlntn

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

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

Yoda написал:
На сайте КриптоПро представлены все сертификаты по продуктам, выпускаемым компанией, там Вы их можете просмотреть и сравнить.
КриптоПро JCP имеет сертификат соответствия требованиям ФСБ к СКЗИ класса КС1 (одно из исполнений КриптоПро CSP 3.6 R2 имеет такой же сертификат). Если заказчика, для которого Вы разрабатываете систему, это устраивает, то никаких проблем с ФСБ быть не может (они же сами и выдали сертификат).


Да, вроде как сертификация идентична. Однако заказчик уже имеет купленные лицензии CSP и переходить на JCP у него нет возможности. Дорого (рабочее место около 1000 рублей, а их тысячи и сервер от 20 000 рублей) и избыточно.

Таким образом, первоначальный вопрос остаётся. Как вообще можно интегрировать Java c CSP???

Что я имею на сегодняшний день -
1) Интеграция через SunMSCAPI вопреки ожиданиям и здравому смыслу не работает. А это был бы самый изящный вариант... Наверное, поскольку он бесплатен, то Крипто Про не разделяет моего энтузиазма )
2) Интеграция через утилиту crypcp.exe... Я ожидал, что это будет простой вариант. Однако утилита на поверку выглядит крайне мутной и недоделанной. По инструкции и сходу не работает. Анализ форума показывает, что это её обычное поведение, а тратить время на магию угадывания настроек при скверной документации не хочется. Таким образом, это вариант интеграции не подойдёт.

Пробуем CAPICOM...

А вообще, кто-то имеет успешный опыт интеграции Крипто Про CSP в проект Java? Ну кроме Trust Java ) Как это сделать лучше всего?

Online Андрей Писарев  
#8 Оставлено : 24 ноября 2011 г. 18:04:31(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,110
Мужчина
Российская Федерация

Сказал «Спасибо»: 615 раз
Поблагодарили: 2380 раз в 1872 постах
vlntn написал:
Yoda написал:
На сайте КриптоПро представлены все сертификаты по продуктам, выпускаемым компанией, там Вы их можете просмотреть и сравнить.
КриптоПро JCP имеет сертификат соответствия требованиям ФСБ к СКЗИ класса КС1 (одно из исполнений КриптоПро CSP 3.6 R2 имеет такой же сертификат). Если заказчика, для которого Вы разрабатываете систему, это устраивает, то никаких проблем с ФСБ быть не может (они же сами и выдали сертификат).


Да, вроде как сертификация идентична. Однако заказчик уже имеет купленные лицензии CSP и переходить на JCP у него нет возможности. Дорого (рабочее место около 1000 рублей, а их тысячи и сервер от 20 000 рублей) и избыточно.

Таким образом, первоначальный вопрос остаётся. Как вообще можно интегрировать Java c CSP???

Что я имею на сегодняшний день -
1) Интеграция через SunMSCAPI вопреки ожиданиям и здравому смыслу не работает. А это был бы самый изящный вариант... Наверное, поскольку он бесплатен, то Крипто Про не разделяет моего энтузиазма )
2) Интеграция через утилиту crypcp.exe... Я ожидал, что это будет простой вариант. Однако утилита на поверку выглядит крайне мутной и недоделанной. По инструкции и сходу не работает. Анализ форума показывает, что это её обычное поведение, а тратить время на магию угадывания настроек при скверной документации не хочется. Таким образом, это вариант интеграции не подойдёт.

Пробуем CAPICOM...

А вообще, кто-то имеет успешный опыт интеграции Крипто Про CSP в проект Java? Ну кроме Trust Java ) Как это сделать лучше всего?




Может лучше сразу на MS CryptoAPI? Вместо Capicom ...
Техническую поддержку оказываем тут
Наша база знаний
Offline Kirill Sobolev  
#9 Оставлено : 24 ноября 2011 г. 20:00:32(UTC)
Кирилл Соболев

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

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,733
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Цитата:
Провайдер в JCA Java 1.6 SE SunMScapi - наиболее удобный вариант, но по загадочной причине не подхватывает Крипто Про (хотя по здравому смылу должна бы)
...
Интеграция через SunMSCAPI вопреки ожиданиям и здравому смыслу не работает. А это был бы самый изящный вариант... Наверное, поскольку он бесплатен, то Крипто Про не разделяет моего энтузиазма )

Все проще - провайдер SunMSCAPI ничего не знает про алгоритм GOST3411withGOST3410EL (что, в приницпе, неудивительно).
Поддерживаемые им алгоритмы подписи, судя по http://java.sun.com/deve...lArticles/J2SE/security/
Цитата:
SHA1withRSA
MD5withRSA
MD2withRSA
Техническую поддержку оказываем тут
Наша база знаний
Offline alekseys  
#10 Оставлено : 23 декабря 2011 г. 17:42:40(UTC)
alekseys

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

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

Наша компания использует JAVA + CSP. Для интеграции мы используем JNI для вызова функций MSCAPI 2.0.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.