So überprüfen Sie die PDF-Signatur manuell (Inhaltsfeld: rsaEncryption)

536
user8312738

Ich möchte das von RSA signierte PDF-Dokument manuell validieren, erhalte jedoch keine andere Signatur als eine in PDF kodierte. Hier sind die Schritte, die ich befolgt habe, alle Hilfe / Hinweise sind wirklich dankbar.

  1. Ich habe ein einfaches Text-PDF (~ 1Kb) erstellt
  2. Ich habe die openssl pfx-Datei mit dem richtigen 2048bit RSA-Schlüssel erstellt
  3. Ich habe den erwähnten Schlüssel in den Windows-Benutzer certmgr hochgeladen
  4. Ich habe den erwähnten Schlüssel zum Signieren von PDF über JSignPdf 1.6.3 (Hash-Algorithmus sha-256) verwendet.

Die Ausgabe der obigen Schritte ist ein ordnungsgemäß signiertes PDF-Dokument (grüne obere Leiste). Dann habe ich Notepad ++ verwendet, um das Inhaltsfeld wie in der Adobe-Dokumentation beschrieben zu entfernen und eine Rohdatei zu erhalten, um zu berechnen, ob der Hash mit der in die Inhaltsstruktur eingebetteten übereinstimmt. Dieser Schritt war erfolgreich für meine SHA-256.

Hier ist die Ausgabe vom ASN.1-Decoder für den Inhaltsfeldwert von PDF:

2.16.840.1.101.3.4.2.1sha-256 (NIST-Algorithmus)

1.2.840.113549.1.9.3contentType (PKCS # 9)

1.2.840.113549.1.7.1Daten (PKCS # 7)

1.2.840.113549.1.9.4messageDigest (PKCS # 9) 32 Bytes

E271FBADC18080C7E8BD5F0FFBCA0BD77E488309E450D28B79B720D08F69F3FC

1.2.840.113549.1.1.1rsaEncryption (PKCS # 1) 256 Byte

6547B3C9658AA8C1C259A97F1B336A099677013EDABE315F9C18C4CE6B6341CAA7054…

Ich kann den gleichen Wert für die SHA-256-Berechnung manuell für diese modifizierte Datei erhalten wie der in PDF eingebettete (E271FB *).

Das Problem, mit dem ich konfrontiert bin, ist, dass ich den letzten Wert von rsaEncryption nicht manuell in derselben sha-256-kompatiblen Datei abrufen kann oder einfach nur auf dem erwähnten Hash basiert.

Hier ist was ich versucht habe ..

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

Dabei ist file_hash.pdf die Datei, die sha-256 mit der in grüner PDF-Datei von JSignPDF übereinstimmt, und domain.key ist derselbe Schlüssel, der in Windows importiert wird (mit Text --- begin private key ---).

Können Sie mir sagen, was ich am Ende falsch mache oder wie ich diesen Wert von 6547B * erreichen kann?

1

0 Antworten auf die Frage