криптопро java csp что это

Криптопро java csp что это

Реализация КриптоПро JCP совместима с КриптоПро CSP.

Средство криптографической защиты КриптоПро JCP распространяется в двух комплектациях:

КриптоПро JCP предназначен для:

Алгоритм выработки значения хэш-функции реализован в соответствии с требованиями ГОСТ Р 34.11 94 «Информационная технология. Криптографическая защита информации. Функция хэширования» и ГОСТ Р 34.11 2012 «Информационная технология. Криптографическая защита информации. Функция хэширования».

Алгоритмы формирования и проверки ЭЦП реализованы в соответствии с требованиями:

Алгоритм зашифрования/расшифрования данных и вычисление имитовставки реализованы в соответствии с требованиями ГОСТ 28147-89 «Системы обработки информации. Защита криптографическая» и ГОСТ 34.12-2015 «Информационная технология. Криптографическая защита информации».

При генерации закрытых и открытых ключей обеспечена возможность генерации с различными параметрами в соответствии с ГОСТ Р 34.10-2001/ГОСТ Р 34.10-2012.

При выработке значения хэш-функции и шифровании обеспечена возможность использования различных узлов замены в соответствии с ГОСТ Р 34.11-94/ГОСТ Р 34.11-2012 и ГОСТ 28147-89.

КриптоПро JCP функционирует в следующем окружении:

Длина ключей электронной цифровой подписи (ГОСТ Р 34.10-2001):

Длина ключей электронной цифровой подписи (ГОСТ Р 34.10-2012, 256 бит):

Длина ключей электронной цифровой подписи (ГОСТ Р 34.10-2012, 512 бит):

Длина ключей, используемых при шифровании:

Типы ключевых носителей:

Криптографическая архитектура Java

Стандартные спецификации Java 7, предоставляют стройную систему криптографической защиты информации (ПКЗИ). Более подробно эта архитектура развёрнута по следующим ссылкам:

Как использовать

КриптоПро JCP разработан в соответствии с требованиями интерфейса JCA и позволяет создавать новые, надежно защищенные приложения с использованием богатейшего и проверенного временем инструментария Java такого, как Apache XML Security для ЭЦП XML-документов стандарта XMLdsig.

Рекомендации к окружению

Для пользовательских приложений рекомендуется использовать лицензированные Sun виртуальные машины J2SE полностью удовлетворяющие требованиям спецификации Java 7. Для серверных приложений рекомендуется использовать сертифицированные Sun сервера приложений имеющие значок «Java compatible Enterprise Edition».

Источник

Криптопро java csp что это

КриптоПро J ava C S P представляет собой Java модуль который выполняет все криптографические операции используя КриптоПро CSP. Данный криптопровайдер сочетает в себе высокую скорость нативного кода с удобством разработки и использования JCE интерфейсов в Java приложениях.

Реализация API КриптоПро J ava C S P совместима с API КриптоПро JCP 2.0. Для работы КриптоПро Java CSP требуется установить криптопровайдер КриптоПро CSP версии 5.0.

КриптоПро Java CSP предназначен для:

Алгоритм выработки значения хэш-функции реализован в соответствии с требованиями ГОСТ Р 34.11 94 «Информационная технология. Криптографическая защита информации. Функция хэширования» и ГОСТ Р 34.11 2012 «Информационная технология. Криптографическая защита информации. Функция хэширования».

Алгоритмы формирования и проверки ЭЦП реализованы в соответствии с требованиями:

ГОСТ Р 34.10-2001 «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи»;

ГОСТ Р 34.10-2012 «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи».

Алгоритм зашифрования/расшифрования данных и вычисление имитовставки реализованы в соответствии с требованиями ГОСТ 28147-89 «Системы обработки информации. Защита криптографическая» и ГОСТ 34.12-2015 «Информационная технология. Криптографическая защита информации».

При генерации закрытых и открытых ключей обеспечена возможность генерации с различными параметрами в соответствии с ГОСТ Р 34.10-2001/ГОСТ Р 34.10-2012.

При выработке значения хэш-функции и шифровании обеспечена возможность использования различных узлов замены в соответствии с ГОСТ Р 34.11-94/ГОСТ Р 34.11-2012 и ГОСТ 28147-89.

Провайдер Java CSP RSA (требует установки компонента провайдера КриптоПро CSP 5.0 с реализацией иностранных алгоритмов: Crypto-Pro Enhanced RSA and AES CSP) также поддерживает зарубежные алгоритмы: SHA-1, SHA-2, AES (128/192/256), 3DES, 3DES-112, DES, RSA.

КриптоПро Java CSP разработан в соответствии с требованиями интерфейса JCA и может быть использован в операционных системах с установленной виртуальной машиной Java версии 7 и выше или Google Android (версии 7.0 и выше).
Поддерживаемые операционные системы:

В соответствии с КриптоПро JCP, КриптоПро Java CSP функционирует в следующем окружении:

Длина ключей электронной цифровой подписи (ГОСТ Р 34.10-2001):

Длина ключей электронной цифровой подписи (ГОСТ Р 34.10-2012, 256 бит):

Длина ключей электронной цифровой подписи (ГОСТ Р 34.10-2012, 512 бит):

Длина ключей, используемых при шифровании:

Криптографическая архитектура Java 7 и выше
Стандартные спецификации Java 7 предоставляют стройную систему криптографической защиты информации (ПКЗИ). Более подробно эта архитектура развёрнута по следующим ссылкам:

Источник

Криптопро java csp что это

Реализация КриптоПро JCP совместима с КриптоПро CSP.

Средство криптографической защиты КриптоПро JCP распространяется в двух комплектациях:

КриптоПро JCP предназначен для:

Алгоритм выработки значения хэш-функции реализован в соответствии с требованиями ГОСТ Р 34.11 94 «Информационная технология. Криптографическая защита информации. Функция хэширования» и ГОСТ Р 34.11 2012 «Информационная технология. Криптографическая защита информации. Функция хэширования».

Алгоритмы формирования и проверки ЭЦП реализованы в соответствии с требованиями:

Алгоритм зашифрования/расшифрования данных и вычисление имитовставки реализованы в соответствии с требованиями ГОСТ 28147-89 «Системы обработки информации. Защита криптографическая» и ГОСТ 34.12-2015 «Информационная технология. Криптографическая защита информации».

При генерации закрытых и открытых ключей обеспечена возможность генерации с различными параметрами в соответствии с ГОСТ Р 34.10-2001/ГОСТ Р 34.10-2012.

При выработке значения хэш-функции и шифровании обеспечена возможность использования различных узлов замены в соответствии с ГОСТ Р 34.11-94/ГОСТ Р 34.11-2012 и ГОСТ 28147-89.

КриптоПро JCP функционирует в следующем окружении:

Длина ключей электронной цифровой подписи (ГОСТ Р 34.10-2001):

Длина ключей электронной цифровой подписи (ГОСТ Р 34.10-2012, 256 бит):

Длина ключей электронной цифровой подписи (ГОСТ Р 34.10-2012, 512 бит):

Длина ключей, используемых при шифровании:

Типы ключевых носителей:

Криптографическая архитектура Java

Стандартные спецификации Java 7, предоставляют стройную систему криптографической защиты информации (ПКЗИ). Более подробно эта архитектура развёрнута по следующим ссылкам:

Как использовать

КриптоПро JCP разработан в соответствии с требованиями интерфейса JCA и позволяет создавать новые, надежно защищенные приложения с использованием богатейшего и проверенного временем инструментария Java такого, как Apache XML Security для ЭЦП XML-документов стандарта XMLdsig.

Рекомендации к окружению

Для пользовательских приложений рекомендуется использовать лицензированные Sun виртуальные машины J2SE полностью удовлетворяющие требованиям спецификации Java 7. Для серверных приложений рекомендуется использовать сертифицированные Sun сервера приложений имеющие значок «Java compatible Enterprise Edition».

Источник

Как на Java c помощью КриптоПро подписать документ PDF

криптопро java csp что это. Смотреть фото криптопро java csp что это. Смотреть картинку криптопро java csp что это. Картинка про криптопро java csp что это. Фото криптопро java csp что это

Привет! Я сотрудник Альфа-Банка и занимаюсь разработкой программного обеспечения со встроенными средствами криптографической защиты информации.

В данной статье хочу рассказать о следующих вещах:

Согласно законодательству, электронная подпись может придать документам юридическую силу, равную по значимости бумажному носителю, подписанному собственноручной подписью и скрепленного печатью правомочного лица.

Преимущества PDF

В качестве контейнера для хранения разнообразной информации в дружественном для человека представлении формат PDF по праву завоевал свою популярность. Его получится открыть в любой ОС. Документ PDF может содержать не только текстовые и табличные данные, но и аудио и видеозаписи, инженерную графику, трехмерные модели. Для дополнительной обработки PDF-документов в данный формат включен такой мощный инструмент как поддержка JavaScript для изменения содержимого в формах и полях по наступлению какого-то события или выполнению действия пользователя.

Инструменты Adobe Systems (разработчика формата PDF) поддерживают использование электронной подписи. В отличие от сообщений с присоединенной усиленной электронной подписью стандарта PKCS#7 и его усовершенствования CAdES, для просмотра документа PDF с подписью не требуется дополнительное специальное ПО. Кроме криптографического провайдера, который требуется во всех случаях.

Т.е. инструменты Adobe позволяют визуализировать электронную подпись в документе.

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

При просмотре таких документов, кроме визуализации в теле документа, программы Acrobat и Adobe Reader отображают вкладку «Подписи» с сопутствующей информацией: значок, показывающий статус проверки подписи, сведения о том, был ли изменен документ, результат проверки сертификата открытого ключа, время последней проверки, страницу и поле, содержащие электронную подпись.

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

Использовалась версия Java: «1.8.0_111» HotSpot(TM) 64-Bit Server VM (build 25.111-b14).

В качестве сертифицированного средства защиты информации от лицензированного разработчика применяем криптографический провайдер КриптоПро CSP v4.0 и КриптоПро JCP – v.2.0, с установкой модуля КриптоПро Java CSP v.4.0

Почему КриптоПро JCP – v.2.0, с модулем КриптоПро Java CSP v.4.0?

Потому, что провайдер КриптоПро JCP после длительного несертифицированного периода получил сертификат соответствия от регулятора до 31.12.2018, а дальше, по информации от разработчика, с сертификацией может вновь возникнуть неопределенность. Модуль КриптоПро Java CSP v.4.0 не выполняет в себе криптографических преобразований и является по сути API к провайдеру КриптоПро CSP, с очередной сертификацией которого вопросов нет. Здесь нужно сказать, что действующий сертификат на СКЗИ не обязателен при условии использования криптографического провайдера исключительно для внутренних целей.

Не забываем, что должны быть сняты экспортные ограничения платформы Java, которые блокируют работу криптографических провайдеров с российскими алгоритмами шифрования.

grant <
// There is no restriction to any algorithms.
permission javax.crypto.CryptoAllPermission;
>;

Применение библиотеки iText itextpdf.com для работы с PDF документами на Java было продиктовано провайдером КриптоПро.

В составе КриптоПро JCP поставляется файл Git patch для библиотеки iTextpdf версии 5.1.3 —
jcp-2.0.xxxxx\Doc\itextpdf\ itextpdf_5.1.3.gost.user.patch

криптопро java csp что это. Смотреть фото криптопро java csp что это. Смотреть картинку криптопро java csp что это. Картинка про криптопро java csp что это. Фото криптопро java csp что это

криптопро java csp что это. Смотреть фото криптопро java csp что это. Смотреть картинку криптопро java csp что это. Картинка про криптопро java csp что это. Фото криптопро java csp что это

Далее нужно собрать полученную библиотеку из обновленного исходного кода и подключить к приложению.

В составе КриптоПро JCP можно найти много примеров в файле samples-sources.jar. В частности, там есть примеры подписи и проверки ЭП PDF-документов. (\PDF\SignVerifyPDFExample.java).

Проблемы и трудности сборки

После успешного обновления исходного кода itextpdf в нем появляются зависимости на пакеты ru.CryptoPro.JCP и ru.CryptoPro.reprov.x509.

Без них проект с исходным кодом itextpdf_5.1.3.gost не соберется.

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project itextpdf: Compilation failure: Compilation failure:
[ERROR] \github\iTextpdf_5.1.3_patched_cryptopro_bc1.50\src\main\java\com\itextpdf\text\pdf\PdfPKCS7.java:[138,23] error: package ru.CryptoPro.JCP does not exist
[ERROR] \github\iTextpdf_5.1.3_patched_cryptopro_bc1.50\src\main\java\com\itextpdf\text\pdf\PdfPKCS7.java:[139,31] error: package ru.CryptoPro.reprov.x509 does not exist

Нужно взять из поставки КриптоПро 2.0 файлы JCP.jar и JCPRevTools.jar и поместить в каталог JRE, которую использует Maven: Java\jdk1.8.0_111\jre\lib\ext. Само собой, они должны быть и в classPath приложения.

Итак, библиотека собрана, подключаем ее в приложение. И тут возникает основная проблема. iTextpdf_5.1.3 содержит зависимость на Bouncy Castle версии 1.46 – библиотеку с открытым кодом, реализующую криптографический провайдер и поддержку ASN.1 структур.

Поставка КриптоПро JCP 2.0 в свою очередь имеет зависимости на Bouncy Castle версии 1.50 bcpkix-jdk15on-1.50 и bcprov-jdk15on-1.5, соответственно, они помещаются в jre/lib/ext при установке КриптоПро.

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

Exception in thread «main» java.lang.NoClassDefFoundError: org/bouncycastle/asn1/DEREncodable
at com.itextpdf.text.pdf.PdfSigGenericPKCS.setSignInfo(PdfSigGenericPKCS.java:97)
at com.itextpdf.text.pdf.PdfSignatureAppearance.preClose(PdfSignatureAppearance.java:1003)
at com.itextpdf.text.pdf.PdfSignatureAppearance.preClose(PdfSignatureAppearance.java:904)
at com.itextpdf.text.pdf.PdfStamper.close(PdfStamper.java:194)
at ru.alfabank.ccjava.trustcore.logic.SignatureProcessor.pdfSignature(SignatureProcessor.java:965)
at ru.alfabank.ccjava.trustcore.logic.SignatureProcessor.main(SignatureProcessor.java:1363)
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.asn1.DEREncodable
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
. 6 more

Каждый разработчик Java сталкивался с таким исключением в потоке main и знает, что можно потратить много времени на разбор проблемы, и как все исправить. Суть исключения NoClassDefFoundError следующая – оно выбрасывается, когда виртуальная машина Java во время исполнения приложения не может найти конкретный класс, который был доступен на этапе компиляции.

Что получается – библиотека iTextpdf_5.1.3 имеет зависимость от более старого провайдера Bouncy Castle, а для новых версий iTextpdf нет патча от КриптоПро.

Конкретно в поставке КриптоПро JCP 2.0 зависимости на новую версию Bouncy Castle имеет библиотека CAdES.jar. Если удалить из JRE эту библиотеку или вовсе отказаться от поддержки формирования CAdES подписей при установке КриптоПро JCP 2.0, то проблема будет решена.

Но что если поддержка CAdES должна остаться?

Чтобы избавиться от конфликта библиотек, необходимо предпринять следующие шаги:

Исходный код iTextpdf_5.1.3_patched_cryptopro_bc1.50 выложен в GitHub: iTextpdf_5.1.3_patched_cryptopro_bc1.50

Пример кода, несколько подписей PDF

Пример использования КриптоПро и iTextpdf_5.1.3_patched_cryptopro_bc1.50 выглядит следующим образом:

Метод принимает на вход список имен контейнеров с ключами электронной подписи, байты PDF-документа и номер версии формата PDF. Согласно указанным именам, ключи и сертификаты извлекаются из кэша. Подгружается изображение для визуализации подписи.

Создается объект с корневым сертификатом для формирования пути сертификации, который требуется методу setCrypto класса com.itextpdf.text.pdf.PdfSignatureAppearance.

В цикле выполняется подпись страниц PDF-документа ключами, имена которых были переданы в метод.

Для демонстрации выполнены две подписи — валидная и невалидная с недействительным сертификатом.

криптопро java csp что это. Смотреть фото криптопро java csp что это. Смотреть картинку криптопро java csp что это. Картинка про криптопро java csp что это. Фото криптопро java csp что это

криптопро java csp что это. Смотреть фото криптопро java csp что это. Смотреть картинку криптопро java csp что это. Картинка про криптопро java csp что это. Фото криптопро java csp что это

Вкладка «Подписи» выглядит следующим образом:

криптопро java csp что это. Смотреть фото криптопро java csp что это. Смотреть картинку криптопро java csp что это. Картинка про криптопро java csp что это. Фото криптопро java csp что это

криптопро java csp что это. Смотреть фото криптопро java csp что это. Смотреть картинку криптопро java csp что это. Картинка про криптопро java csp что это. Фото криптопро java csp что это

Применение электронной подписи PDF-документов

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

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

Практичнее формировать электронную подпись в виде отдельного файла или оборачивать файл и подпись в один контейнер стандарта PKCS#7 (CAdES). Этот стандарт с присоединенной или отсоединенной подписью отлично подойдет для большого документооборота между информационными системами.

Тот же документ PDF можно подписать по стандарту CAdES отсоединенной подписью, в итоге будет два файла — сам PDF и контейнер с подписью.

Вспомним проблемы, с которыми пришлось столкнуться при подписании на Java. Вывод — формат PDF сейчас плохо поддерживается КриптоПро в части прикладного программного интерфейса для Java. Существующую библиотеку itextpdf пришлось править самостоятельно.

В сфере деятельности, связанной с разработкой коммерческого программного обеспечения со встроенными СКЗИ, такой подход недопустим, патчи, обновления и доработки должны выполняться организацией-лицензиатом. Поэтому приведенный в посте способ подписи PDF-документа можно применять с целью демонстрации возможностей и для внутреннего использования.

Источник

Криптопро java csp что это

КриптоПро J ava C S P представляет собой Java модуль который выполняет все криптографические операции используя КриптоПро CSP. Данный криптопровайдер сочетает в себе высокую скорость нативного кода с удобством разработки и использования JCE интерфейсов в Java приложениях.

Реализация API КриптоПро J ava C S P совместима с API КриптоПро JCP 2.0. Для работы КриптоПро Java CSP требуется установить криптопровайдер КриптоПро CSP версии 5.0.

КриптоПро Java CSP предназначен для:

Алгоритм выработки значения хэш-функции реализован в соответствии с требованиями ГОСТ Р 34.11 94 «Информационная технология. Криптографическая защита информации. Функция хэширования» и ГОСТ Р 34.11 2012 «Информационная технология. Криптографическая защита информации. Функция хэширования».

Алгоритмы формирования и проверки ЭЦП реализованы в соответствии с требованиями:

ГОСТ Р 34.10-2001 «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи»;

ГОСТ Р 34.10-2012 «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи».

Алгоритм зашифрования/расшифрования данных и вычисление имитовставки реализованы в соответствии с требованиями ГОСТ 28147-89 «Системы обработки информации. Защита криптографическая» и ГОСТ 34.12-2015 «Информационная технология. Криптографическая защита информации».

При генерации закрытых и открытых ключей обеспечена возможность генерации с различными параметрами в соответствии с ГОСТ Р 34.10-2001/ГОСТ Р 34.10-2012.

При выработке значения хэш-функции и шифровании обеспечена возможность использования различных узлов замены в соответствии с ГОСТ Р 34.11-94/ГОСТ Р 34.11-2012 и ГОСТ 28147-89.

Провайдер Java CSP RSA (требует установки компонента провайдера КриптоПро CSP 5.0 с реализацией иностранных алгоритмов: Crypto-Pro Enhanced RSA and AES CSP) также поддерживает зарубежные алгоритмы: SHA-1, SHA-2, AES (128/192/256), 3DES, 3DES-112, DES, RSA.

КриптоПро Java CSP разработан в соответствии с требованиями интерфейса JCA и может быть использован в операционных системах с установленной виртуальной машиной Java версии 7 и выше или Google Android (версии 7.0 и выше).
Поддерживаемые операционные системы:

В соответствии с КриптоПро JCP, КриптоПро Java CSP функционирует в следующем окружении:

Длина ключей электронной цифровой подписи (ГОСТ Р 34.10-2001):

Длина ключей электронной цифровой подписи (ГОСТ Р 34.10-2012, 256 бит):

Длина ключей электронной цифровой подписи (ГОСТ Р 34.10-2012, 512 бит):

Длина ключей, используемых при шифровании:

Криптографическая архитектура Java 7 и выше
Стандартные спецификации Java 7 предоставляют стройную систему криптографической защиты информации (ПКЗИ). Более подробно эта архитектура развёрнута по следующим ссылкам:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *