05.11.2013 Aufrufe

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

6.2 <strong>SSL</strong>-Gr<strong>und</strong>lagen 321<br />

Port auf <strong>SSL</strong>-gesicherte Verbindungen <strong>und</strong> bietet gleichzeitig auf dem Port<br />

für unverschlüsselte Verbindungen die Möglichkeit zum <strong>SSL</strong>-Upgrade an. Moderne<br />

Mailserver hören typischerweise sogar auf drei verschieden Ports, um<br />

alle Mailclients in allen Anwendungsszenarien zufriedenzustellen: Auf den<br />

Ports 25 [Kle01] <strong>und</strong> 587 [GK98] bietet der Server unverschlüsselte Kommunikation<br />

<strong>mit</strong> der Möglichkeit zum <strong>SSL</strong>-Upgrade an. 16 Auf Port 465 hört<br />

der Server zusätzlich auf direkt eingehende <strong>SSL</strong>-Verbindungen.<br />

6.2.3 <strong>SSL</strong>-Verbindungen interaktiv testen<br />

In Abschnitt 4.1 haben wir gelernt, wie wir das Telnet-Kommando <strong>und</strong> den<br />

Internet Dæmon zum Testen normaler TCP-Verbindungen einsetzen können.<br />

Leider ist telnet nicht in der Lage, diese Aufgabe auch für <strong>SSL</strong>-gesicherte<br />

Verbindungen zu übernehmen. Aber zum Glück hilft uns in diesem Fall das<br />

<strong>mit</strong> Open<strong>SSL</strong> <strong>mit</strong>gelieferte Programm openssl weiter, <strong>mit</strong> dem wir von der<br />

Kommandozeile aus interaktiv eine <strong>SSL</strong>-Verbindung starten können:<br />

$ openssl s_client -connect manhattan:smtps<br />

[...]<br />

220 manhattan ESMTP Exim 4.30 Tue, 17 Feb 2004 10:53:15 +0100<br />

QUIT<br />

221 manhattan closing connection<br />

Das Subkommando s_client stellt zunächst eine TCP-Verbindung zu der<br />

<strong>mit</strong>tels -connect angegebenen Socket-Adresse her. Im obigen Beispiel ist dies<br />

der SMTPS-Port (SMTP über TLS, Port 465) auf dem Server <strong>mit</strong> dem Namen<br />

manhattan. Anschließend vollzieht das openssl-Kommando das <strong>SSL</strong>-<br />

Handshake. Die zugehörigen Statusausgaben wurden oben ausgeklammert<br />

<strong>und</strong> lediglich <strong>mit</strong> [...] angedeutet. Die Statusausgaben enthalten im Wesentlichen<br />

Informationen über das vom Server präsentierte Zertifikat <strong>und</strong> ob dieses<br />

vom Client erfolgreich überprüft werden konnte. Darauf kommen wir weiter<br />

unten nochmals zurück. Anschließend finden wir uns im SMTP-typischen<br />

Client-/Server-Dialog wieder, den wir an dieser Stelle nicht fortsetzen, sondern<br />

einfach durch Eingabe von QUIT verlassen.<br />

16 In RFC 2476 [GK98] wird detailliert zwischen Message Submission Agents (MSA)<br />

<strong>und</strong> Message Transmission Agents (MTA) unterschieden. MTAs transportieren<br />

komplette E-Mails per SMTP von MTA zu MTA durch ein MTA-Netzwerk. MSAs<br />

nehmen dagegen E-Mails von Message User Agents (MUA), also von gewöhnlichen<br />

Mailclients, per SMTP entgegen, ergänzen ggf. noch fehlende Mail-Header<br />

<strong>und</strong> speisen die Mail schließlich in ein MTA-Netzwerk ein. Die standardisierten<br />

Ports für MTAs <strong>und</strong> MSAs sind Port 25 <strong>und</strong> Port 587. Mailserver die sowohl als<br />

MTA als auch als MSA auftreten, hören auf beiden Ports.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!