como verificar manualmente a assinatura do PDF (campo de conteúdo: rsaEncryption) [closed]

1

Gostaria de validar manualmente o documento PDF assinado da RSA, mas não estou recebendo assinatura diferente de um codificado dentro do PDF. Aqui estão os passos que eu segui, qualquer ajuda / dicas realmente apreciadas.

  1. Eu fiz um simples texto em PDF (~ 1Kb)
  2. Eu gero o arquivo pfx openssl com a chave RSA de 2048 bits adequada
  3. Eu fiz um upload da chave mencionada para o usuário do Windows certmgr
  4. usei a chave mencionada para assinar PDF via JSignPdf 1.6.3 (algoritmo de hash sha-256)

A saída das etapas acima é documento PDF devidamente assinado (barra superior verde). Em seguida, usei o notepad ++ para remover o campo contents conforme descrito na documentação da Adobe para receber o arquivo bruto para calcular se o hash corresponde à estrutura de conteúdo interno incorporado. Este passo foi bem sucedido no meu SHA-256.

Aqui está a saída do decodificador ASN.1 para o valor do campo de conteúdo do PDF:

2.16.840.1.101.3.4.2.1sha-256 (Algoritmo NIST)

1.2.840.113549.1.9.3contentType (PKCS # 9)

1.2.840.113549.1.7.1data (PKCS # 7)

1.2.840.113549.1.9.4messageDigest (PKCS # 9) 32 bytes

E271FBADC18080C7E8BD5F0FFBCA0BD77E488309E450D28B79B720D08F69F3FC

1.2.840.113549.1.1.1rsaEncryption (PKCS # 1) 256 bytes

6547B3C9658AA8C1C259A97F1B336A099677013EDABE315F9C18C4CE6B6341CAA7054…

Eu sou capaz de obter o mesmo valor calculando SHA-256 neste arquivo modificado manualmente como aquele incorporado em PDF (E271FB *).

O problema que estou enfrentando é que não consigo obter o último valor rsaEncryption manualmente no mesmo arquivo compatível com o sha-256 ou apenas com base no hash mencionado.

Aqui está o que eu tentei ..

  1. openssl dgst -sign ./domain.key file_hash.pdf > signature.bin
  2. openssl dgst -sha256 -sign ./domain.key -out signature.bin file_hash.pdf

Onde file_hash.pdf é o arquivo que sha-256 corresponde ao PDF em verde de JSignPDF e domain.key é a mesma chave importada para o Windows (com texto --- begin private key ---).

Você pode me dizer o que estou fazendo de errado no final ou como posso alcançar esse valor 6547B *?

    
por user8312738 18.08.2018 / 12:49

0 respostas