Шифропро jtls

Шифропро jtls Электронная цифровая подпись

Реализация JavaTLS совместима с КриптоПро CSP версии 3. 0 и выше, и позволяет использовать защиту данных передаваемых по сети в серверах приложений, таких как:

  • TomCat;
  • IBM WebSphere Application Server (версии 8.5);
  • Glassfish (версии 4, payara);
  • Jetty (версии 9.3.1);
  • JBoss (версии 6.1.0).

Шифропро jtls

Содержание
  1. JavaTLS (JTLS)
  2. Glassfish-gost-tls
  3. Как вызывается Revocation Provider
  4. Как работает Revocation Provider
  5. Назначение КриптоПро CSP
  6. Поддерживаемые алгоритмы
  7. Поддерживаемые технологии хранения ключей
  8. Носители с неизвлекаемыми ключами и защищенным обменом сообщениями
  9. Классические пассивные USB-токены и смарт-карты
  10. Инструменты КриптоПро
  11. Поддерживаемое программное обеспечение
  12. Интеграция с платформой КриптоПро
  13. Операционные системы и аппаратные платформы
  14. Интерфейсы для встраивания
  15. Производительность на любой вкус
  16. Регулирующие документы
  17. Настройка и запуск Java Gateway, создание проекций классов
  18. Тестирование веб-сервиса
  19. Дополнительные библиотеки Java
  20. Формирование ЭЦП для исходящих SOAP-сообщений веб-сервиса
  21. Размещение секретного ключа и сертификата на виртуальной дискете на сервере системы
  22. Проверка ЭЦП во входящих SOAP-сообщениях
  23. Веб-сервисы с поддержкой ЭЦП на базе криптографии ГОСТ

JavaTLS (JTLS)

Реализация JavaTLS совместима с КриптоПро CSP версии 4. 0 и выше, и позволяет использовать защиту данных передаваемых по сети в серверах приложений, таких как:

В мобильной операционной системе Аврора реализована поддержка российских криптографических алгоритмов.

В дополнение к встроенной в ОС поддержке протокола ГОСТ TLS, появилась возможность использования электронной подписи в браузере благодаря предустановленному расширению, которое поддерживает работу с комплектом СКЗИ КриптоПро CSP 5. 0 R3. Для использования новых возможностей пользователям предыдущих версий требуется обновить ОС до релиза 4.

Пользователи ОС Аврора могут подписывать документы разных форматов при работе с порталами и системами электронного документооборота непосредственно в браузере на мобильном устройстве, храня закрытый ключ в защищенном хранилище КриптоПро CSP на устройстве или на внешнем токене. Это позволяет использовать привычные пользователям ПК сценарии работы с электронной подписью на корпоративных доверенных мобильных устройствах.

Glassfish-gost-tls

  • Задать конфигурацию в файле jsse.properties. Пояснения: protocol=GostTLS // не трогаем
    protocols=GostTLS // не трогаем
    algorithm=GostX509 // не трогаем
    ciphers=TLS_CIPHER_2001 // не трогаем

    keyAlias=localhost // псевдоним ключа/сертификата
    keypass=123456 // пароль к кейстору
    keystorePass=123456 // то же самое, что и предыдущее
    keystore=L:\.keystore // пусть к кейстору. Ображаем внимание на слэши для Windows.
    keystoreType=FloppyStore //либо HDImageStore

    clientauth=true // true – для двусторонней аутентификации
    truststorePass=123456 // пароль к траст-стору
    truststore=L:\.keystore //пусть к траст-сторe. Также обращаем внимание на слэши.

    sigalg=GOST3411withGOST3410EL //не трогаем, даже не уверен, что атрибут используется
    keyalg=GOST3410 //не трогаем, даже не уверен, что атрибут используется

  • Собрать jar и положить его в папку lib на сервере.

Где %CONFIG_NAME% – имя конфига, а %LISTENER_NAME% – имя листенера.

Либо то же самое,но в файле domain. xml (конфигурация домена Glassfish). В итоге в файле domain. xml будет что-то такое:

Для ОС Windows везде обращаем внимение на слэши в путях к файлам.

Коммерческой организации, Государственного учреждения

Право на использование Базовая КриптоПро JavaTLS версии 2. 0 на одном сервере

Библиотека Trusted Java – это набор криптоалгоритмов, реализованных в соответствии с требованиями архитектур JSSE и JCE. Trusted Java реализует в Java-приложениях сертифицированные криптографические алгоритмы, предоставляемые криптопровайдером КриптоПро CSP.

При работе с банковскими клиент-серверными системами, защищенными электронными торговыми площадками и другими бизнес-приложениями, написанными на Java, требуется поддержка шифрования, электронной цифровой подписи, строгой аутентификации в соответствии с положениями российского законодательства. Библиотека Trusted Java позволяет решать вопросы информационной безопасности и юридической значимости электронного документооборота.

Библиотека Trusted Java представляет собой набор криптоалгоритмов, реализованных в соответствии с требованиями архитектур JSSE и JCE.

Провайдер JCE является криптографическим расширением Trusted Java и позволяет реализовать российские алгоритмы криптографических преобразований для обеспечения работы с сертификатами, создания и проверки корректности электронной цифровой подписи и шифрования данных.

ПО Trusted Java обеспечивает возможность поддержки российской криптографии в соответствии с положениями российского законодательства. Для авторизации и обеспечения юридической значимости электронных документов при обмене ими между пользователями используются функции формирования и проверки электронно-цифровой подписи, для обеспечения конфиденциальности информации и контроля ее целостности – шифрование и имитозащита.

Trusted Java позволяет работать с сертификатами и запросами на сертификат, создавать и проверять корректность электронной цифровой подписи данных, шифровать данные, загружать Java-апплеты по протоколу TLS на криптографических алгоритмах ГОСТ.

Что нового в версии

  • Поддержаны шифро-сюиты (CipherSuite) 0×81 (TLS_GOSTR341001_WITH_28147_CNT_IMIT) (ранее поддерживалась только 0×31)
  • При использовании исправленной CMS-библиотеки от BounceCastle достигнута кросс-совместимость с программой «КриптоАРМ» в плане создания, проверки ЭЦП и шифрования данных:
    – ЭЦП, созданная с помощью «КриптоАРМ», будет успешно проверена в Javа. И наоборот: документы, подписанные в Java, можно успешно проверить «КриптоАРМ»ом.
    – это же справедливо для операций шифрования и расшифрования данных.
    – стал доступен формат заверяющей подписи: теперь возможно создавать, проверять и обрабатывать заверяющие подписи.
    – дополнительно появляется возможность использования и зарубежной криптографии.
  • Теперь ГОСТ-криптография доступна при использовании CMS-библиотеки и оригинального JCE-провайдера от BounceCastle в связке с JCE-провайдером Trusted Java
  • Усовершенствованы механизмы аутентификации сервера и клиента
  • Улучшена работа с SSL-сокетами

У нас вы можете купить лицензию Базовая КриптоПро JavaTLS версии 2. 0 на одном сервере артикул 75-32-141-CRYPTOPRO-SL по выгодной цене: стоимость лицензии 4500 руб. Наши менеджеры проконсультируют по продукту КриптоПро JavaTLS 2. 0 (устаревшая) для покупки в Москве, Санкт-Петербурге и других городах России. Мы продаем только лицензионное ПО КриптоПро и многих других мировых производителей.

Евгений Афанасьев
Оставлено
:
8 сентября 2022 г. 21:23:45(UTC)

Здравствуйте. Убедитесь, что перед использованием JTLS добавляется в список провайдеров: Security. addProvider( new Provider() ). 1 пользователь поблагодарил Евгений Афанасьев за этот пост.

Евгений Афанасьев
Оставлено
:
13 сентября 2022 г. 14:18:57(UTC)

Все посмотрел, все сделал идентично, все равно валится ошибкаЦитата:java. security. NoSuchAlgorithmException: Error constructing implementation (algorithm: GostTLS, provider: JTLS, class: ru. CryptoPro. ssl. android. SSLContextImpl)PS На 7-9 андроиде все работает хорошоПриведите лог из adb logcat. 1 пользователь поблагодарил Евгений Афанасьев за этот пост.

Евгений Афанасьев
Оставлено
:
13 сентября 2022 г. 14:57:46(UTC)

 1 пользователь поблагодарил Евгений Афанасьев за этот пост.

Евгений Афанасьев
Оставлено
:
13 сентября 2022 г. 15:09:31(UTC)

Так как в логеКод:
2022-09-13 14:33:35. 957 3904-3904/ru. krista. piao V/ACSP: CSP not found. 2022-09-13 14:33:35. 957 3904-3904/ru. krista. piao E/ACSP: Error: no CSP found. Library path is null. 2022-09-13 14:33:35. 957 3904-3904/ru. krista. piao W/JCP: ru. CryptoPro. JCSP. CSPConfig. internalInit :: CSP native library path is null. CSPConfig. init должен был вернуть ошибку CSPConfig. CSP_INIT_CONTEXT (1). После такой ошибки что-то делать не имеет смысла – работать без провайдера не будет. Далее в логе продолжается работа, делается попытка создать SSLContext, что привело к NPE – такое возможно, если CSPConfig. init не выполнится, а так и есть. 1 пользователь поблагодарил Евгений Афанасьев за этот пост.

В процессе управления ключами УЦ имеет возможность отзыва выпущенных им сертификатов, что необходимо для досрочного прекращения их действия, например, в случае компрометации ключа. Процедура проверки ЭЦП предусматривает помимо подтверждения ее математической корректности еще и построение, и проверку цепочки сертификатов до доверенного УЦ, а также проверку статусов сертификатов в цепочке.

Таким образом, проверка статусов сертификатов важна для приложений, использующих ИОК, поскольку, например, принятие к обработке подписанного ЭЦП документа, соответствующий сертификат ключа подписи которого аннулирован, может быть впоследствии оспорено и привести к финансовым потерям.

В ОС Microsoft Windows встроена поддержка технологии ИОК. Многие приложения, работающие под управлением этих ОС, используют интерфейс CryptoAPI для осуществления функций криптографической защиты информации. Функции CryptoAPI используют, например, следующие приложения: Internet Explorer, Outlook Express, Outlook, Internet Information Server и др.

По умолчанию CryptoAPI осуществляет проверку статусов сертификатов с использованием СОС (CRL). СОС представляет собой список аннулированных или приостановленных сертификатов, издаваемый периодически – например, раз в неделю. СОС не отражает информацию о статусах в реальном времени, а также имеет ряд других недостатков, которых лишён протокол OCSP – протокол получения статуса сертификата в реальном времени.

Архитектура CryptoAPI предоставляет возможность подключения внешнего модуля проверки статуса сертификата – Revocation Provider.

КриптоПро Revocation Provider предназначен для встраивания проверки статусов сертификатов открытых ключей в режиме реального времени по протоколу OCSP в ОС Windows.

КриптоПро Revocation Provider, будучи установлен в системе, встраивается в CryptoAPI и тем самым обеспечивает проверку статусов сертификатов во всех приложениях по протоколу OCSP, причём менять что-либо в самих приложениях не требуется. Revocation Provider вызывается автоматически каждый раз, когда приложение осуществляет действия с сертификатом. Проверка сертификата в реальном времени по протоколу OCSP обеспечивает большую безопасность по сравнению с СОС.

Схема встраивания Revocation Provider в ОС представлена на рисунке.

Чтобы обеспечить использование протокола OCSP для проверки статусов сертификатов, используемых в конкретной информационной системе, необходимо, чтобы в данной системе работал сервер OCSP.

В качестве сервера OCSP для КриптоПро Revocation Provider можно использовать КриптоПро OCSP Server.

КриптоПро Revocation Provider функционирует в операционных системах Microsoft Windows, как англоязычных, так и локализованных.

КриптоПро Revocation Provider:

  • Встраивает проверку статуса сертификатов по протоколу OCSP во все приложения операционной системы.
  • Не требует модификации приложений для использования своих возможностей.
  • Уменьшает риск стать жертвой мошенничества или понести ответственность.
  • Совместим с серверными приложениями.
  • Автоматически проверяет статусы сертификатов OCSP-серверов.
  • Поддерживает расширение . Если такое расширение присутствует в сертификате сервера, то статус этого сертификата не проверяется.
  • Автоматически проверяет, уполномочен ли OCSP-сервер Удостоверяющим Центром, издавшим проверяемый сертификат, выдавать информацию о статусе данного сертификата.
  • Настраивается через групповые политики.
  • Даёт возможность настройки доверия к конкретным OCSP-серверам.
  • При невозможности проверки сертификата по протоколу OCSP передаёт его в Microsoft Revocation Provider, который проводит проверку по СОС.
  • Может осуществлять соединения по защищённому протоколу TLS (SSL).
  • Устанавливается с помощью Windows Installer.

Как вызывается Revocation Provider

Будучи установленным в системе, Revocation Provider вызывается для проверки сертификата(ов) при каждом вызове функции CryptoAPI CertVerifyRevocation. Фактически, все параметры этой функции передаются без изменений в Revocation Provider. Помимо непосредственного вызова, эта функция, а значит и Revocation Provider, вызывается неявно внутри функций CertGetCertificateChain и WinVerifyTrust.

Как работает Revocation Provider

Когда приложение, работающее с CryptoAPI, вызывает функцию проверки статуса сертификата, в Revocation Provider передаётся этот сертификат вместе с рядом дополнительных параметров.

Revocation Provider, получив на проверку сертификат, создаёт OCSP-запрос на данный сертификат и обращается к одной или нескольким службам OCSP с этим запросом. При получении OCSP-ответа, осуществляет его проверку. Если ответ проходит проверку и содержит статус сертификата good или revoked, в отличие от unknown (см. RFC2560), то на этом проверка заканчивается и полученный статус возвращается приложению. Если же ответ содержит статус unknown или не проходит проверку, то происходит обращение по следующему адресу.

Очерёдность обращения к службам OCSP определяется следующим образом:

  • По расширению AIA (AuthorityInformationAccess) в сертификате. Среди различных точек AIA выбирает те, к которым указан метод доступа по протоколу OCSP, обращения к ним происходят по очереди их расположения в сертификате.
  • Если ни по одному из адресов OCSP-серверов, указанных в расширении AIA сертификата, не удаётся получить удовлетворяющий этим условиям ответ, или если таких адресов в сертификате не указано, то Revocation Provider пробует обратиться за статусом к OCSP-серверу, адрес которого задан групповой политикой, если она определена.

Если на предыдущих шагах не удаётся получить удовлетворяющем описанным условиям ответ, то сертификат передаётся на проверку в Microsoft Revocation Provider, входящий в состав ОС Windows. Microsoft Revocation Provider осуществляет проверку данного сертификата с использованием СОС. Полученный статус сертификата возвращается приложению.

КриптоПро Revocation Provider использует сертифицированное ФСБ России средство криптографической защиты КриптоПро CSP.

КриптоПро CSP 5. 0 — новое поколение криптопровайдера, развивающее три основные продуктовые линейки компании КриптоПро: КриптоПро CSP (классические токены и другие пассивные хранилища секретных ключей), КриптоПро ФКН CSP/Рутокен CSP (неизвлекаемыe ключи на токенах с защищенным обменом сообщениями) и КриптоПро DSS (ключи в облаке).

Все преимущества продуктов этих линеек не только сохраняются, но и приумножаются в КриптоПро CSP 5. 0: шире список поддерживаемых платформ и алгоритмов, выше быстродействие, удобнее пользовательский интерфейс. Но главное — работа со всеми ключевыми носителями, включая ключи в облаке, теперь единообразна. Для перевода прикладной системы, в которой работал КриптоПро CSP любой из версий, на поддержку ключей в облаке или на новые носители с неизвлекаемыми ключами, не потребуется какая-либо переработка ПО — интерфейс доступа остаётся единым, и работа с ключом в облаке будет происходить точно таким же образом, как и с классическим ключевым носителем.

Назначение КриптоПро CSP

  • Формирование и проверка электронной подписи.
  • Обеспечение конфиденциальности и контроля целостности информации посредством ее шифрования и имитозащиты.
  • Обеспечение аутентичности, конфиденциальности и имитозащиты соединений по протоколам TLS, и IPsec.
  • Контроль целостности системного и прикладного программного обеспечения для его защиты от несанкционированных изменений и нарушений доверенного функционирования.

Поддерживаемые алгоритмы

В КриптоПро CSP 5. 0 наряду с российскими реализованы зарубежные криптографические алгоритмы. Теперь пользователи имеют возможность использовать привычные носители ключей для хранения секретных ключей RSA и ECDSA.

Электронная подпись
ГОСТ Р 34. 10-2012 (ГОСТ 34. 10-2018), ECDSA, RSA

Хэш-функции
ГОСТ Р 34. 11-2012 (ГОСТ 34. 11-2018), SHA-1, SHA-2

Шифрование
ГОСТ Р 34. 12-2015 (ГОСТ 34. 12-2018), ГОСТ Р 34. 13-2015 (ГОСТ 34. 13-2018), ГОСТ 28147-89, AES (128/192/256), 3DES, 3DES-112, DES, RC2, RC4

Таблица алгоритмов, поддерживаемых разными версиями КриптоПро CSP.

Поддерживаемые технологии хранения ключей

В криптопровайдере КриптоПро CSP 5. 0 впервые появилась возможность использования ключей, хранящихся на облачном сервисе КриптоПро DSS, через интерфейс CryptoAPI. Теперь ключи, хранимые в облаке, могут быть легко использованы как любыми пользовательскими приложениями, так и большинством приложений компании Microsoft.

Носители с неизвлекаемыми ключами и защищенным обменом сообщениями

В КриптоПро CSP 5. 0 добавлена поддержка носителей с неизвлекаемыми ключами, реализующих протокол SESPAKE, позволяющий провести аутентификацию, не передавая в отрытом виде пароль пользователя, и установить шифрованный канал для обмена сообщений между криптопровайдером и носителем. Нарушитель, находящийся в канале между носителем и приложением пользователя, не может ни украсть пароль при аутентификации, ни подменить подписываемые данные. При использовании подобных носителей полностью решается проблема безопасной работы с неизвлекаемыми ключами.

Компании Актив, ИнфоКрипт и СмартПарк разработали новые защищенные токены, которые поддерживают данный протокол.

Список производителей и моделей поддерживаемых КриптоПро CSP 5. 0 R2
Список производителей и моделей носителей с неизвлекаемыми ключами и защищенным обменом сообщениями поддерживаемых КриптоПро CSP 5. 0 R2

Компания

Носитель

Актив

Рутокен ЭЦП 2. 0 3000 (USB, Type-C, micro)

Смарт-карта Рутокен ЭЦП 3. 0

Инфокрипт

InfoCrypt Token++

СмартПарк

Форос 2. Базис

Многие пользователи хотят иметь возможность работать с неизвлекаемыми ключами, но при этом не обновлять токены до уровня ФКН. Специально для них в провайдер добавлена поддержка популярных ключевых носителей Рутокен ЭЦП 2. 0, JaCarta-2 ГОСТ и InfoCrypt VPN-Key-TLS.

Список производителей и моделей поддерживаемых КриптоПро CSP 5. 0 R2
Список производителей и моделей носителей с неизвлекаемыми ключами поддерживаемых КриптоПро CSP 5. 0 R2

Компания Носитель
ISBC Esmart Token ГОСТ
Актив Рутокен PINPad
Рутокен ЭЦП (USB, micro, Flash)
Рутокен ЭЦП 2. 0 (USB, micro, Flash, Touch)
Рутокен ЭЦП 2. 0 2100 (USB, Type-C, micro)
Рутокен ЭЦП 2. 0 2151
Рутокен ЭЦП PKI (USB, Type-C, micro)
Рутокен ЭЦП 2. 0 Bluetooth
Рутокен TLS (исполнение 1)
Смарт-карта Рутокен ЭЦП SC
Смарт-карта Рутокен ЭЦП 2. 0 2100
Смарт-карта Рутокен ЭЦП 2. 0 2151
Аладдин Р. JaCarta-2 ГОСТ, JaСarta SF/ГОСТ
JaCarta-2 SE/PKI/ГОСТ
Инфокрипт InfoCrypt Token++ TLS
InfoCrypt VPN-Key-TLS

Классические пассивные USB-токены и смарт-карты

Большинство пользователей предпочитает быстрые, дешевые и удобные решения для хранения ключей. Как правило, предпочтение отдаётся токенам и смарт-картам без криптографических сопроцессоров. Как и в предыдущих версиях провайдера, в КриптоПро CSP 5. 0 сохранена поддержка всех совместимых носителей производства компаний Актив, Аладдин Р. , Gemalto/SafeNet, Multisoft, NovaCard, Rosan, Alioth, MorphoKST и СмартПарк.

Кроме того, конечно, как и раньше поддерживаются способы хранения ключей в реестре Windows, на жестком диске, на флеш-накопителях на всех платформах.

Список производителей и моделей поддерживаемых КриптоПро CSP 5. 0 R2
Список производителей и моделей классических пассивных USB-токенов и смарт-карт поддерживаемых КриптоПро CSP 5. 0 R2

Компания Носитель
AliothSCOne Series (v5/v6)
Gemalto Optelio Contactless Dxx Rx
Optelio Dxx FXR3 Java
Optelio G257
Optelio MPH150
ISBC Esmart Token
MorphoKSTMorphoKST
NovaCardCosmo
Rosan G&D element V14 / V15
G&D 3. 45 / 4. 42 / 4. 44 / 4. 45 / 4. 65 / 4. 80
Kona 2200s / 251 / 151s / 261 / 2320
Kona2 S2120s / C2304 / D1080
SafeNet eToken Java Pro JC
eToken 4100
eToken 5100
eToken 5110
eToken 5105
eToken 5205
Актив Рутокен S
Рутокен КП
Рутокен Lite
Смарт-карта Рутокен Lite
Аладдин Р. JaCarta ГОСТ
JaCarta PKI
JaCarta PRO
JaCarta LT
DallasTouch Memory (iButton) DS199x
ИнфокриптInfoCrypt Token++ lite
Мультисофт MS_Key исп. 8 Ангара
MS_Key ESMART исп. 5
СмартПарк Форос
Форос 2
R301 Форос
Оскар
Оскар 2
Рутокен Магистра

Инструменты КриптоПро

В составе КриптоПро CSP 5. 0 появилось кроссплатформенное (Windows/Linux/macOS) графическое приложение — «Инструменты КриптоПро» («CryptoPro Tools»).

Основная идея — предоставить возможность пользователям удобно решать типичные задачи. Все основные функции доступны в простом интерфейсе — при этом мы реализовали и режим для опытных пользователей, открывающий дополнительные возможности.

Поддерживаемое программное обеспечение

КриптоПро CSP позволяет быстро и безопасно использовать российские криптографические алгоритмы в следующих стандартных приложениях:

  • Офисный пакет Microsoft Office
  • Почтовый сервер Microsoft Exchange и клиент Microsoft Outlook
  • Продукты Adobe
  • Браузеры Яндекс.Браузер, Спутник, Internet Explorer, Chromium GOST
  • Средство формирования и проверки подписи приложений Microsoft Authenticode
  • Веб-серверы Microsoft IIS, nginx, Apache
  • Средства удаленных рабочих столов Microsoft Remote Desktop Services
  • Microsoft Active Directory

Интеграция с платформой КриптоПро

С первого же релиза обеспечивается поддержка и совместимость со всеми нашими продуктами:

  • КриптоПро УЦ
  • Службы УЦ
  • КриптоПро ЭЦП
  • КриптоПро IPsec
  • КриптоПро EFS
  • КриптоПро .NET
  • КриптоПро Java CSP
  • КриптоПро NGate

Операционные системы и аппаратные платформы

Традиционно мы работаем в непревзойдённо широком спектре систем:

  • Microsoft Windows
  • macOS
  • Linux
  • FreeBSD
  • Solaris
  • AIX
  • iOS
  • Android
  • Sailfish OS
  • Аврора
  • Intel, AMD
  • PowerPC
  • ARM (в т.ч. Байкал-М, Apple M1)
  • MIPS (Байкал-Т)
  • VLIW (Эльбрус)
  • Sparc
  • Microsoft Hyper-V
  • VMWare
  • Oracle Virtual Box
  • RHEV

Таблица операционных систем, поддерживаемых разными версиями КриптоПро CSP.

Классификация операционных систем для использования КриптоПро CSP c лицензией на рабочее место и сервер.

Интерфейсы для встраивания

Для встраивания в приложения на всех платформах КриптоПро CSP доступен через стандартные интерфейсы для криптографических средств:

  • Microsoft CryptoAPI
  • OpenSSL engine
  • Java CSP (Java Cryptography Architecture)
  • Qt SSL

Производительность на любой вкус

Многолетний опыт разработки позволяет нам охватить все решения от миниатюрных ARM-плат, таких как Raspberry PI, до многопроцессорных серверов на базе Intel Xeon, AMD EPYC и PowerPC, отлично масштабируя производительность.

Регулирующие документы

Загрузите дистрибутив КриптоПро JCP с сайта производителя, распакуйте его в папку на сервере и запустите скрипт установки install. bat. Скрипт находится в папке lib дистрибутива. При его запуске необходимо указать путь к JRE:

install. bat “C:Program FilesJavajdk1. 0_20jre”

В случае если имеется лицензия, при запуске скрипта также указывается серийный номер и название компании:

install. bat “C:Program FilesJavajdk1. 0_20jre” XXXXX-XXXXX-XXXXX-XXXXX-XXXXX “Your Company”

Под Windows 7 скрипт установки необходимо запускать с правами администратора. После завершения работы скрипта, убедитесь в том, что в папке jrelibext появились следующие библиотеки:

asn1rt. jarJCP. jarJCPRevCheck. jarJCP_ASN. jar
AsnLite. jarJCPinst. jarJCPRevTools. jarJCryptoP. jar
forms_rt. jarJCPRequest. jarJCPxml. jar

Настройка и запуск Java Gateway, создание проекций классов

Чтобы стало возможным вызывать Java-классы из Caché/Ensemble, необходимо настроить и запустить Java Gateway, а также создать проекции используемых Java-классов.

Добавим новую запись в таблицу настроек Java Gateway в области %SYS:

insert into %Net_Remote. ObjectGateway(Name, Type, Server, Port, JavaHome) values (‘JCPGate’, ‘1’, ‘127. 1’, ‘55555’, ‘C:Program FilesJavajdk1. 0_20jre’)

Здесь в поле Name указано значение “JCPGate” – это имя нового Java Gateway. В поле JavaHome необходимо указать путь к JRE, для которой была произведена установка JCP. В поле Port указывается TCP-порт, используемый для общения с этим Java Gateway из Caché.

Теперь можно запустить новый Java Gateway, выполнив в терминале Caché следующую команду:

write ##class(%Net. Remote. Service). StartGateway(“JCPGate”)

Чтобы остановить его, вызовите метод StopGateway:

write ##class(%Net. Remote. Service). StopGateway(“JCPGate”)

Запускать/останавливать Java Gateway можно из любой области.

Перейдем в область, где ведется разработка веб-сервисов, и создадим проекцию для Java-класса isc. jcp. JcpFacade, выполнив в терминале Caché следующую команду:

do ##class(%Net. Remote. Java. JavaGateway). %ExpressImport(“isc. jcp. JcpFacade”, “55555”)

Здесь 55555 – это номер TCP-порта, который используется для общения с Java Gateway. Этот порт был указан нами ранее при добавлении записи в таблицу %Net_Remote. ObjectGateway.

Тестирование веб-сервиса

Чтобы протестировать проверку/формирование ЭЦП веб-сервисом test. TestService, исходный код которого приведен выше, выполним следующие действия.

  • При помощи Studio создадим класс test.TestService в той же области, куда были импортированы классы smev.*. Исходный код нового класса скопируем из вышеприведенного листинга.
  • Запустим в терминале Caché метод signFile() класса smev.JcpUtils:
    write ##class(smev.JcpUtils).signFile(“id1”, “C:Tempinput.xml”, “C:Tempoutput.xml”)Убедимся в том, что в результате работы метода был создан файл C:Tempoutput.xml, содержащий подписанное SOAP-сообщение (Envelope): в заголовке (Header) находится ЭЦП в формате WS-Security, а тело (Body) представляет собой XML-документ, взятый из файла input.xml.Готовый файл output.xml имеется в архиве xmls.zip.

Все действия, описанные в статье, можно посмотреть в следующем видеоролике:

Дополнительные библиотеки Java

Нам понадобится библиотека iscjcp. jar (исходники здесь), в которой содержится ряд вспомогательных классов для работы с JCP из Caché. Кроме этого, потребуются три open source библиотеки — Commons Logging, Santuario (aka XML Security) и WSS4J. Их использование регулируется лицензией Apache Software License 2.

Загрузите архив jars. zip с четырьмя перечисленными библиотеками и распакуйте его в папку jrelibext.

В случае использования Windows 7, необходимо выдать полномочия группе «Все» на чтение и выполнение всех библиотек в папке jrelibext.

Формирование ЭЦП для исходящих SOAP-сообщений веб-сервиса

Далее рассмотрим случай, когда все ответы веб-сервиса должны быть подписаны ЭЦП организации. В такой ситуации на сервере системы размещается хранилище, содержащее секретный ключ, который используется при формировании подписи. Кроме того, должен быть доступен сертификат, соответствующий этому ключу. В библиотеке iscjcp. jar реализована работа с хранилищем типа «FloppyStore». Поэтому, для формирования ЭЦП нам потребуется виртуальная дискета с хранилищем ключей.

Размещение секретного ключа и сертификата на виртуальной дискете на сервере системы

Чтобы создать такую дискету, выполните следующие действия:

  • Установите драйвер, имитирующий FDD привод, например, ImDisk.
  • Из панели управления Windows запустите программу настройки «ImDisk Virtual Disk Driver» и настройте диск с параметрами:
    Drive letter: A,Size of virtual disk: 1 Megabyte,Device type: Floppy.
  • Drive letter: A,
  • Size of virtual disk: 1 Megabyte,
  • Device type: Floppy.
  • Отформатируйте виртуальную дискету, задав файловую систему FAT.
  • Распакуйте содержимое архива FDD.zip на диск A:.

В результате описанных манипуляций на диске A: сервера имеем хранилище ключей, содержащее тестовый секретный ключ. Файл A:SelfSigned. cer представляет собой тестовый сертификат, соответствующий секретному ключу.

Вы можете самостоятельно генерировать ключи и сертификаты с помощью КриптоПро JCP. Эти процедуры описаны в документации продукта.

Загруженный ранее архив iscjcp-cos-sources2012. zip с исходным кодом Caché Object Script содержал класс smev. JcpSignature. Импортируйте этот класс в Caché с помощью Studio.

Откройте класс smev. JcpUtils в Studio и отредактируйте значение параметра CERTFILENAME, указав полный путь к файлу сертификата – “A:SelfSigned. cer”. Этот сертификат соответствует секретному ключу, который будет использоваться при формировании ЭЦП. Скомпилируйте класс.

Теперь, чтобы добавить в метод веб-сервиса функционал по формированию ЭЦП для возвращаемых сообщений, необходимо вставить следующую строку в код этого метода:

SecurityOut. AddElement(##class(smev. JcpSignature). %New())

Проверка ЭЦП во входящих SOAP-сообщениях

Теперь, чтобы добавить в существующий веб-сервис проверку ЭЦП, достаточно внести в класс веб-сервиса следующий метод:

Это работает на версиях Caché/Ensemble, начиная с 2009. Ниже приведен пример веб-сервиса, который осуществляет проверку подписи всех входящих SOAP-сообщений.

Веб-сервисы с поддержкой ЭЦП на базе криптографии ГОСТ

Начиная с версии 2008. 2, в Caché и в Ensemble встроена поддержка WS-Security, включающая механизмы проверки и формирования электронной подписи SOAP-сообщений. На текущий момент имеется «out of the box» поддержка ЭЦП на базе крипто алгоритмов семейства RSA.

К системам, создаваемым для российских заказчиков, зачастую предъявляется требование применения сертифицированных СКЗИ, использующих крипто алгоритмы ГОСТ. Далее описан один из подходов к разработке веб-сервисов Caché, защищенных ЭЦП на базе ГОСТ’овской криптографии. В качестве сертифицированного СКЗИ, будем использовать продукт КриптоПро JCP, представляющий собой набор Java библиотек, в которых реализован алгоритм подписи — ГОСТ Р 34. 10-2001, а также алгоритм хэширования ГОСТ Р 34. 11-94.

Читайте также:  Как подписать документ с помощью ЭЦП
Оцените статью
ЭЦП Эксперт
Добавить комментарий