Laden...

Wie den Inhalt einer Email entschlüsseln?

Erstellt von int3g3r vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.873 Views
I
int3g3r Themenstarter:in
4 Beiträge seit 2019
vor 4 Jahren
Wie den Inhalt einer Email entschlüsseln?

Guten Tag,

Ich habe eine Applikation in C# geschrieben die mir E-Mails von google.com einliest.
Diese basiert auf folgendem Beispiel: Simple IMAP Client

Nun habe ich den [Header] wie auch den [Body] als String vorliegen.
Der Inhalt sieht wie folgt aus: IMG Anhang

Ich gehe davon aus das der "gelbe" Bereich die "Nachricht" ist.
Leider ist dieser Verschlüsselt.

  1. ) Wie wurde diese Nachricht verschlüsselt (Verfahren) ?
    Ich finde da keine Anhaltspunkte im Mail.
    Sha256 ist nur ein Hash-Wert und hat nichts mit der Verschlüsselung zu tun, oder ?

  2. ) Wie lässt sich diese Nachricht entschlüsseln ?
    Folgendes Beispiel habe ich gefunden: MimeKit
    Leider bin ich bei dieser Library ein wenig überfordert und ich verstehe auch nicht ganz wie die Mails aufgebaut sind.
    Muss ich nun hier dem MimeKit nur den "gelb" markierten bereich oder den kompletten inhalt übergeben ?

  3. ) beim MimeKit beispiel sind die Codestellen "certLocation" und "certPassword" nicht klar.
    Bzw wo leigen diese Zertifikate? Diese werden ja automatisch generiert.

Besten Dank,
Freundliche Grüsse Int3g3r

16.807 Beiträge seit 2008
vor 4 Jahren

Ich finde da keine Anhaltspunkte im Mail.

Im Prinzip sollten alle Fragen mit jeder E-Mail Header Dokumentation gelöst sein.
Das ist ja alles standardisiert. Such einfach mal in Google nach EMail Header Analyzer.
Bin mir sicher gibt Millionen Tools und Erklärungen.

Der grün markierte Teil gehört zu DKIM. Daher auch der Doppelpunkt entsprechend.
DomainKeys

Der rot markierte Bereich ist der Wert von "bh" und die Hashsumme des Message Bodys.
"b" ist der Message Body.
Beides base64 (sieht man direkt). Könnte also einfach Dein Text abtippen, in ein Base64 Decoder schubsten und wüsste, was da steht.

Aber: ob die Mail verschlüsselt ist, das sehen wir hier gar nicht. Der entscheidende Teil fehlt.
Ich geh aber davon aus, dass Du das schon geprüft hast.

SMIME verschlüsselte Mails brauchen ein Zertifikat; die Mails haben einen Content Type application/pkcs7-signature - ob das hier der Fall ist sieht man nicht. Der Teil fehlt.
Mittlerweile gibts dafür aber keine kostenlosen Anbieter mehr; man kann sich höchstens selbst eines ausstellen, was dann aber nicht verifiziert wird und entsprechend eine Warnung kommt.

Mit SMIME verschlüsselt der Client die Mail anhand eines Private Keys.
Der Empfänger braucht den Public Key, damit er die Nachricht lesen kann.
S/MIME
Der Public Key hängt der Mail normalerweise als Attachment an.

I
int3g3r Themenstarter:in
4 Beiträge seit 2019
vor 4 Jahren

Ich finde da keine Anhaltspunkte im Mail.
Der rot markierte Bereich ist der Wert von "bh" und die Hashsumme des Message Bodys.
"b" ist der Message Body.
Beides base64 (sieht man direkt). Könnte also einfach Dein Text abtippen, in ein Base64 Decoder schubsten und wüsste, was da steht.

Na dann viel spass beim Abtippen 😄. Ist eh nur ne Test Mail.

Naja also das dies beides base64 ist sehe ich nicht auf den ersten Anblick.
Vielleicht könntest du mir erklären wie man darauf kommt ?

EDIT:

Aber: ob die Mail verschlüsselt ist, das sehen wir hier gar nicht. Der entscheidende Teil fehlt.
Ich geh aber davon aus, dass Du das schon geprüft hast.

Kenne mich leider gar nicht mit der Technik hinter den Mails aus.
Daher Nein, dies habe ich nicht geprüft.
Somit wie lässt sich dies Prüfen ? Welcher Teil fehlt ?

Besten Dank für die Antwort!

16.807 Beiträge seit 2008
vor 4 Jahren

Naja also das dies beides base64 ist sehe ich nicht auf den ersten Anblick.
Vielleicht könntest du mir erklären wie man darauf kommt ?

Weil Base64 eine Kodierung mit immer dem selben Aufbau ist: Base64
Wenn man daher nen paar Mal damit zutun hatte, sieht man das gleich.

Darüber hinaus sollte das auch in der Doku vom EMail Header Aufbau stehen 😉

Somit wie lässt sich dies Prüfen ? Welcher Teil fehlt ?

Davon abgesehen, dass ich das ja schon im Beitrag drüber geschrieben habe: wenn Du einen Header Parsen willst, dann musst Du auch die Dokumentation lesen und verstehen.
Daher: nimm Dir das MimeKit, beschäftige Dich ordentlich mit dem Aufbau einer E-Mail und dann sollte dem nichts im Wege stehen.

4.931 Beiträge seit 2008
vor 4 Jahren

Diese sind standardmäßig mit Base64 (wenn nicht Quoted-Printable-Kodierung verwendet wird) kodiert, s.a. Multipurpose Internet Mail Extensions (MIME).

In .NET gibt es dafür die Methode Convert.FromBase64String.

Ich würde trotzdem eine Library zu benutzen empfehlen, welche auf RFC 2045 ff. beruht (wie eben z.B. das MimeKit).

Bei deinem Anhang jedoch wird zusätzlich noch DomainKeys (DKIM) verwendet, s.a. DKIM (Domain Keys Identified Mail). Ich weiß nicht, inwieweit das dann über z.B. das MimeKit auch mitverarbeitet wird.

Mittels Internetsuche habe ich die auf C basierende OpenDKIM Library (libopendkim) gefunden (s.a OpenDKIM).
Da wirst du dich also noch ein bißchen selber schlau machen müssen.