1.0 Inhaltsverzeichnis
2.0 Einführung

3.0 Eine Beispielsession

4.0 Angriffsmöglichkeiten

4.1 Die fehlende Sicherheit
5.0 Schutzmöglichkeiten
2.0 Einführung
Das SMTP läuft über UDP-Port 25 und dient zum Zustellen und Weiterleiten von E-Mails vom Mail-Client zum Mail-Server und zu MTAs. SMTP wird von vielen Computern genutzt und ist somit weit verbreitet.
3.0 Eine Beispielsession
Hier ein Beispiel einer Beispiel-Session eines Clients mit einem SMTP-Server. Links ist die Erklärung, in der Mitte die Daten, die vom Client abgesandt werden, und Rechts das, was der Server dem Client schickt. Dieser ganze Dialog wird dadurch aufgebaut, dass der Client einem Server eine Anfrage auf den SMTP-Port schickt. In diesem Falle wird der fiktive Mail-Server "mailserver.domain.org" kontaktiert. Die Übertragung findet, wie schon erwähnt, im Klartext als 7-bit ASCII statt, und ist somit einfach ohne teure Hilfsmittel zu lesen oder schreiben.
Erklärung Client an Server Server an Client
Der Client begrüsst den Server. helo
Der Server verifiziert die Anmeldung des Clients, identifiziert sich und sendet Code 250. 250 mailserver.domain.org
Der Client gibt an, von wem die zu schickende Mail stammt. mail from: <user@hidden.gov>
Der Server schickt ein weiteres Okay. 250 OK
Der Client gibt an, an wen die zu schickende Mail gerichtet ist. rcpt to: <guest@shop.net>
Der Server schickt ein weiteres Okay. 250 OK
Der Client gibt an, dass jene Daten folgen, die in den Body der zu schickenden Mail gehören. data
Der Server akzeptiert das, und sendet die Information, dass der Client mit der Eingabe eines einzelnen Punktes in einer neuen Zeile die zu schickende Mail beenden soll. Start mail input; end with
<CR><LF>.<CR><LF>
Der Client schickt nun erst die Mailheader, dann eine Leerzeile und danach die Mail-Nachricht. Die Nachricht kann alles enthalten und die Mailheader prinzipiell auch. Erfundene Header werden genauso weitergeleitet wie Standard-Header. Mit den Headern und deren Inhalt muss sich vorallem der Mail-Reader und der Benutzer herumschlagen. Wenn man hier also was falsches angibt kommt die Mail zwar an, sieht aber unter umständen seltsam aus. Der Client schließt die Übertragung mit einem einzelnen Punkt in einer neuen Zeile ab. From: Test User <user@hidden.gov>
To: Shop Guest <guest@shop.net>
Date: Thu 14 Mar 2000 19:22:00 +0100
Subject: Mail-Test
Hallo Guest,
dies ist ein kleiner Test, ob SMTP korrekt funktioniert.

Viele Grüsse

User
.

Der Server akzeptiert und schickt ein weiteres Okay. 250 OK
Der Client verabschiedet sich. quit
Der Server sagt Tschüss. Goodbye.

Im Detail kann die Kommunikation geringfügig anders verlaufen. Gleichzeitig kann auch mittels des Einswählens durch Telnet auf den SMTP-Port eines vermeindlichen Mail-Servers einen Client simulieren, wobei jedoch die eigenen Eingaben dem User verborgen bleiben.
An dieser Stelle möchte ich noch gerne Anmerken, dass das Versenden von unerwünschten und anstössigen Mails gesetzlich untersagt ist, und keinesfalls gefördert werden soll.

4.0 Angriffsmöglichkeiten

SMTP ist die Basis für MIME- und Postscriptangriffe, das Einschleusen von Viren und trojanischen Pferden.
4.1 Die fehlende Sicherheit

Das SMTP verlangt keinerlei verschlüsselte Authentifizierung des Users beim Nutzen des Dienstes. Die gemachten Anfragen und Angaben auf Seiten des Nutzers werden somit per 7-bit ASCII-Klartext übermittelt und nicht auf deren Richtigkeit und Möglichkeit einer Vortäuschung oder Manipulation hin untersucht. So kann man zum Beispiel einem vermeindlichen Webserver eine Anfrage auf den SMTP-Port schicken, wobei durchaus im Gutfall ein korrektes Ausführen der danach folgenden Anfragen möglich wird. Das schlimmste kann einfach sein, dass der SMTP-Server die Anfrage verweigert.
Die Sicherheit kann nur duch Verschlüsselung oder elektronischen Unterschriften gewährleistet werden. Dies bedeutet, dass die Quelle von E-Mails durch SMTP ohne Verschlüsselungs-Prozedur niemals für Dritte eindeutig ausmachbar ist, und alle Angaben theoretisch auch erfunden oder verfälscht worden sein könnten. Um somit Vertrauen in den Mail-Verkehr zu bringen, wird auf bekannte Produkte wie PGP gesetzt, wobei nur beim Verwenden von starken Verschlüsselungen der Nutzer einigermassen sicher sein kann, dass keine negativen Einflüsse von Aussen den Verkehr beeinträchtigen können.

5.0 Schutzmöglichkeiten
Wie so oft, wenn Daten und ausführbare Programme von extern auf ein System eingeschleust werden, können mögliche Schäden durch das Scannen der Software auf Viren eingedämmt oder gar verhindert werden. Dies könnte zum Beispiel in einem LAN ein Proxy machen, der den gesamten Mail-Verkehr on-the-fly auf korrupten Programmcode überprüft. Dadurch würde der Performance-Verlust bei den Clients wegfallen, und der Mail-Verkehr würde nicht unnötig und merklich behindert und verlangsamt werden. Einen deutlichen Performance-Gewinn, jedoch Grimmigkeit der User wird durch das automatische Entfernen aller Anhänge in Mails herbeigeführt. Mein Devise ist immer: "Mir soll niemand etwas schicken - Ich hole es mir selber, wenn ich es brauche."
Gegen die Mängel, die bei den mitgelieferten Versionen von Sendmail auftreten, können nur ein wachsames Auge und periodische Updates weiterhelfen. Probleme entstehen halt dort, wo keine Übersicht mehr gewährt werden kann, und dies ist bei Sendmail leider schon seit längerem der Fall. Natürlich kann bestenfalls auch gleich auf den SMTP-Service verzichtet werden, was ich auch dringends empfehle.