2015-12-31 13 views
0

У меня есть код, который реализует TSA-сервер в формате RFC 3161. Когда я пытаюсь подписать файл PDF с отметкой времени с помощью TSAClientBouncyCastle, я получаю подпись, где данные сертификата не используются «отображаться.ВПодписание PDF с меткой времени: данные сертификата не отображаются в свойствах метки времени

enter image description here

Кто-нибудь знает, как решить это?

Я могу написать здесь код, но я не знаю, какую часть его. Было бы неплохо, если бы кто-то мог привести меня к определенному разделу в RFC, тогда я опубликую соответствующую часть кода, и мы можем обсудить его. Заранее спасибо

Ссылки на образец PDF-файл https://drive.google.com/file/d/0B61KdyZ43x-9cEk5YVV6WVd4WUU/view?usp=sharing

+0

Просьба поделиться образцом PDF, отмеченным вашим кодом для анализа. – mkl

+0

Я добавил ссылку на мое главное сообщение. Спасибо – AGDev

ответ

1

причина, почему определенные временные метки деталь органа не указывается в Properties Подписи диалога под Advanced Signature Properties диалога вы имеете перед в вашем скриншоте:

The signature includes an embedded timestamp but it is invalid.

Таким образом, вы не только должны проверять ваш код подписи PDF, а также ваш код , который реализует сервер TSA в формате RFC 3161 или сертификаты, которые он использует.

АСП сертификат

Ваш сертификат TSA является недействительным.

Копаясь под вашей подписью, я в конце концов просмотрел сертификаты. Как оказалось, вы, похоже, используете тот же сертификат для подписи подписи и отметки времени. Это не сработает!

Cf спецификация:

ВСТ должен подписать каждое сообщение с отметкой времени с ключом зарезервирована специально для этой цели. TSA МОЖЕТ иметь отдельные закрытые ключи, например, для различных политик, разных алгоритмов, различных размеров секретного ключа или для повышения производительности. соответствующий сертификат должен содержать только один экземпляр расширенного ключа расширения поля использования в , как определено в [RFC2459] раздел 4.2.1.13 с KeyPurposeID, имеющей значение:

id-kp-timeStamping. This extension MUST be critical. 

(Section 2.3. Identification of the TSA of RFC3161)

В вашем сертификате пользователя, в частности, не указано требуемое расширенное использование ключа, обозначающее его как сертификат временной маркировки.

+0

, когда я сменил сертификат на другой с использованием ключа времени штамповки, он работает! спасибо alot – AGDev

+0

К сожалению, я снова застрял с более сложной проблемой.Я пытаюсь подписаться с сертификатом, созданным моим отделом PKI, при необходимости он содержит id-kp-timeStamping, но у меня такая же проблема. Я прикладываю пример плохого подписанного pdf [link] (http://jiom.org.il/files/badSignedPDF.pdf). Можно ли посмотреть, что не так? – AGDev

+0

@AGDev Он содержит расширение расширения расширенного ключа со значением 'id-kp-timeStamping', но оно не отмечено критическим. См. Выше, для целей штамповки времени он должен быть отмечен как критический. – mkl