Incorpore uma assinatura GPG em um arquivo PDF

7

É possível incorporar assinaturas GPG em arquivos PDF da maneira que pode ser feito com assinaturas X.509?

(Eu tenho usado o JSignPDF para assinar minhas faturas até agora, mas agora a lei relaxou um pouco, e não requer mais X.509 (só que eu ofereço alguma garantia de integridade e autenticidade, para a qual Eu acho que o GPG deve ser o suficiente.) Agora, eu sei que posso usar assinaturas separadas, mas não quero confundir meus clientes com o motivo pelo qual estou enviando esses arquivos * sig.

    
por PSkocik 02.10.2013 / 09:52

4 respostas

0

não pense que isso é possível ... porque contorna a ideia geral de assinatura de documento & verificação. consulte o Manual do GPG - a assinatura é mantida separadamente, simplesmente porque a incorporação modificaria o arquivo e portanto, tornaria a assinatura incorporada inválida.

a opção de linha de comando mais próxima pode ser gpg --clearsign .

veja também a diferença entre --sign e --clearsign :

--clearsign creates data + signature where the data remains human readable. You need OpenPGP to verify the signature, but if you just need to read the text, you do not need any special software. The data is human-readable.

O

LibreOffice também parece ser capaz de assinar arquivos PDF.

    
por 29.04.2018 / 07:46
0

Resposta ligeiramente diferente - você pode fazer assinaturas com dongles PGP, como o Yubikey NEO? Nossa abordagem era obter um certificado X.509 para uma chave no dongle PGP e depois usá-lo com o JSignPdf - a parte difícil era criar uma solicitação de certificação.

    
por 25.09.2018 / 13:10
0

Resposta parcial:

O processo de como a assinatura X.509 funciona é descrito pela Adobe em detalhe: Uma assinatura é apenas um objeto adicional no arquivo PDF, que contém, entre outros elementos, o intervalo de bytes para o qual a assinatura é feita. Então

The signing process is as follows:

  1. A document to be signed is turned into a stream of bytes.
  2. The entire PDF file is written to disk with a suitably-sized space left for the signature value as well as with worst-case values in the ByteRange array. ByteRange is an array of four numbers. The first number in each pair is the offset in the file (from the beginning, starting from 0) of the beginning of a stream of bytes to be included in the hash. The second number is the length of that stream. The two pairs define two sequences of bytes that define what is to be hashed. The actual signature value is stored in the /Contents key between the end of the first sequence and the beginning of the second one. In Figure 4, the hash is calculated for bytes 0 through 839, and 960 through 1200.
  3. Once the location of the signature value is known in terms of offsets in the file, the ByteRange array is overwritten using the correct values. Because the byte offsets must not change, extra bytes following the new array statement are overwritten with zeros.
  4. The hash of the entire file is computed, using the bytes specified by the real ByteRange value using a hash algorithm such as SHA-256. Acrobat always computes the hash for a document signature over the entire PDF file, starting from byte 0 and ending with the last byte in the physical file, but excluding the signature value bytes.
  5. The hash value is encrypted with the signer’s private key and a hex-encoded PKCS#7 object signature object is generated.
  6. The signature object is placed in the file on disk, overwriting the placeholder /Contents value. Any space not used for the signature object is overwritten with zeros.
  7. The PDF file is re-loaded in Acrobat to ensure that the in-memory and on-disk versions are identical.

Não há motivos para que alguém não consiga fazer isso com uma assinatura calculada por gpg.

Também deve ser óbvio agora que a incorporação da assinatura não "contorna a ideia geral de assinatura e verificação de documentos", conforme mencionado em outra resposta.

No entanto, não conheço nenhuma ferramenta em que esse processo (e a verificação de assinatura correspondente) já esteja implementado e seja facilmente disponível. Então, por razões de praticidade (agora), é aconselhável tentar isso, se você está enviando a assinatura para outras pessoas que precisam lidar com isso.

    
por 25.09.2018 / 14:10
-2

PortableSigner é uma ferramenta para assinatura digital (com certificados X.509) de arquivos PDF você pode baixá-lo aqui

link

    
por 02.10.2013 / 15:31