Wie öffne ich Dateien, die mir in einem "Dokumentenumschlag" gesendet werden?

828
einpoklum

Ich habe gerade eine E-Mail erhalten, deren X-Mailer "X-Mailer: Microsoft CDO für Windows 2000" lautet. Als Anhang befindet sich eine .sgn-Datei, deren Inhalt eine XML-Datei ist, wobei ein Feld scheinbar eine base64-kodierte PDF-Datei ist:

<DocumentEnvelope><SignaturePackage><Signature = xmlns=3D"http://www.w3.org/2000/09/xmldsig#"><SignedInfo><Canonicalizatio= nMethod Algorithm=3D"http://www.w3.org/TR/2001/REC-xml-c14n-20010315" = /><SignatureMethod = Algorithm=3D"http://www.w3.org/2000/09/xmldsig#rsa-sha1" /><Reference = URI=3D"#SignedDoc"><DigestMethod = Algorithm=3D"http://www.w3.org/2000/09/xmldsig#sha1" = /><DigestValue>MFV2XJ9rfjhGCyA948wKB741ChQ=3D</DigestValue></Reference></= SignedInfo><SignatureValue>aKHfEGfu2p9RdShv1Vv/kqC6gjdymojq0rQA+AU/hPocrr= VqMQk2wbbJD60jc8QPP0kPIo4vWqB1mVx5Y45HK0LFWxMDkJ2/CN8GcODEum2Mamn3W2j9tKV= 8JfJAexlW47LprDq99W9YwfpXusaEplCOErCRj/2dhnGc4SgZXxw=3D</SignatureValue><= KeyInfo><KeyValue><RSAKeyValue><Modulus>nz78eiuYN1Jmm5ND8xLLbJ9QTrBpjTMfv= h4mbmHbBSB7HSHU+7Izp5GCiyDAlmXa3JjqKBRjw2+OpwhsJf+KHPltKFKwOltTN9QJWS4HJm= H1xqF4VAuwvpp1tlJd1KP5WL/j9YCYigzEfZIAAUC2KiFlAxoR1mwz3alMR4v96h8=3D</Mod= ulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue></KeyInfo><Object = Id=3D"SignedDoc"><DocumentOriginName = xmlns=3D"">ecd20f25-95b3-4dc3-b8e6-fc62d23db259</DocumentOriginName><Docu= mentExtension xmlns=3D"">pdf</DocumentExtension><DocumentCreationDate = xmlns=3D"">2014-02-27T22:10:27.4320656+02:00</DocumentCreationDate><Docum= entContent = xmlns=3D"">JVBERi0xLjQNJeLjz9MNCjMgMCBvYmoNPDwvQ291bnQgMS9LaWRzWzQgMCBSXS= 9QYXJlbnQgMiAwIFIgDS9UeXBlL1BhZ2VzPj4NZW5kb2JqDTQgMCBvYmoNPDwvQXJ0Qm94WzA= 

(... etc. etc. ...)

P9fdsc3jL4yg7at7G488BKcqQbpnZDkhXFsfhc/VIuPexfElgnf2oagaf/QjiZHy+ganiZcAH= dFFFrN6xYK5n0JL5g330NKzD5CHBS8X1civ8VUAKdWjgI8pm1rFsm4v20SwIp/81OH1w=3D=3D= </CertBase64></Certificate></SignaturePackage></DocumentEnvelope> 

Wenn ich nur den DocumentContent-Teil herauskopiere und ihn mit base64 decodiere, sehe ich einen PDF 1.3-Header, aber einige Decodierer verschlucken ihn, und trotzdem kann ich keine funktionierende PDF-Datei von diesem Ding erhalten. So:

  • Wie kann ich die PDF-Datei von dort manuell extrahieren?
  • Gibt es ein eigenständiges Tool zum Extrahieren von Dateien aus solchen E-Mail-Nachrichten oder aus .sgn-Dateien?
  • Gibt es eine Thunderbird-Erweiterung, die diese behandelt und das PDF als regulären Anhang darstellt?

Anmerkungen :

  • Die Akte wurde automatisch von der Plattform Net Ha-Mishpat der israelischen Gerichte übermittelt. Ich kann mich an die Gerichte wenden, aber sie haben keine technisch versierten Leute und ich kann keinen Kontakt mit dem Software-Auftragnehmer aufnehmen, den sie verwendet haben.
  • Ich kenne Leute, die es in der Vergangenheit geschafft haben, dekodierte Dateien aus diesen .sgn-Dateien zu extrahieren. Ich weiß einfach nicht wie genau.
7

4 Antworten auf die Frage

2
MasterAM

Ich habe heute selbst eines dieser Dokumente bekommen.

Da die Erklärung, was den technischen Supportmitarbeitern falsch ist, wahrscheinlich mehr Zeit in Anspruch nahm als der Versuch, sie selbst zu extrahieren, erstellte ich ein kleines Python-Skript, um das in der Sig- Datei eingebettete PDF- Dokument zu extrahieren und zu entschlüsseln .

Vorausgesetzt, es gibt eine einzelne angehängte PDF- Datei und das Sig- Dateiformat ist dasselbe wie meines.

Ich hoffe, dass jemand es nützlich finden würde.

import base64 import xml.etree.ElementTree as ET import sys   def decode(infile, outfile): tree = ET.parse(infile) xmlns = '' b64 = tree.find("./SignaturePackage/Signature/Object/DocumentContent".format(xmlns)).text txt = base64.b64decode(b64)  with open(outfile, 'bw+') as f: f.write(txt)  if __name__ == "__main__": if len(sys.argv) < 2: print('usage: python unpack.py <input_filename>') exit(1) infile = sys.argv[1] outfile = 'out.pdf' decode(infile, outfile) print('Done. Result saved to '.format(outfile)) 

Ich habe einen Grundstein für dieses Skript erstellt.

Sie müssen python 3.x installiert haben, die sig- Datei und das Python-Skript in demselben Ordner ablegen (oder den Dateipfad zum Skript angeben) und wie folgt ausführen:

python unpack.py <sig_filename>

Dadurch wird eine Datei namens out.pdf im gleichen Ordner erstellt.

Solltest du nicht standardmäßig von stdin zu stdout dekodieren? Oder zumindest nur aus Datei dekodieren, wenn eine Datei angegeben ist? einpoklum vor 9 Jahren 0
Die Verwendung eines Dateinamens als Argument erscheint vernünftig. Keine Notwendigkeit, stdin / stdout zu verwenden. Es ist auch robuster IMHO, da Sie mehr Argumente bereitstellen und mehrere Dateien leichter extrahieren können. Ich hoffe, dass Sie es nicht so oft brauchen. MasterAM vor 9 Jahren 0
Nicht, dass es so viel ausmacht, aber auf diese Weise kann diese Dekodierung nicht weitergeleitet werden (außer durch das Erstellen von Named Pipes). Nicht sehr freundlich ... einpoklum vor 9 Jahren 0
Das ist richtig, aber es ist auch ein 20-LoC-Dienstprogramm, das leicht angepasst werden kann. Sie sollten wahrscheinlich prüfen, ob es funktioniert, und mich informieren, wenn es Probleme gibt. MasterAM vor 9 Jahren 0
Ich werde das nächste Mal einen von ihnen bekommen. Ich glaube nicht, dass ich eine gerettet habe. einpoklum vor 9 Jahren 0
2
einpoklum

Hier ein rudimentäres Skript, das Sie auf Unix-ähnlichen Systemen (und wahrscheinlich auch unter Windows mit einigen Änderungen) verwenden können, um die PDF-Datei aus dem Dokumentenumschlag zu extrahieren. Ich nenne es sgn2pdf(da die doc-Umschlagdatei eine sgn-Erweiterung hat). Die Befehlszeilenschnittstelle lautet

sgn2pdf [INPUT_FILENAME] [OUTPUT_FILENAME] 

Wenn Sie also ein erstes Argument hinzufügen, wird es aus dieser Datei gelesen und nicht aus der Standardeingabe. Wenn Sie ein zweites Argument hinzufügen, wird die Ausgabe in die zweite angegebene Datei umgeleitet.

Quelle:

#!/bin/bash # # Extract a PDF file from an Israeli courts' .sgn PDF document envelope  exec 3<&0 # tie (new) file descriptor 3 to what is currently the standard input exec 4>&1 # tie (new) file descriptor 4 to what is currently the standard output  if [[ $# > 0 ]]; then exec 3<$1  shift fi if [[ $# > 0 ]]; then exec 4>$1 shift fi exec <&3 >&4 sed -r 's/^.*<DocumentContent[^>]*>//; s/<\/Document.*$//;' | base64 -d -i >&4 

Der base64Decoder ist Teil des GNU- coreutilsPakets und sollte auf jeder Linux-Distribution verfügbar sein.

0
Debra

Die Verwendung von CDO 200 und der Dokumentenumschlag zeigen an, dass die E-Mail wahrscheinlich automatisch oder programmgesteuert, dh über ein Skript, aus Access oder auf andere Weise über SMTP und ein CDO-kompatibles Programm (kein normaler Mail-Client) gesendet wurde.

Bei der SGN-Datei handelt es sich wahrscheinlich nicht um eine echte SGN-Datei, bei der es sich um eine "Sierra Print Artist" -Datei handelt. Es scheint wahrscheinlicher, dass jemand die Erweiterung manuell für eine Signaturdatei verwendet hat.

Ich glaube nicht, dass diese Datei die Art von Anhang sein sollte, die Sie öffnen sollten. Es scheint viel wahrscheinlicher, dass die angezeigte Datei in der E-Mail enthalten ist, damit der Absender sie als "signiert" anzeigen kann, wenn sie automatisch generiert wird. Da die PDF-Datei in die XML-Datei eingebettet ist, gibt es wahrscheinlich keine Erweiterung, die automatisch den Abschnitt des Anhangs entschlüsseln würde, der Ihrer Meinung nach eine PDF-Datei ist. Sie könnten versuchen, den gesamten Abschnitt zu kopieren und anschließend zu dekodieren und den dekodierten Text mit einem Unicode-kompatiblen Texteditor zu speichern. Anschließend wird geprüft, ob sich das als lesbares PDF-Dokument öffnet.

Aber ich denke, Sie verschwenden Ihre Zeit, und dieser Anhang entspricht genau dem, was Sie sehen würden, wenn jemand eine vCard enthielt, die ein Bild enthielt, als er Ihnen eine E-Mail aus einem Programm über CDO sendete. Das heißt, es ist nicht dazu gedacht, entschlüsselt zu werden, denn wenn Sie das tun könnten, könnten Sie die Signatur des Absenders verfälschen.

Haben Sie versucht, mit dem Absender Kontakt aufzunehmen, um herauszufinden, ob der Anhang eine Bedeutung hat? Es scheint mir ziemlich offensichtlich, dass es sich lediglich um eine qualifizierende Signaturdatei handelt. Der Header sagt Ihnen, dass der Algorithmus zur Erzeugung der Signatur unter http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd#rsa-sha1 - das ist Allein sollte Ihnen sagen, dass es sich nicht um eine Datei handelt, die Sie als solche öffnen sollen.

Wie gesagt, ich habe den Inhalt herauskopiert und mit teilweisem Erfolg entschlüsselt. Es ist ein 3-seitiges PDF-Dokument, aber ich kann den Inhalt nicht richtig einstellen. Es muss etwas über den Zeichensatz der SGN-Dateien oder über einen bestimmten Junk oder einen nachfolgenden Junk oder etwas anderes geben. einpoklum vor 10 Jahren 0
Wenn es sich um eine Datei handelt, die Sie öffnen können, muss der Absender sie Ihnen erneut senden. Alles, was Sie beschreiben, scheint jedoch auf eine Datei hinzuweisen, die Teil einer Signatur ist und nicht dazu gedacht ist, auf diese Weise geöffnet zu werden. Die Art der Versendung bestimmt, ob es als Standardanhang geöffnet werden kann. Der "Dokumentenumschlag" bezieht sich lediglich darauf, wie eine Nachricht zum Senden mit CDO über SMTP verpackt wird. Debra vor 10 Jahren 0
Kennen Sie Software-Tools, die mit solchen Umschlägen umgehen? einpoklum vor 10 Jahren 0
0
yohbs

Wahrscheinlich zu spät, aber wenn Sie diese Datei vom israelischen Gerichtssystem (נט המשפט) erhalten haben, geben Sie hier einen Link ( diesen Link ) zu einem Windows-Programm, das sie öffnet.

Hmph. Zuerst senden sie E-Mails, für die MS Outlook erforderlich ist, und bieten dann an, Ihnen zu "helfen" - vorausgesetzt, Sie verwenden Windows. Wunderbar Wie auch immer - nicht deine Schuld, danke. einpoklum vor 8 Jahren 1
@einpoklum Ich stimme zu (ich leite Ubuntu und musste den Laptop meiner Frau benutzen). Aber hey - zumindest verwenden sie keine Tauben ... yohbs vor 8 Jahren 0