Как получить токен TimeStamping и применить его к файлу PDF?

Я пытаюсь получить маркер Time Stamping с сервера и применить этот токен к файлу PDF, который будет подписан позже.
Я спрашиваю, если кто-то уже работает с подобной концепцией, используя Java
У меня есть некоторая информация о TimeStamping Authority (TSA), такая как:

  • Политика: 1.2.504.1.1.1.1.1.3.1.1
  • Формат: RFC 3161
  • Алгоритм: SHA1 связан с RSA с 2048 битами.
  • Часовой пояс UTC


Как получить сертифицированную дату и поместить ее в файл PDF?

1 ответ

Ваш вопрос может быть разделен на два подвопроса:

1) как генерировать подпись в соответствии с протоколом отметки времени (TSP), описанным в RFC 3161

2) как интегрировать подпись в файл PDF?

Подвопрос 1. Чтобы решить первый вопрос, вам нужны два участника: клиент TSP и сервер TSP. Клиент должен отправить запрос на сервер (как и при любом обмене данными между клиентом и сервером), а сервер отправит ответ клиенту. Как вы уже упоминали, TSA (Управление штампами времени) отвечает за обработку запроса. Задача состоит в том, чтобы иметь возможность отправить запрос на сервер TSA. Я называю это вызовом, потому что построение запроса по TSP сложное. Каждый клиентский запрос должен быть отформатирован как TimeStampReq (см. RFC 3161, раздел 2.4.1), и TSP также расширяет стандарт, называемый синтаксис криптографических сообщений (CMS), который описан в RFC 5652. Чтобы помочь вам на этом этапе, вы можете использовать одну криптографическую библиотеку, такую ​​как BouncyCastle или Eldos, которая реализует спецификации CMS и / или TSP в Java и / или C#.

BouncyCastle мой любимый, я уже использовал его. Это сделает следующую задачу для вас из коробки:

  1. Хэшируйте PDF/ документ, который вы хотите подписать, с помощью выбранного вами алгоритма хеширования (убедитесь, что этот алгоритм всегда защищен или рекомендуется)
  2. Создайте TimeStampReq для вас, используя параметры, которые вы передали

Подвопрос 2: этот шаг не является необходимым для обеспечения целостности документа или самой отметки времени. Вы можете сохранить созданную метку времени и подписанный PDF/ документ отдельно. Я не эксперт PDF. Но я знаю, что в него можно встроить цифровую подпись. Я не могу сказать вам, какой формат цифровой подписи (подписей) поддерживается какой версией PDF и как его интегрировать в PDF.

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