Приложение "PDF подпись" создано по технологии Java Web Start и предназначено для наложения/ проверки цифровой подписи PDF документов. Поддерживаемые операционные системы: Windows XP/2003/7/2008 с установленой виртуальной машиной Java 1.6 и выше. Поддержка опрационных систем Linux, Unix и др. будет реализована в следующих версиях.

Java Web Start включен в Java Runtime Environment (JRE) виртуальной машины Java. JRE - минимальная реализация виртуальной машины и может быть загружена с сайта Oracle.

Поддерживаемые криптографические алгоритмы:

Приложение загружается по протоколу JNLP (Java Network Launching Protocol). После загрузки приложения, созданного по технологии Java Web Start, его следует запустить на выполнение вне браузера. При первом запуске, на рабочем столе создается иконка приложения. Технология Java Web Start обеспечивает поддержку автоматического обновления приложения.

Примечание. Приложение хранится во временных Интернет файлах Java (кэшированные приложения, cached Applications). Удалить можно через консоль Java очисткой временных Интернет файлов (Temporary Internet Files). Для повторной инсталляции следует загрузить JNLP файл и запустить его на выполнение.

Условие лицензирования: для использования физическими лицами - свободное; для использования юридическими лицами - коммерческое.

При первом старте PDFSigner выдется окно "Лицензионные условия". Только после согласия Пользователя с указанными условиями PDFSigner стартует, в противном случае, приложение закрывается.

 

Краткое описание

1. Общие сведения

Поддерживаемые языки интерфейса : украинский, русский, английский.

Назначение. Компьютерная программа PDFSigner© и программное обеспечение связанных с ней инструментов, в том числе: Java JCE криптопровайдер "AMBProvider©" (ambprovider.jar), различные инструменты (tools), в том числе для работы с хранилищами крипто ключей "AMB API©" (ambapi.jar), библиотека обработки PDF документов "PDF API©" (pdfapi.jar), - предназначена для формирования/ проверки цифровой подписи PDF документов, в соответствии с международным стандартом ISO 32000-1:2008 "Document management -- Portable document format -- Part 1: PDF 1.7", а также серией стандартов Европейского института телекоммуникационных стандартов (ETSI, European Telecommunications Standards Institute):

Применяемые в Adobe Acrobat криптографические алгоритмы. Актуальный список поддерживаемых алгоритмов подписи, которые можно использовать в продуктах Adobe Acrobat, можно найти в ISO 32000-1 (п.12.8.3.3.2, таблица 257). Это такие алгоритмы (для PDF 1.6 & 1.7, Adobe Acrobat 9 & X): RSA с SHA1, SHA256, SHA384, SHA512; и DSA c SHA1. Использование других алгиритмов приводит к ошибке "Неподдерживаемый алгоритм" (если используется не RSA или DSA алгоритм) или "Подпись неверна" (если используется не предусмотренный хеш алгоритм), хотя на деле подпись абсолютно валидна. Так для документа с тремя подписями на: первая и вторая - RSA алгоритме, третья - ДСТУ 4145 алгоритме имеем в Adobe Acrobat:

Примечание. Для отображения подписи как "Подпись действительна" требуется согласно политике Adobe Acrobat первый (и один) раз установить явно доверие сертификату подписанта. Для этого необходимо кликнуть на подписи и в окне "Свойства подписи" нажать кнопку "Показать сертификат...", затем в окне "Программа просмотра сертификатов" выбрать закладку "Надежность" и нажать кнопку "Добавить в список надежных пользователей":

Первая подпись в приведенном примере показывает предупреждение ("Действительность неизвестна"), т.е. неизвестна действительность сертификата на момент проверки подписи:

При выборе третьей подписи (ДСТУ 4145-2002) в Adobe Acrobat получаем "Неподдерживаемый алгоритм":

Проверка (как и формирование) подписи для алгоритмов, не поддерживаемых в Adobe Acrobat, может быть выполнена в PDFSigner.

Примечание. Для руководства по выбору алгоритма цифровой подписи можно обратиться к стандарту ДСТУ ETSI TS 102 176-1 "Електронні підписи та інфраструктури (ESI). Алгоритми та параметри безпечних електронних підписів. Частина 1. Геш-функції й асиметричні алгоритми" (ETSI TS 102 176-1 V2.0.0 (2007-11) - Electronic Signatures and Infrastructures (ESI) - Algorithms and Parameters for Secure Electronic Signatures - Part 1: Hash functions and asymmetric algorithms).

Отметим, что использование хеш алгоритма SHA1 не рекомендуется, и в настоящее время прекращено в некоторых странах; cледовательно, рекомендуется использование других алгоритмов хэширования. Поддерживаемые

PDFSigner криптографические алгоритмы. В PDFSigner могут использоваться такие крипто-алгоритмы цифровой подписи:

Поддерживаемые PDFSigner объекты безопасности:

Списки отзозванных сертификатов (CRL) , опционально могут добавляться в структуру цифровой подписи; подтверждают факт, что статус отзыва сертификата (валидность) был проверен на момент формирования цифровой подписи документа.

Ограничения текущей версии : При проверке подписи поддерживается неограниченной количество меток времени, как невидимых самостоятельных объектов, и неограниченное количество видимых и невидимых цифровых подписей. При формировании подписи колическво видимых цифровых подписей ограничено - максимум четыре подписи, размещаемых в нижней строке последней страницы документа. Шифрование не поддерживается.

2. Термины

Объект безопасности - это 1) невидимая метка времени как самостоятельный объект документа, 2) невидимая цифровая подпись, 3) видимая цифровая подпись.

Редакция документа - при добавлении к контексту документа одного из объектов безопасности фиксируется редакция (версия) документа, например, документ, имеющий две цифровые подписи имеет редакцию №1 (после добавления первой подписи) и редакцию №2 (после добавления второй подписи).

Валидность редакции документа (или цифровой подписи) - означает, что контекст документа, который был подписан, не изменялся после его подписания.

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

Примечание. Добавление/удаление/изменение к документу аннотаций/комментариев в виде графической печати (Stamp), графического зачеркивания/подчеркивания (Ink), текстов, подкрашиваний и т.д. является модификацией документа, т.к. искажает отображение (печатную форму) документа. Документ с такими изменениями считается не валидным (между редакциями документа внесены изменения).

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

Цепочка сертификатов - это последовательность сертификатов, которая включает: сертификат конечного пользователя/ подписанта; сертификат центра сертицикации "А", выдавшего сертификат пользователя; сертификат центра сертицикации "Б", выдавшего сертификат центра "А"; и т.д. до сертификата Центрального Заверяющего Органа (ЦЗО), корневого сертификата цепочки.

Валидность сертификата - означает, что сертификат: а) вступил в действие, б) его срок действия не истек, в) он не отозван/ не блокирован; г) подпись сертификата (выдавшим центром сертификации) верна, д) сертификат предназначен для той цели, для которой он использован (цели могут быть, например, для подписи, для шифрования и т.д.).

Применяемые иконки - иконки с зеленого цвета флажком означают, что все успешно; иконки с желтого цвета треугольником и восклицательным знаком внутри означают, что не все удалось проверить, т.е. валидность может быть под вопросом (требуется внимание и, возможно, дополнительные проверки); иконки красного цвета означают ошибку.

Проверка подписи

При старте приложения PDFSigner необходимо выбрать файл PDF документа (рис.1, п.1).


Рис.1. Окно приложения (файл не выбран)

При загрузке выбранного PDF файла выполняются проверки:

1) Определяется количество объектов безопасности (отображаются в стоке под выбранным файлом (рис.1, п.2); если документ не подписан и нет невидимых меток времени, то количество объектов безопасности равно нулю.

2) Проверяется валидность каждого объекта безопасности.

3) Проверяется валидность документа, т.е. не изменялся ли контекст докумемента между его редакциями.

4) Проверяется валидность сертификатов подписи и их цепочек сертификатов.

После всех проверок выбранного PDF документа отображается главное окно приложения.

Рис.2 Суммарная информация

Суммарная информация отображается в закладке "Суммарные" сведения (рис.2., п.4):


Рис.2. Окно приложения (файл выбран)

В окне приложения отображается общий результат проверок (рис.2, п.1), дерево объектов безопасности (рис.2, п.2).

Выбранный документ можно посмотреть (рис.2, п.3), используя установленный в операционной системе инструмент/ программу просмотра PDF документов, например, Adobe Reader X.

В закладке "Суммарные" (рис.2, п.4) отображается суммарная информация о выбранном объекте безопасности, а если объект не выбран - о всех объктах в целом.

В этом примере имеется четыре видимые цифровые подписи, сформированные разными криптопровайдерами на разных алгоритмах подписи, соответственно (сверху вниз по порядку их наложения, рис.4., п.2):

  1. Криптопровайдер "Microsoft Enhanced Cryptographic Provider v1.0", алгоритм ключа RSA (1024 бит), алгоритм хеш SHA1, алгоритм подписи SHA1 с RSA (SHA1withRSA), хранилище ключа подписи - Microsoft-хранилище.
  2. Криптопровайдер "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider", алгоритм ключа DSA (1024 бит), алгоритм хеш SHA1, алгоритм подписи SHA1 с DSA (SHA1withDSA), хранилище ключа подписи- Microsoft-хранилище.
  3. Криптопровайдер "CESARIS DSTU 4145-2002(PB) and ECDH Cryptographic Provider" алгоритм ключа ДСТУ 4145-2002, полиномиальный базис (DSTU4145PB, 163 бит), алгоритм хеш ГОСТ 434.311-95 (GOST34311), алгоритм подписи ГОСТ 434.311-95 с ДСТУ 4145-2002 (DSTU4145PB), хранилище ключа подписи - смарт-карта Обертюр (AuthentIC Card v220 T0 5.4).
  4. Криптопровайдер "Oberthur Card Systems Cryptographic Provider" алгоритм ключа RSA (1024 бит), алгоритм хеш SHA256, алгоритм подписи SHA256 с RSA (SHA256withRSA), хранилище ключа подписи - смарт-карта Обертюр (AuthentIC Card v220 T0 5.4).

Как видно по иконкам объектов безопасности (рис.2, п 2), первый и четвертый объект провены успешно, второй и третий требуют внимания - не все проверки валидности удалось выполнить (см.дальше).

После выбора одного из объектов безопасности в закладках отображается детальная информация об этом объекте:


Рис.3. Суммарная информация (видимая подпись)

В структуру подписи может входить цепочка сертификатов, которая отображается как поддерево сверху от сертификата подписи (подписанта) вниз до корневого сертификата (ЦЗО) (рис.3, п.1). Информация в закладке "Суммарная информация" не зависит от выбора сертификата в цепочке. Информация о выбранном сертификате цепочки отображается в закладке "Сертификат & CRL" (см. дальше). Сертификат подписи можно посмотреть (рис.3, п.2), имеющимся в операционной системе инструментом просмотра сертификатов.

Время подписания (рис.3, п.3) показывается как лучшее время, из указанного в структуре подписи. Это означает, что если в структуре подписи содержится метка времени, то время подписания берется из метки времени (см. рис.4), иначе берется время локального компьтера, на котором формировалась подпись (как правило, это время всегда включается в структуру подписи). Если в структуре подписи не указано время, то поле остается пустым. В этом примере в подписи содержится лишь время локального компьтера (рис.3, п.3, п.7).

В закладке показана также суммарная информация о валидации этой редакции документа (рис.3, п.5) и валидации цепочки сертификатов (рис.3, п.6). Дополнительно показывается информация о наличии в документе потенциально опасного содержания - скриптов JavaScript, которое может искажать визальное (и/или при печати) представление с фактическим и др.

В примере, приведенном ниже, в документе присутствует невидимая подпись (рис.4, п.2), при этом срок действия сертификата подписи уже истек (рис.4, п.3). В подписи содержится локальное время компьютера, на котором выполнялось подписывание, и метка времени (рис.4, п.4), поэтому в позиции "Время подписания" (рис.4., п.1) указано время, взятое из метки времени, как более достоверная информация о времени подписания. Следует отметить, что разница локального времени компьтера и времени в метке времени всегда имеет место из-за затрат времени на запрос и получение метки времени, которая запрашивается непосредственно после формирования подписи.


Рис.4. Суммарная информация (невидимая подпись)

Информация о редакции документа

Информация о редакции документа отображается в закладке "Документ" (рис.5)


Рис.5. Информация о редакции документа

Общая информация о выбранной редакции (рис.5,п.1) содержит данные о типе объекта безопасности и о результатах валидации редакции документа. Также указаны примененные при подписывании крипто алгоритмы хеш функции и подписи (рис.5, п.2). Выбранную редакцию, номер которой показан как "Версия документа" (рис.5,п.3), можно посмотреть (рис.5,.п.5), установленным в операционной системе средством просмотра PDF-файлов. Индикация результата валидации этой редакции показана на рис.5,п.4. Также отображается информация о наличии/отсутствии в структуре подписи списков блокирования (CRL) (рис.5,п.6).

В примере на рис.6 показана информация о документе, с внесенными изменениями после наложения первой подписи:


Рис.6. Информация о внесении изменений в документ
Информация об ошибке редакции/документа отобращается иконкой с крестом на красном фоне (рис.6,п.1,п.3), а также в строке ощей информации (рис.6,п.4). В этом примере первая редакция (первая подпись) является валидной (рис.6.,п.2), но после ее подписания документ был изменен и подписан второй подписью (рис.6,п.3).

Информация о дате/времени подписания

Закладка "Дата/Время" содержит информацию о дате/ времени подписания выбранной версии документа.


Рис.7. Время локального компьютера

Формат времени (рис.7,п.1) - это "HH:ММ:SS.ХХХ ±[hh][mm]), где HH - часы (24 часа), ММ - минуты, SS - секунды, ХХХ - тысячные доли секунды. После знака "±" указан часовой пояс (по UTC, относительно Гринвичского меридиана): hh - часы, mm - минуты.

Информация об сточнике времени подписания (из метки времени или из времени локального компьютера) показана на рис.7,п2.

В этом примере метка времени отсутствует в подписи, поэтому берется время локального компьтера.

 


Рис.8. Время из метки времени подписи

В примере на рис.8 подпись содержит метку времени, поэтому время подписания указано из метки времени (рис.8,п.1).

Одновременно приводится время из локального компьтера (рис.8,п.2).

Выполнена проверка валидации метки времени (рис.8,п.3) и указан сертификат подписи метки времени (рис.8,п.4), который можно посмотреть, используя инструмент операционной системы для просмотра сертификатов.

Информация о выбранном сертификате

В закладке "Сертификат & CRL" предоставлена информация о выбранном сертификате (любом сертификате имеющейся цепочки) и его списках блокированных сертификатов (CRL):


Рис.9. Информация о сертификате

Предоставляется информация о сертификате и возможность посмотреть сертификат (рис.9,п.1) средствами операционной системы.

Отображается информация о результате валидации сертификата (рис.9,п.2).

В этом примере списки CRL не включены в структуру подписи, поэтому кнопки "Показать базовый CRL..." и "Показать дельта CRL..." (Новейший CRL) на момент подписания не разрешены.

Есть возможность (и рекомендуется) проверить текущий статуса отзыва сертификата (рис.9,п3).


Рис.10. Проверка текущего статуса
После выбора проверки текущего статуса (нажать кнопку "Проверить на CRL...", рис.9,п3) выполняется запрос на получение списков CRL и проверка статуса отзыва сертификата. Результат проверки отображается (рис.10,п1), с указанием издателя списков CRL (рис.10,п2). Есть возможность посмотреть текущие базовый CRL и/или дельта CRL (Новейший CRL) (рис.10,п.3).

Рис.11. Валидность сертификата на момент подписания
Если на этапе подписания документа была выполнена проверка статуса отзыва сертификата (CRL), и списки CRL добавлены в структуру подписи (как подтверждение валидности сертификата на момент подписания), то информация об этом отобращается как показано на рис.11, п.1.

4. Подписание документа

Конфигурирование

Для конфигурирования операции подписания документа необходимо выбрать пункт меню Конфигурация/Безопасность..., - переходим в окно:

Примечание. Сертификаты пользователя должны быть интегрированы с операционной системой Windows. Это (их наличие) можно проверить через браузер Internet Explorer - меню "Инструменты(Tools)/Интернет опции(Internet Option)/Содержание(Content)/Сертификаты(Certificates)" в закладке "Личные(User)".

Если у пользователя имеется несколько сертификатов, необходимо выбрать тот, которым будет подписываться документ (как сертификат по умолчанию).

Примечание. В текущей версиии не поддерживается шифрование документа, поэтому выбор сертификата шифрования можно не выполнять.

Кроме выбора сертификата подписи, можно выбрать адрес основной (он задан при инсталляции) и дополнительной служб метки времени. Только одна из служб может быть выбрана по умолчанию.

Завершить конфигурирование следует нажатием кнопки "Сохранить".

Подписание документа

Считается, что "Конфигурирование" выполнено. Для подписания необходимо:

1. Выбрать файл *.pdf для подписания. При загрузке файла, если он уже имеет подписи, проверяются все подписи и выводится информация об имеющихся подписях (см. детально раздел 3. Проверка подписи), а если документ не подписан, то информация о подписях будет отсутствовать.

Примечание. Максимально допустимое число подписей на документе (в текущей версии) - четыре.

2. Для подписания документа новой подписи нажать кнопку "Добавить подпись". В ходе операции потребуется ввести ПИН-код (пароль) доступа к ключу подписи. Подписанный документ сохранается в файле в той же папке, где находился исходный документ. Имя файла подписаннного документа - это имя исходного файла, к которому добавляется расширение ".sign.pdf".

Разработчик: ООО "Базис"; 04107, Украина, г.Киев, ул. Тропинина 4-Б. tech@itsway.kiev.ua