Проверка электронных подписей с помощью PDFBox

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

Экономическое обоснование подписания этих форм заключается в использовании неформальных процессов электронной подписи (цифровое представление мокрой подписи), таких как «штамп» подписи в Adobe Reader с изображением подписи клиента или рисование на сенсорном экране на iPad. До сих пор мне не удавалось постоянно проверять этот тип подписи и даже постоянно поддерживать состояние PDF таким образом, чтобы он все еще мог быть прочитан PDFBox после такого типа церемонии подписания.

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

У меня есть несколько вариантов:

  1. Выясните, как последовательно идентифицировать электронные подписи и воспроизвести церемонию подписания без потерь для обучения клиентов.
  2. Внесите изменения в поле формы цифровой подписи, если это возможно, чтобы принимать электронные подписи, если это вообще возможно.
  3. У меня есть небольшое обходное решение, использующее самую последнюю версию Acrobat для размещения поля формы изображения над областью подписи, которое прекрасно работает, за исключением одного: все программное обеспечение, которое я пробовал, считывает этот тип поля формы как кнопку. Есть ли способ заставить его распознавать изображение или любое более современное программное обеспечение для чтения PDF, которое может обнаруживать эти поля?

Я хотел бы загрузить пару образцов PDF-файлов, но, конечно, все они являются собственностью компании. Достаточно сказать, что у нас нет волшебников, которые делают удивительные вещи с формами... это все ваши базовые AcroForms, и я пытаюсь выяснить, как настроить область подписи.

Спасибо.


person Michael Sanderson    schedule 11.01.2018    source источник
comment
Все, что вам нужно, это действительно только ответ на вопрос в пункте 3? Или вы также хотите внести свой вклад в описание остальных обстоятельств?   -  person mkl    schedule 11.01.2018
comment
Я прочитал ваш ответ ниже, и вы выразили словами то, что я изо всех сил пытался рассказать о нашем бизнесе; что электронные подписи на самом деле не что иное, как прославленный флажок. Тем не менее, я был бы признателен за любые другие мысли или решения, которые у вас есть для этого потока. По сути, они хотят заменить использование службы электронной подписи без предоставления внешнего интерфейса. Это не сильно облегчило мою задачу...   -  person Michael Sanderson    schedule 11.01.2018
comment
Вы говорите, что это о вашей компании и клиентов вашей компании. Так вы знаете каждого клиента. Таким образом, вы можете создать небольшой частный центр сертификации и самостоятельно выдавать сертификаты своим клиентам. Затем они могут ставить цифровую подпись, используя эти сертификаты (и соответствующий закрытый ключ). Это возможно с помощью Adobe Reader, если вы подготовили формы соответствующим образом.   -  person mkl    schedule 11.01.2018


Ответы (1)


Что касается вашего фактического вопроса:

У меня есть небольшое обходное решение, использующее самую последнюю версию Acrobat для размещения поля формы изображения над областью подписи, которое прекрасно работает, за исключением одного: все программное обеспечение, которое я пробовал, считывает этот тип поля формы как кнопку. Есть ли способ заставить его распознавать изображение или любое более современное программное обеспечение для чтения PDF, которое может обнаруживать эти поля?

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

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

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


Несколько замечаний по всему сценарию:

... подпись конечного пользователя должна быть подтверждена.

Экономическое обоснование для подписания этих форм заключается в использовании неофициальных процессов электронной подписи (цифровое представление мокрой подписи).

В отличие от цифровых подписей, основанных на сертификатах, с такими подписями вряд ли можно сделать что-либо, что заслуживает названия «Проверка».

Хорошо, вы можете искать изображение в PDF в каком-то поле эмулированного изображения, но у вас нет гарантии, что человек, чья мокрая подпись может быть видна на этом изображении, поддерживает данные в этой форме, не говоря уже о том, что действительно подписал его лично. Так же вероятно, что кто-то другой просто отсканировал подпись этого человека с какого-то другого документа, подписанного от руки, и заполнил форму, используя этот скан...

До сих пор мне не удавалось последовательно проверять этот тип подписи.

Должна быть возможность извлечь большинство таких мокрых подписей.

  • как растровые изображения, добавленные прямо или косвенно к содержимому страницы,
  • или как растровые изображения, добавленные прямо или косвенно к некоторому внешнему виду аннотации (например, к кнопке),
  • или как InkList или Path аннотации Ink,
  • или как Вершины или Путь аннотации PolyLine.

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

и даже не смог последовательно поддерживать состояние PDF, чтобы он все еще мог быть прочитан PDFBox после такой церемонии подписания.

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

person mkl    schedule 11.01.2018