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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

320 6 Netzwerkprogrammierung <strong>mit</strong> <strong>SSL</strong><br />

250-manhattan Hello indien [192.168.1.1]<br />

250-SIZE 52428800<br />

250-PIPELINING<br />

250-AUTH PLAIN LOGIN<br />

250 HELP<br />

Sobald die <strong>SSL</strong>-Verbindung erfolgreich eingerichtet ist, meldet sich der Client<br />

erneut <strong>mit</strong> einem EHLO-Gruß, der jetzt bereits verschlüsselt übertragen<br />

wird. Die weitere Kommunikation zwischen Mailclient <strong>und</strong> Mailserver erfolgt<br />

natürlich ebenfalls über den gesicherten Kanal, ein späteres Downgrade der<br />

Verbindung ist im Anwendungsprotokoll nicht vorgesehen.<br />

Interessant ist im Zusammenhang <strong>mit</strong> SMTP die Möglichkeit, daß der Mailserver<br />

auf die veränderte Ausgangssituation einer verschlüsselten Verbindung<br />

zum Client reagieren kann. Im obigen Beispiel bietet der Mailserver nach<br />

dem Aufbau der <strong>SSL</strong>-gesicherten Netzwerkverbindung <strong>mit</strong> AUTH PLAIN LOGIN<br />

plötzlich eine zusätzliche Serviceerweiterung an <strong>und</strong> erlaubt dem Client da<strong>mit</strong>,<br />

den Benutzernamen <strong>und</strong> das Paßwort eines Nutzers durch den jetzt<br />

verschlüsselten Kanal im Klartext zu übertragen. Ohne die schützende <strong>SSL</strong>-<br />

Verbindung hat der (offensichtlich sicherheitsbewußte) Mailserver wohlweislich<br />

darauf verzichtet, diese Option anzubieten.<br />

Aus Sicht des Clients gilt es beim <strong>SSL</strong>-Upgrade-Verfahren unbedingt zu beachten,<br />

daß die Kommunikation <strong>mit</strong> dem Server umgehend abgebrochen werden<br />

sollte, sofern, aus welchen Gründen auch immer, nach einem STARTTLS-<br />

Kommando keine <strong>SSL</strong>-gesicherte Verbindung zustande kommt. Der Client<br />

sollte dann keinesfalls arglos <strong>mit</strong> der Übertragung der sicherheitsrelevanten<br />

Daten beginnen! Andernfalls könnten Angreifer durch gezielte Störung der<br />

Kommunikation zwischen Client <strong>und</strong> Server <strong>mit</strong> etwas Geschick die ungesicherte<br />

Übertragung der Daten provozieren.<br />

Separate Ports oder <strong>SSL</strong>-Upgrade?<br />

Für Client-/Server-Anwendungen, die sowohl über gesicherte als auch ungesicherte<br />

Netzwerkverbindungen kommunizieren sollen, stellt sich die Frage,<br />

welcher Ansatz denn nun der bessere ist. Die Verwendung separater Ports<br />

wird laut RFC 2817 [KL00] inzwischen weitgehend abgelehnt, wenngleich diese<br />

Ablehnung natürlich nicht dazu führen wird, daß etablierte, auf diesem Verfahren<br />

aufbauende Protokolle wie etwa HTTPS [KL00] wieder verschwinden<br />

werden. Dazu sind diese Dienste bereits zu weit verbreitet. Dennoch wird für<br />

die Absicherung weiterer Anwendungsprotokolle ein <strong>SSL</strong>-Upgrade bevorzugt,<br />

da sich dadurch nicht die Anzahl der zu standardisierenden Ports verdoppelt<br />

bzw. die Anzahl der verfügbaren Ports effektiv halbiert.<br />

In der Praxis findet sich in den etablierten Netzwerkdiensten oftmals eine<br />

Kombination aus beiden Verfahren. Der Server hört auf einem separaten

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!