.png)
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- cms
Befehl 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 awk
oder grep
nach dem erforderlichen signingTime
Feld 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.