Как создать PADES с использованием автономной подписи и ответа OCSP

Я в тупике, пытаясь выяснить Java-пакет Esig DSS только из документации и источника. (eu.europa.esig.dss.* дерево)

Мы подключаемся к шведскому BankID, чтобы подписывать PDF и простые текстовые сообщения. Ответ - это SOAP XML с полями для подписи и ответом OCSP.

Конечная цель состоит в том, чтобы объединить эти две части в один объект "действительная подпись", который можно встроить в PDF (используя DSS и PDFbox).

Содержимое полей BankID Soap, похоже, имеет правильный формат для инструментов DSS:

Подпись может быть загружена с

DSSDocument sigDoc = new InMemoryDocument(xmlSignature)
SignedDocumentValidator documentValidator = SignedDocumentValidator.fromDocument(sigDoc);
// ...
AdvancedSignature advancedSignature = documentValidator.getSignatures().get(0);

и ответ OCSP можно прочитать с

ExternalResourcesOCSPSource source = new ExternalResourcesOCSPSource(ocspBytes);
BasicOCSPResp basicOCSPResp = source.getContainedOCSPResponses().get(0);

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

Вопрос: Как я могу получить действительный OCSPToken из ExternalResourcesOCSPSource?

Я продолжаю бегать кругами, пытаясь объединить их в одну AdvancedSignature (если это то, что я могу использовать для встраивания в PDF).

1 ответ

Решение

Расширенная цифровая подпись, предоставленная третьей системой, не может использоваться для создания действительного подписанного PDF

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

Вероятно, он предоставляет отдельную подпись CAdES или XAdES в сообщение SOAP, которое может обрабатываться DSS( DSS предоставляет API высокого уровня для подписи документов с использованием форматов XAdES, CAdES, PAdES и aSiCS).

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

XAdES и PAdES концептуально похожи, но структурно различны. Подпись XAdES является XML, а PAdES - двоичным. Подпись XML не может быть преобразована в PAdES

PAdES и CAdES используют CMS, оба являются двоичными и используют синтаксис ASN.1. Но подписанное сообщение отличается, подпись CAdES рассчитывается для всего документа (и некоторых других атрибутов), а PAdes использует определенные данные документа PDF. Поэтому подпись cades также не может быть преобразована в PAdes.

Другие вопросы по тегам