Криптографический сервис-провайдер Java LCXMLDSig
Одним из важных средств Java Cryptography Architecture (JCA) является прикладной программный интерфейс поддержки ЭЦП для документов XML - The Java XML Digital Signature API. Этот API позволяет генерировать и проверять подписи XML. Подписи XML являются стандартом для ЭЦП данных в формате XML и позволяют аутентифицировать и проверять целостность данных XML в сетевых транзакциях.
К сожалению, штатные средства The Java XML Digital Signature API не поддерживают алгоритмов российской криптографии, поэтому ООО «ЛИССИ-Софт» разработало собственную реализацию криптографического сервис-провайдера LCXMLDSig, обеспечивающую такую поддержку в соответствии со спецификациями.
RFC 2828 определяет ЭЦП как "значение, вычисленное по криптографическому алгоритму и добавленное к объекту данных таким образом, что любой получатель данных может использовать подпись для проверки источника и целостности данных".
ЭЦП XML является цифровой подписью с несколькими ключевыми свойствами. Она определяет процесс и формат для генерации ЭЦП в формате XML, а также обладает многими дополнительными возможностями.
Например, она позволяет подписывать несколько частей данных - двоичных или XML - и использовать любой подходящий криптографический алгоритм подписи.
ЭЦП XML может подписывать любые данные, в формате XML или двоичные. Она может также подписывать соответствующую порцию или подмножество документа XML, а не обязательно весь документ целиком. Подписываемые данные идентифицируются с помощью Uniform Resource Identifiers (URIs).
ЭЦП XML часто описываются в виде трех типов:
- Отдельная (detached) подпись
является дополнительными данными, внешними по отношению к подписываемому
элементу данных.
Такая подпись может размещаться вне подписываемого документа, например, на сетевой странице, полученной с помощью HTTP, но она может также содержаться в подписываемом документе в качестве родственного элемента подписи. - Оборачивающая (enveloping) подпись производится вокруг данных, содержащихся в самом элементе подписи.
- Обернутая (enveloped) подпись - это подпись, выполненная внутри данных, содержащих сам элемент подписи, например, внутри всего документа.
Криптографический сервис-провайдер LCXMLDSig
поддерживает все три типа ЭЦП XML с использованием алгоритмов российской
криптографии. Заметим, что сам
этот провайдер не содержит реализации криптографических алгоритмов, а
использует для генерации и проверки ЭЦП криптографические
сервис-провайдеры
более низкого уровня, например, LCPKCS11 или LCJCE.
Документация
- Криптографический сервис-провайдер Java LCXMLDSig. Руководство программиста скачать