2013-08-26 3 views
1

Я пытаюсь подписать PDF с rsa_sha1 (Adobe.PPKLite> adbe.x509.rsa_sha1), и у меня есть две проблемы/вопросы:Подписание PDF с rsa_sha1

  1. Не знаю, если фактическое содержание PDF заданный ByteRange, должен быть подписан или переварить значение этого содержимого?
  2. Есть ли разница, если сертификат помещен перед полем Подписи или после?

ответ

2

Я пытаюсь подписать PDF с rsa_sha1 (Adobe.PPKLite> adbe.x509.rsa_sha1)

Вы уверены, что вы хотите использовать этот подфильтр? Все дальнейшее развитие в области комплексного подписи PDF использует интегрированные CMS контейнеров, а не голый PKCS # 1 подписей ...

Не знает, если фактическое содержание PDF определяется ByteRange должно быть подписано, или переваривать значение, что содержание?

В отличие от adobe.pkcs7.sha1 подписей в стиле и так же, как adobe.pkcs7.detached подписи стиля, весь диапазон байтов подписан в adobe.x509.rsa_sha1 подписей в стиле, а не просто значение дайджеста этого содержимого. В этом отношении adobe.x509.rsa_sha1 предпочтительнее adobe.pkcs7.sha1, потому что (несмотря на появление sha1 в названии) он делает не силы использовать SHA1, но вы можете использовать лучше переваривать алгоритмы ,

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

Есть ли разница, если сертификат помещается перед Поле подписи или после?

Оба сертификата и подпись являются элементами в словаре словаря PDF, и по определению порядок элементов в таком словаре не имеет значения. Очевидно, что при создании подписи заказ должен оставаться фиксированным (фактически не просто порядком, а точным положением и содержимым).

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

(раздел 7.3.7 в ISO 32000-1)

PS: Спецификация говорит, что подпись

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

(раздел 12.8.1 в ISO 32000-1)

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

Для подписей диапазона байта, содержание должно быть шестнадцатеричная строка с «<» и «>» разделители. Он должен соответствовать точно в пространстве между диапазонами, указанными ByteRange.

(раздел 12.8.3.3.2 в ISO 32000-1)

что делает should в цитировании до фактического shall, если требуется совместимость. Например. Adobe Reader требует такого определения диапазона.

Более новые стандарты, например. документы технической спецификации ETSI PAdES, еще более явно требующие этого.

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