Статус: Участник
Группы: Участники
Зарегистрирован: 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
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Видимо SunMSCAPI поддерживает провайдеры только определенных типов. |
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 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...
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 14.10.2011(UTC) Сообщений: 150  Поблагодарили: 33 раз в 32 постах
|
Разве у JCP нет действующих сертификатов ФСБ?... |
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.11.2011(UTC) Сообщений: 11
|
Yoda написал:Разве у JCP нет действующих сертификатов ФСБ?... Что-то есть... Не знаю подробностей, но есть мнение, что по степени сертифицированности реализации криптоалгоритмов для платформы CSP и JCP отличаются. Т.е. для ФСБ продукт, построенный на основе JCP менее удовлетворителен, чем продукт построенный на базе CSP. Если я ошибаюсь и это только слухи, пусть представители Крипто Про подтвердят. Иначе есть шанс долго делать приложение с СКЗИ JCP, которое потом не пройдёт сертификацию...
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 14.10.2011(UTC) Сообщений: 150  Поблагодарили: 33 раз в 32 постах
|
На сайте КриптоПро представлены все сертификаты по продуктам, выпускаемым компанией, там Вы их можете просмотреть и сравнить. КриптоПро JCP имеет сертификат соответствия требованиям ФСБ к СКЗИ класса КС1 (одно из исполнений КриптоПро CSP 3.6 R2 имеет такой же сертификат). Если заказчика, для которого Вы разрабатываете систему, это устраивает, то никаких проблем с ФСБ быть не может (они же сами и выдали сертификат). |
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 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 ) Как это сделать лучше всего?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 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 ... |
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 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 |
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Дата регистрации:: 02.12.2010(UTC) Сообщений: 4
|
Наша компания использует JAVA + CSP. Для интеграции мы используем JNI для вызова функций MSCAPI 2.0.
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close