Zeitstempel aus p7s extrahieren (Signaturdatei)

Zeitstempel aus p7s extrahieren (Signaturdatei)

Ich möchte herausfinden, wie ich die Zeitstempelinformationen (wenn die Datei signiert ist) aus der p7s-Datei extrahieren kann.

Ich extrahiere derzeit den Zeitstempel über asn1parse und verwende die Zeichenfolge (id-smime-aa-timeStampToken).

Der Inhalt meiner analysierten Datei sieht wie folgt aus.

19120:d=7  hl=2 l=  11 prim: OBJECT            :id-smime-aa-timeStampToken
19133:d=7  hl=4 l=2165 cons: SET               
19137:d=8  hl=4 l=2161 cons: SEQUENCE          

Ich extrahiere Daten vom Offset 19137 mit einer Länge von 2165 (von denen ich annahm, dass sie in derselben Zeile wie der Offset hl=4 l=2161 vorhanden sind). Ich bin nicht sicher, ob das richtig ist, aber ich erhalte korrekte Zeitangaben.

Aber gibt es eine Möglichkeit, den Zeitstempel direkt aus p7s zu extrahieren?

Antwort1

Sie können den OpenSSL- cmsBefehl verwenden, um den Inhalt einer signierten PKCS#7-Datei anzuzeigen. Vorausgesetzt, Sie haben das Zertifikat des Unterzeichners nicht und überprüfen daher nicht die Signatur, sondern sehen sich nur die Struktur an, können Sie Folgendes verwenden:

openssl cms -verify -noverify -cmsout -print -inform DER -in file.p7s

Dadurch werden Details der Struktur ausgegeben, die den folgenden Auszug enthalten:

    signedAttrs:
        object: contentType (1.2.840.113549.1.9.3)
        set:
          OBJECT:pkcs7-data (1.2.840.113549.1.7.1)

        object: signingTime (1.2.840.113549.1.9.5)
        set:
          GENERALIZEDTIME:Aug  3 23:50:00 2020 GMT

Sie können dies mit awkoder grepnach dem erforderlichen signingTimeFeld filtern.

Wenn Sie mit dem Filtern der Textausgabe von OpenSSL nicht zufrieden sind, gibt es andere Tools, die besser geeignet sind, den Inhalt einer ASN.1-Struktur zu prüfen. Wenn Sie sich beispielsweise mit Python auskennen, können Sie Folgendes verwenden:Abonnieren.

verwandte Informationen