2014-10-20 2 views
3

Не могли бы вы, пожалуйста, объяснить мне более подробно, в конце концов, давая мне пример (один для прикрепленного и один для отсоединения) от того, что означает iText отдельная подпись?iText отдельные средства оповещения

Я нашел эту замечательную документацию: iText digital signature pdf о цифровой подписи iText, но я все еще не уверен, что понимаю концепцию отпечатанной подписи iText.

Readig в documetation (см ссылку) Я нашел это определение:

В PDF, иногда ссылаться на отдельную подпись. Согласно Википедии, отдельная подпись - это тип цифровой подписи, которая хранится «отдельно от ее подписанных данных», а не «объединена в один файл». Это определение не совсем корректно в контексте PDF: подпись заключена в файл PDF, но атрибуты подписи являются «частью подписи», а не «хранятся в словаре подписи».

, где не ясна для меня, что такое «атрибутов подписи» означает (что подпись атрибуты это смотрите?)

Обратите внимание, что автор статьи (документации IText) он работает с этими обрывками подписанный файл PDF:

%PDF-1.4 
%âãÏÓ 
3 0 obj 
<</F 132/Type/Annot/Subtype/Widget/Rect[0 0 0 0]/FT/Sig 
/DR<<>>/T(signature)/V 1 0 R/P 4 0 R/AP<</N 2 0 R>>>> 
endobj 
1 0 obj 
<</Contents <0481801e6d931d561563fb254e27c846e08325570847ed63d6f9e35 ... b2c8788a5> 
/Type/Sig/SubFilter/adbe.pkcs7.detached/Location(Ghent)/M(D:20120928104114+02'00') 
/ByteRange [0 160 16546 1745 ]/Filter/Adobe.PPKLite/Reason(Test)/ContactInfo()>> 
endobj 
... 
9 0 obj 
<</Length 63>>stream 
q 
BT 
36 806 Td 
0 -18 Td 
/F1 12 Tf 
(Hello World!)Tj 
0 0 Td 
ET 
Q 
endstream 
endobj 
... 
11 0 obj 
<</Type/Catalog/AcroForm<</Fields[3 0 R]/DR<</Font<</Helv 5 0 R 
/ZaDb 6 0 R>>>>/DA(/Helv 0 Tf 0 g)/SigFlags 3>>/Pages 10 0 R>> 
endobj 
xref 
0 12 
0000000000 65535 f 
... 
0000017736 00000 n 
trailer 
<</Root 11 0 R/ID [<08ed1afb8ac41e841738c8b24d592465><bd91a30f9c94b8facf5673e7d7c998dc>]/Info 7 0 R/Size 12>> 
startxref 
17879 
%%EOF 

ответ

4

в то время как белая бумага цитировала, Digital Signatures for PDF documents по Bruno Lowagie, на самом деле является обязательным чтением для тех, кто пытается создать интегрированные подписи PDF с помощью IText (и хороший источник информации, даже если вы не используя iText) Я согласен, что объяснение в нем использование слова «отделенного» в «отделенной PDF подписи» на самом деле не попало домой:

ПРИМЕЧАНИЯ: В PDF, мы иногда относимся к отдельностоящему подписи , Согласно Википедии, отдельная подпись - это тип цифровой подписи, которая хранится «отдельно от ее подписанных данных», так как противопоставляется «объединенному в один файл». Это определение не совсем корректно в контексте PDF: подпись заключена в файл PDF, но атрибуты подписи являются «частью подписи», а не «хранятся в словаре подписи».

Прежде всего, призывать эти подписи «отстраненные» не является сроком, установленным любой текущей спецификацией. Причина, почему мы делаем это в любом случае, является то, что идентификатор используется в подписных словарях таких подписей (adbe.pkcs7.detached или ETSI.CAdES.detached) содержит это слово.

Таким образом, вопрос на самом деле должен быть: Почему эти идентификаторы содержат слово «отдельно»?

Чтобы понять это, необходимо знать, что первоначально существовало два вида интегрированных подписей PDF, которые встраивают в PKCS # 7 подписи контейнера в PDF, соответственно идентифицированной adbe.pkcs7.detached и adbe.pkcs7. sha1.

Разница между этими двумя типами сигнатур является то, что

  • для adbe.pkcs7.sha1 сигнатуры SHA1 дайджест для подписанных диапазонов байт PDF вычисляется и встроенный в ContentInfo структуре контейнер подписи, и этот внедренный пакет данных подписан в режиме PKCS # 7;
  • для adbe.pkcs7.detached подписи, с другой стороны, ContentInfo структура контейнера подписи остается пустым и подписанные диапазоны данных внешнего документа подписаны в PKCS # 7 образом.

Таким образом, в случае adbe.pkcs7.sha1 подписей фактически подписанные данные встроены в контейнере, а в случае adbe.pkcs7.detached подписи на самом деле подписанные данные не являются.

Таким образом, на уровне подписи контейнеров PKCS # 7 подписанных данные и подписи являются отдельными друг от друга в последнем случае.

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

другой тип отдельных подписей (ETSI.CAdES.detached) построены аналогично к adbe.pkcs7.detached контейнеры. Различия между ними в основном связаны с профилированием дополнительных атрибутов контейнера.

аргументации белой бумаги в отношении будучи частью контейнера подписи фактически иллюстрируют разницу между всеми типами подписи, упомянутыми выше и adbe.x509.rsa_sha1 подписей который является третьим оригинальным интегрированным типом PDF подписи атрибуты. Этот тип не основан на контейнерах подписи, а довольно голых подписях; таким образом, любая дополнительная информация в этом случае должна храниться в их собственных структурах в PDF

Смежные вопросы