Netzwerke Teil 11: Anwendungsprotokolle - Wirtschaftsinformatik bis ...
Netzwerke Teil 11: Anwendungsprotokolle - Wirtschaftsinformatik bis ... Netzwerke Teil 11: Anwendungsprotokolle - Wirtschaftsinformatik bis ...
Netzwerke Teil 11: Anwendungsprotokolle Netzwerke - SS 2013 - Teil 11/Anwendungsprotokolle 10.06.13 1
- Seite 2 und 3: Literatur - Allgemein [11-1] Bleich
- Seite 4 und 5: Literatur - Telnet [T1] telnet http
- Seite 6 und 7: Virtuelles Terminal • Telnet basi
- Seite 8 und 9: Secure Shell (SSH) - Literatur [S1]
- Seite 10 und 11: Eigenschaften einer Sitzung • Ses
- Seite 12 und 13: SSL-Record-Protokoll • Dienste: -
- Seite 14 und 15: Handshake Protokoll • Ziel - Mög
- Seite 16 und 17: Simple Mail Transport Protokoll (SM
- Seite 18 und 19: Bemerkungen • Wenn der Mail User
- Seite 20 und 21: Mail-Format • Das allgemeine Form
- Seite 22 und 23: Ein zweites Beispiel Received: from
- Seite 24 und 25: Mail-Routing • Der Weg der Mail d
- Seite 26 und 27: Beispiel für Anhänge II Date: Fri
- Seite 28 und 29: Beispiele für MIME-Typen Type Subt
- Seite 30 und 31: Kodierungen (ASCII und Base64) Es w
- Seite 32 und 33: Auszug aus einer SMTP-Sitzung SMTP-
- Seite 34 und 35: SMTP-Kommandos (Auszug) Kommando HE
- Seite 36 und 37: Verarbeitungsphasen Phase 1 Phase 2
- Seite 38 und 39: Erläuterungen I • Das TOP-Komman
- Seite 40 und 41: Internet Message Access Protokoll (
- Seite 42 und 43: File Transfer Protokoll (FTP) • D
- Seite 44 und 45: Beispiele für Kommandos II Kommand
- Seite 46 und 47: Praxis • Es gibt viele FTP-Server
<strong>Netzwerke</strong><br />
<strong>Teil</strong> <strong>11</strong>: <strong>Anwendungsprotokolle</strong><br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong> 10.06.13 1
Literatur - Allgemein<br />
[<strong>11</strong>-1] Bleich, Holger; Braun, Herbert; Mansmann, Urs: Nachrichten mit<br />
Köpfchen. CT 21/2006, S.218-221<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
2
Übersicht<br />
• Entferntes Arbeiten (remote access)<br />
– telnet<br />
– rlogin<br />
– ssh<br />
• Mail-Protokolle<br />
– SMTP<br />
– POP<br />
– IMAP<br />
• Filetransfer<br />
– FTP<br />
– HTTP (wird in einem anderen <strong>Teil</strong> behandelt)<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
3
Literatur - Telnet<br />
[T1] telnet http://tools.ietf.org/html/rfc854<br />
[T2] rlogin BSD Rlogin<br />
http://tools.ietf.org/html/rfc1282<br />
[T3] telnet http://de.wikipedia.org/wiki/VT100<br />
[T4] telnet http://vt100.net/<br />
[T5] telnet http://de.wikipedia.org/wiki/Terminal_(Computer)<br />
[T6] telnet http://commons.wikimedia.org/wiki/Category:Data_termin<br />
als?uselang=de<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
4
Telnet<br />
• Telnet ist ein Protokoll für den interaktiven Zugriff auf entfernte<br />
Systeme über TCP/IP.<br />
• Alle Tastatureingaben beim Client werden an den Server<br />
übertragen, dessen Output Zeichen für Zeichen an den Client<br />
zurück geschickt und dort angezeigt werden.<br />
• Varianten:<br />
– Telnet, RFC 97 (1971), RFC 854 (1983), Port 23<br />
– rtelnet: Port 107<br />
– rlogin: Port 513<br />
– rsh: Port 514 (dazu gibt es kein RFC)<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
5
Virtuelles Terminal<br />
• Telnet basiert auf der Idee eines virtuellen Terminals.<br />
• Terminal = Realisierung einer Bildschirm- und Tastatur-<br />
Schnittstelle an einem Kommunikationsendpunkt durch eine<br />
spezielles Gerät<br />
• Virtuelles Terminal = Simulation einer Terminal auf "normaler"<br />
Hardware und Software<br />
Das virtuelle Terminal von telnet realisiert:<br />
– Eingabe per Tastatur<br />
Lesbares ASCII<br />
Escape-Zeichen (0xFF, IAC) zur Eingabe von Kommandos<br />
– Ausgabe (Printer)<br />
Lesbares ASCII<br />
NUL, LF, CR, BEL, Horizontal Tab, Vertical Tab, Form Feed (FF)<br />
• Dies ist der kleinste gemeinsame Nenner aller Terminals<br />
Beispiele für Hardware-Terminals: IBM 3270, VT100, VT220<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
6
Bemerkungen<br />
• Mit Telnet-Kommandos ist Konfigurieren möglich,<br />
Beispiele:<br />
– Cooked Mode: Eingegebener String wird zum Verbessern von<br />
Tippfehlern zwischengepuffert und erst dann übertragen, wenn<br />
eine -Sequenz eingegeben wurde<br />
– Raw Mode: Alle Zeichen werden unmittelbar ohne Pufferung und<br />
ohne Möglichkeit der Verbesserung übertragen<br />
• Über Telnet können Verbindungen zu SMTP-, POP-, HTTP- oder<br />
FTP-Servern realisiert werden.<br />
Ein Telnet-Client kann daher auch als primitiver Email- oder<br />
FTP-Client benutzt werden.<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
7
Secure Shell (SSH) - Literatur<br />
[S1]<br />
[S2]<br />
[S3]<br />
[S4]<br />
[S5]<br />
[S6]<br />
[S7]<br />
SSH (Secure Shell) FAQ - Frequently Asked Questions<br />
http://www.faqs.org/faqs/computer-security/ssh-faq/<br />
http://de.wikipedia.org/wiki/Secure_Shell<br />
The Secure Shell (SSH) Protocol Architecture<br />
http://tools.ietf.org/html/rfc4251<br />
The Secure Shell (SSH) Protocol Assigned Numbers<br />
http://tools.ietf.org/html/rfc4250<br />
The Secure Shell (SSH) Authentication Protocol<br />
http://tools.ietf.org/html/rfc4252<br />
The Secure Shell (SSH) Transport Layer Protocol<br />
http://tools.ietf.org/html/rfc4253<br />
The Secure Shell (SSH) Connection Protocol<br />
http://tools.ietf.org/html/rfc4254<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
8
SSH basiert auf dem Secure Socket Layer (SSL)<br />
• Ursprünglich von Netscape zur Sicherung beim Surfen<br />
entwickelt<br />
• Aktuelle Version: 3<br />
• Weiterentwicklung zum Transport Layer Security<br />
(TLS, RFC2246)<br />
• Begriffe:<br />
– Verbindungen im SSL-Sinne sind immer Peer-to-Peer (also<br />
zwischen den Endsystemen) und gehören zu einer Sitzung<br />
– Sitzung: Verbindung mit der Gültigkeit von ausgehandelten<br />
Parametern, kann auch mehrere Verbindungen überspannen<br />
– Bei SSL bzw. SSH wird pro Sitzung nur eine Verbindung realisiert.<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
9
Eigenschaften einer Sitzung<br />
• Session Identifier<br />
• X.509-Zertifikat des Partners - kann leer sein<br />
• Kompressionsmethode<br />
• Verwendete Verschlüsselungs- und Hash-Verfahren<br />
• Verschiedene geheime Schlüssel (secrets)<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
10
SSL-Protokollstack<br />
(4b)<br />
SSL<br />
Handshake<br />
SSL Change<br />
Cipher Spec<br />
SSL<br />
Alert<br />
SSL Record-Protokoll<br />
HTTP<br />
(4a)<br />
TCP<br />
(3)<br />
IP<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
<strong>11</strong>
SSL-Record-Protokoll<br />
• Dienste:<br />
– Vertraulichkeit: Handshake-Protokoll mit gemeinsamen geheimen<br />
Schlüssel<br />
– Integrität: Handshake-Protokoll mit gemeinsamen geheimen<br />
Schlüssel als Basis für den MAC<br />
• Verfahren beim Senden<br />
1. Anwendungsdaten aufteilen in kleinere Blöcke<br />
2. Fragmente komprimieren<br />
3. Berechnen und Hinzufügen des MAC<br />
4. Verschlüsseln des gesamten neuen Pakets<br />
5. Vorausstellen des SSL-Headers<br />
• Verfahren beim Empfang: umgekehrte Reihenfolge<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
12
Change Cipher Spec/Alert Protokoll<br />
• Change Cipher Spec Protokoll:<br />
Mit dem SSL-Record-Protokoll wird ein einziges Byte versendet,<br />
damit sich Sender und Empfänger bzgl. der Verschlüsselung<br />
synchronisieren.<br />
• Alert Protokoll:<br />
Austausch von Warnungen oder Fehlermeldungen bei<br />
Realisierungsfehlern oder Netzwerkproblemen<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
13
Handshake Protokoll<br />
• Ziel<br />
– Möglichst gegenseitige Authentifizierung<br />
– Aushandeln von Verfahren (Verschlüsselung, Hash)<br />
– Austausch von Zertifikaten<br />
• Phasen<br />
– Phase 1: Einrichten von Sicherheitsfähigkeiten<br />
– Phase 2: Server-Authentifizierung und Schlüsselaustausch<br />
– Phase 3: Client-Authentifizierung und Schlüsselaustausch<br />
– Phase 4: Beendigung (des Aufbaus)<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
14
Simple Mail Transport Protokoll - Literatur<br />
[S8] smtp Simple Mail Transfer Protocol<br />
http://en.wikipedia.org/wiki/SMTP<br />
[S9] smtp Extended SMTP<br />
http://en.wikipedia.org/wiki/Extended_SMTP<br />
[S10] smtp SMTP Service Extension for Authentication<br />
http://tools.ietf.org/html/rfc4954<br />
http://tools.ietf.org/html/rfc5248<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
15
Simple Mail Transport Protokoll (SMTP)<br />
• RFC 821 (1982), 2821 (2001), 5321 (2008)<br />
• Bis zum Web (1992) war E-Mail die am weitesten verbreitete<br />
Internet-Anwendung.<br />
• Reines ASCII-Protokoll (Bit 7 der Bytes ist immer 0) auf der<br />
Anwendungsebene<br />
• Store and Forward:<br />
Keine direkten Verbindungen zwischen Absender und<br />
Empfänger, sondern ein Kopieren der Mails von Server zu<br />
Server<br />
• Vorteil: Hohe Ausfallssicherheit<br />
• Das E-Mail-System ist eines der erfolgreichsten verteilten<br />
Systeme.<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
16
Architektur<br />
Client<br />
MUA<br />
SMTP<br />
Mail-Zugangsprotok<br />
olle<br />
Server<br />
MTA<br />
SMTP<br />
SMTP<br />
Internet<br />
Server<br />
MTA<br />
Server<br />
MTA<br />
SMTP<br />
Server<br />
MTA<br />
SMTP<br />
Mail-Zugangsprotok<br />
olle<br />
IMAP<br />
PO P<br />
SMTP<br />
Client<br />
MUA<br />
MUA = Mail User Agent<br />
MTA = MessageTransfer Agent<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
17
Bemerkungen<br />
• Wenn der Mail User Agent (MUA, Client) mit dem Mail-Reader<br />
SMTP-fähig ist, kann auf die Mail-Zugriffsprotokolle POP oder IMAP<br />
verzichtet werden.<br />
• Die Trennung zwischen den MTA (Message Transfer Agent), die fast<br />
immer laufen, und den MUA, die nur dann laufen, wenn der<br />
Benutzer es will, hat den großen Vorteil, dass auch bei<br />
abgeschalteten Clients die E-Mails so weit wie möglich zu Ziel<br />
transportiert werden können.<br />
• MUA und MTA können sich auf demselben System befinden.<br />
• Die Mailbox liegt als Datei im Zugriff des letzten MTA vor dem MUA.<br />
In der Praxis beim Internet Service Provider (ISP).<br />
• Die empfangenen Mails werden meist nach dem Kopieren auf den<br />
MUA in der Mailbox gelöscht, müssen aber nicht.<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
18
Empfangen einer Mail<br />
• Der Begriff "Empfangen einer Mail" ist nun komplizierter:<br />
– Das Kopieren der Email in die Mailbox beim Provider<br />
– Das Kopieren der Email aus der Mailbox des Providers auf das<br />
System des Clients<br />
– Das Lesen der Email durch einen Menschen<br />
• Weiterhin gibt es keinen Mechanismus der Bestätigung, dass<br />
eine Email empfangen worden ist.<br />
Um das zu kompensieren, kann der Sender den Empfänger<br />
bitten, beim Empfang eine kleine Bestätigungsmail (Receipt) zu<br />
senden.<br />
• Die Dauer eines Mailtransports liegt international zwischen 5-10<br />
Min. und einem Tag, meistens im Bereich von 10 Min. Die<br />
Zeiten hängen von der Belastung des Netzes und vom Weg<br />
durch das Netz ab.<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
19
Mail-Format<br />
• Das allgemeine Format ist definiert in<br />
RFC 822 (1982), 2822 (2001), 5322 (2008)<br />
• Überarbeitet und erweitert <strong>bis</strong> 1996 zum Extended SMTP durch<br />
Einführung von MIME zur Übertragung binärer Daten<br />
• MIME = Multi Purpose Internet Mail Extension<br />
– Das MIME-Format ist definiert in<br />
RFC 1341 (1992), 1521 (1993), 2045-2049 (1996), 2184 (1997),<br />
2231 (1997)<br />
– Weiteres in RFC 1343 und 1524<br />
• Aufbau jeder Mail:<br />
– Kopf mit Schlüsselworten samt Werten<br />
– Leerzeile<br />
– Body<br />
– Optionale Attachments (Anhänge) entsprechend MIME<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
20
Einfaches Beispiel<br />
Betreff:Btte um einen Termin<br />
Von: "bmesser" <br />
Datum: Fri, 29 Apr 20<strong>11</strong> 15:42:15 +0200<br />
An: "FB4-Service" <br />
Return-Path: <br />
Delivery-date: Fri, 29 Apr 20<strong>11</strong> 15:40:28 +0200<br />
Received: from [141.45.29.226] (helo=[127.0.0.1]) by mail2.rz.htw-berlin.de<br />
Nachricht-ID: <br />
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)<br />
MIME-Version: 1.0<br />
Content-Type: text/plain; charset="iso-8859-1"<br />
Content-Transfer-Encoding: 7bit<br />
Liebe Frau ...,<br />
koennten Sie bitte ...<br />
in WH reservieren?<br />
Vielen Dank!<br />
Mit freundlichen Gruessen -- Burkhard Messer<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
21
Ein zweites Beispiel<br />
Received: from tulip.berlin.fhg.de (tulip.berlin.fhg.de [153.97.66.4]) by hermes.rz.fhtw-berlin.de ..... Thu, 17 Jan<br />
Received: from abird.isst.fhg.de ([153.97.74.7] helo=isst.fhg.de) by tulip.berlin.fhg.de .... Thu, 17 Jan 2002 <strong>11</strong>:02:37 +0100<br />
Message-ID: <br />
Date: Thu, 17 Jan 2002 <strong>11</strong>:02:36 +0100<br />
From: Kurt .... <br />
Organization: Fraunhofer ISST Berlin<br />
X-Mailer: Mozilla 4.79 [en] (X<strong>11</strong>; U; SunOS 5.8 sun4u)<br />
MIME-Version: 1.0<br />
To: bmesser@fhtw-berlin.de<br />
Header<br />
Subject: Re: Wiedervorlage<br />
References: <br />
<br />
Content-Type: multipart/mixed; boundary="------------B9464F909C2354DFF4841DE8"<br />
Content-Length: 2261<br />
Trenner zwischen<br />
Attachments<br />
Hallo Burkhard,<br />
Leerzeile<br />
.... blah bla<br />
Burkhard Messer wrote:<br />
> ein schönes neues Jahr wünsche ich Dir (und Euch<br />
> allen am ISST und zu Hause)....<br />
><br />
> Mit freundlichen Grüssen -- Burkhard<br />
> --<br />
> FHTW Berlin, FB 4, <strong>Wirtschaftsinformatik</strong><br />
> Treskowallee 8 Tel. (030) 5019-25<strong>11</strong><br />
> 10318 Berlin EMail bmesser@fhtw-berlin.de<br />
....<br />
[gekürzt]<br />
Body<br />
Wiederholung einer<br />
früheren Mail<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
22
Beispiele für Keywords<br />
Keyword<br />
Received<br />
Message-ID<br />
Date<br />
From<br />
To<br />
Subject<br />
References<br />
Organization<br />
MIME-Version<br />
Content-Type<br />
Content-Length<br />
Erläuterung<br />
Angaben über den Weg der Mail durch das Netz (Reihenfolge von<br />
oben nach unten, "falsch herum")<br />
Eindeutiger Name dieser Mail beim Absender<br />
Datum der Absendung<br />
Verfasser/in der Mail<br />
Empfänger/in der Mail<br />
Thema der Mail<br />
Bezüge der Mail, wenn diese als Antwort auf andere Mails dient<br />
(Definition des "Threads")<br />
Firma/Organisation des/r Absenders/in<br />
Version der MIME-Kodierung<br />
MIME-Beschreibung des Mailaufbaus einschließlich eines Trenners<br />
zwischen den Anhängen<br />
Länge der Mail bzw. Attachments in byte<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
23
Mail-Routing<br />
• Der Weg der Mail durch das Netz der SMTP-Server wird von<br />
den Einträgen in den korrespondierenden DNS-Servern<br />
bestimmt.<br />
• In den MX-Records dieser DNS-Server stehen priorisierte<br />
Angaben, zu welchen SMTP-Servern die Mail weitergeleitet<br />
werden soll (RFC 974).<br />
• Der SMTP-Server versucht, den angegebenen Server<br />
anzusprechen. Gelingt ihm das nicht, versucht er es nach einer<br />
gewissen Zeit ein weiteres Mal.<br />
• Gibt es auch dann Schwierigkeiten, wird es mit einem Server<br />
der nächst niedrigeren Priorität probiert.<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
24
Beispiel für Anhänge I<br />
Type/Subtype<br />
Art der Kodierung<br />
Datei/Attachment-Name<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
25
Beispiel für Anhänge II<br />
Date: Fri, 18 Jan 2002 16:<strong>11</strong>:55 +0100<br />
From: Albrecht .... <br />
[....]<br />
Subject: Zuarbeit zu Musical (keine Noten)<br />
Content-Type: multipart/mixed;<br />
boundary="------------050004040708050801060200"<br />
Leerzeile<br />
This is a multi-part message in MIME format.<br />
--------------050004040708050801060200<br />
Content-Type: text/plain; charset=us-ascii; format=flowed<br />
Content-Transfer-Encoding: 7bit<br />
blah bla blahh<br />
--------------050004040708050801060200<br />
Content-Type: application/msword;<br />
name="Musical_3.6.doc"<br />
Content-Transfer-Encoding: base64<br />
Content-Disposition: inline;<br />
filename="Musical_3.6.doc"<br />
base64-kodiert<br />
Trenner zwischen<br />
Attachments<br />
1. Attachment<br />
kodiert in ASCII<br />
2. Attachment<br />
kodiert in base64<br />
0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAJAAAAAAA<br />
AAAAAFQBAAAAAAAAVAEAABQAAAAAAAAAAAAAAGgBAAAAAAAAqAMAAAAAAACoAwAAAAAAAKgD<br />
[....]<br />
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==<br />
--------------050004040708050801060200--<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
26
Anhänge<br />
• Jeder Anhang hat einen Typ, der die Gruppe beschreibt, und<br />
einen Untertyp, der das Verarbeitungsprogramm oder das<br />
spezielle Format beschreibt.<br />
• Jeder Anhang hat einen eigenen Kopf, der vom Inhalt mit einer<br />
Leerzeile getrennt ist.<br />
• Im Kopf stehen Angaben über die Kodierung, den Typ und den<br />
Namen der Datei etc.<br />
Diese erfolgen nach dem Schema:<br />
: <br />
• Theoretisch können die Mails beliebig lang werden; sie werden<br />
aber praktisch begrenzt:<br />
– durch die maximale Größe der Mailbox, meist 5-10 Mbyte<br />
– durch Begrenzungen der Mailserver, meist 10 Mbyte<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
27
Beispiele für MIME-Typen<br />
Type Subtype Bemerkungen<br />
Text Plain Normaler ASCII-Text<br />
Text HTML Normaler ASCII-HTML<br />
Multipart Mixed Mehrere Anhänge unterschiedlichen Typs<br />
Application msword Word-Datei<br />
Application Mac-Binhex40 Binärdatei für Macintosh<br />
Application Postscript Postscript-Datei (z. B. zum Ausdrucken)<br />
Image gif GIF-Datei<br />
Image jpeg JPEG-Datei<br />
Audio Basic Normale Audio-Datei<br />
Video mpeg MPEG-Video<br />
Siehe auch: http://en.wikipedia.org/wiki/MIME<br />
und: http://tools.ietf.org/html/rfc2045<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
28
MIME-Typen im Thunderbird<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
29
Kodierungen (ASCII und Base64)<br />
Es werden zwei Kodierungen benutzt:<br />
– ASCII (7 bit)<br />
– Base64: Kodierung zur Übertragung von Binärdateien<br />
Dazu werden jeweils 24 bit in vier 6-bit-<strong>Teil</strong>e aufgeteilt, die<br />
wiederum als ASCII kodiert werden:<br />
2*26 Buchstaben, 10 Ziffern und 2 Sonderzeichen (+/) -> 64<br />
3 byte binär<br />
(24 bit)<br />
8 bit 8 bit 8 bit<br />
6 bit 6 bit 6 bit 6 bit<br />
Aufteilung<br />
in 4 6-bit-<br />
<strong>Teil</strong>e<br />
8 bit 8 bit 8 bit 8 bit<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
30
SMTP selbst<br />
• ASCII-Protokoll - kann mit Telnet auch von Hand eingegeben<br />
werden. Es gibt keine festen Bitformate für die Pakete, sondern<br />
es werden variabel lange Strings verwendet.<br />
• Client: das System, das die Kommunikation beginnt<br />
Server: das System, das darauf antwortet<br />
Per Kommando können diese Rollen getauscht werden.<br />
• Client-Request:<br />
[Daten]<br />
• Server-Responses:<br />
[Daten]<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
31
Auszug aus einer SMTP-Sitzung<br />
SMTP-Client<br />
HELO <br />
MAIL FROM: <br />
RCPT TO: <br />
RCPT TO: <br />
DATA<br />
Text der Mail in ASCII<br />
......<br />
.<br />
QUIT<br />
SMTP-Server<br />
250 Hello <br />
250 OK<br />
250 OK<br />
550 No such user here<br />
354 Start Mail Input; end with<br />
.<br />
250 OK<br />
221 Closing Connection<br />
In diesem Beispiel beginnt der Client links und der Server antwortet<br />
in der Gegenrichtung rechts.<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
32
Erläuterungen<br />
• Die Mail selbst wird nach der Vorbereitung durch die Kommandos<br />
"MAIL FROM:" und "RCPT TO:" nach dem Kommando "DATA" als<br />
ASCII-Text übertragen.<br />
• Das Ende der Daten ist eine einzelne Zeile mit einem Punkt.<br />
• Jede Zeile wird mit (2 Bytes: Carriage Return, Line<br />
Feed) abgeschlossen.<br />
• Der String "." muss innerhalb der Mail verhindert<br />
werden.<br />
• Die Statuscodes des Servers werden durch den nachfolgenden<br />
String erläutert.<br />
Es gibt keine Flusskontrolle, keine Verschlüsselungen (<strong>bis</strong> auf<br />
S/MIME), keine Wiederholungen, keine Bestätigungen, keinen CRC,<br />
keine Wiederaufsetzpunkte, keine Zeichenkonvertierungen.<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
33
SMTP-Kommandos (Auszug)<br />
Kommando<br />
HELO<br />
MAIL FROM<br />
RCPT TO<br />
DATA<br />
RSET<br />
QUIT<br />
VRFY<br />
NOOP<br />
EXPN<br />
TURN<br />
Erläuterung<br />
Beginn, Identifizierung<br />
Angabe der Absenderadresse<br />
Angabe der Zieladresse<br />
Beginn des Mailinhalts<br />
Rücksetzen der Verbindung<br />
Beenden der Verbindung<br />
Frage nach Gültigkeit einer Mailbox<br />
Erwarten einer OK-Antwort<br />
Expandieren von Maillisten<br />
Sender und Empfänger tauschen die Rollen<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
34
Post Office Protokoll (POP)<br />
• POP ist ein Mailbox-Zugriffsprotokoll zum Abholen und<br />
einfachen Verwalten von Mailboxen<br />
• Versionen<br />
– POP: RFC 918, 1984<br />
– POP2: RFC 937, 1985<br />
– POP3: RFC 1725 (1994), 1939 (1996)<br />
Ergänzungen: RFC 1957 und RFC 2449<br />
• ASCII-Protokoll sehr ähnlich zu SMTP :<br />
– Client sendet Kommandos<br />
– Server antwortet mit Statuscodes und Daten<br />
• Keine Verschlüsselung:<br />
Passwörter werden in ASCII übertragen, daher Einsatz nur auf<br />
"privaten" Leitungen, typisch zwischen Benutzer und ISP-<br />
Mailbox<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
35
Verarbeitungsphasen<br />
Phase 1<br />
Phase 2<br />
Phase 3<br />
Phase 4<br />
Phase 5<br />
Verbindungsaufbau<br />
Authentifizierung<br />
Client identifiziert sich gegenüber Server<br />
Sperren der Mailbox durch Server<br />
Datenübertragung zum Client<br />
Update<br />
Server führt nach Verbindungsbeendigung Operationen an<br />
der Mailbox aus und gibt Mailbox frei<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
36
Beispiele für Client-Kommandos<br />
Kommando<br />
USER<br />
PASS<br />
QUIT<br />
STAT<br />
LIST<br />
RETR<br />
NOOP<br />
RSET<br />
DELE<br />
TOP N<br />
Erläuterung<br />
Mitteilung des Mail-Accounts<br />
Mitteilung des Passworts<br />
Ende der Verbindung, Beginn des Updates<br />
Anzahl der Mails, Gesamtgröße<br />
Liste von Mails samt jeweilige Größe<br />
Holen einer Mail<br />
Erwarten eines OK<br />
Zurücksetzen der Verbindung<br />
Löschen einer Mail<br />
Anlisten einer Mail (N Zeilen)<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
37
Erläuterungen I<br />
• Das TOP-Kommando veranlasst den Server nur die angegebene<br />
Anzahl von Zeilen der Mail zu übertragen.<br />
• Eine Mail kann ohne Übertragung zum Client auf dem Server<br />
gelöscht werden.<br />
• Mit dem APOP-Kommando ist eine Authentifizierung basierend auf<br />
dem MD5-Algorithmus möglich.<br />
• Die Kommandos TOP und APOP werden nicht von allen POP-Servern<br />
unterstützt.<br />
• Löschkommandos werden nach einem Reset/Leitungsabbruch vom<br />
Server nicht ausgeführt.<br />
• Löschkommandos sowie das Freigeben der Mailbox erfolgt erst nach<br />
dem QUIT und damit ordnungsgemäßen Abbau der Verbindung.<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
38
Erläuterungen II<br />
• Antworten des Servers haben den Aufbau:<br />
[Daten]<br />
Als Indikator kommen "+OK" und "-ERR" in Frage.<br />
• Alle Zeilen werden mit einem abgeschlossen<br />
• Die übertragene Mail wird mit einem .<br />
abgeschlossen.<br />
Das Konvertieren nach Binär/ASCII sowie das Anzeigen etc.<br />
erfolgt ausschließlich im Mail-Reader des Clients nach der<br />
Benutzung von POP.<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
39
Internet Message Access Protokoll (IMAP)<br />
• Leistungsfähiges Protokoll für den Zugriff auf E-Mails durch<br />
einem Client<br />
• Definitionen aus den Jahren 1986, 1988, 1994, 1996<br />
• Letzte Version 4<br />
• Recht komplex<br />
• IMAP erlaubt<br />
– Berücksichtigung der Struktur der Mail<br />
– Anzeige des Status, Zugriff auf die einzelnen <strong>Teil</strong>e<br />
– Suchoperationen<br />
– Verwaltung der Mailbox auf dem IMAP-Server<br />
– Anlegen, Löschen und Umbenennen von eigenen Mailboxen<br />
– Aber nur Empfangen von Mails<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
40
File Transfer Protokoll - Literatur<br />
[F1] ftp http://tools.ietf.org/html/rfc959<br />
[F2] ftp http://slacksite.com/other/ftp.html<br />
[F3] ftp http://www.nsftools.com/tips/RawFTP.htm<br />
[F4] ftp http://winscp.net/eng/docs/protocols<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
41
File Transfer Protokoll (FTP)<br />
• Definiert in RFC 959, 1985<br />
• Variation im Trivial File Transfer Protokoll (TFTP), basiert auf<br />
UDP/IP und dient häufig zum Booten von Stationen über ein LAN<br />
• Über FTP ist ein voller Zugriff auf ein hierarchisches Dateisystem<br />
über TCP/IP ohne Verschlüsselung möglich<br />
• Es wird eine eigene (Telnet-basierte) Verbindung zur Steuerung<br />
sowie weitere Verbindungen zum Datentransport benutzt.<br />
• Es werden in der Regel gleichzeitig mehrere Verbindungen<br />
benutzt.<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
42
Beispiele für Kommandos I<br />
Kommando<br />
PASS<br />
ACCT<br />
CWD<br />
CDUP<br />
ABOR<br />
LIST<br />
SYST<br />
PORT<br />
RETR<br />
STOR<br />
DELE<br />
Erläuterung<br />
Übergabe des Passwords<br />
Angabe des Accounts<br />
Change working directory<br />
Change to parent directory<br />
Abbrechen der Datenübertragung<br />
Auflisten der working Directory<br />
Auskunft über Server<br />
Angabe des Ports für Dateiaustausch<br />
Holen einer Datei zum Client<br />
Senden einer Datei zum Server<br />
Löschen einer Datei<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
43
Beispiele für Kommandos II<br />
Kommando<br />
RMD<br />
MKD<br />
PWD<br />
RNFR<br />
RNTO<br />
REIN<br />
QUIT<br />
REST<br />
APPE<br />
Erläuterung<br />
Remove Directory<br />
Make Directory<br />
Print Working Directory<br />
Rename From<br />
Rename To<br />
Beendigung des angegebenen Accounts<br />
Abbau der Verbindung<br />
Wiederaufsetzen nach Abbruch<br />
Anhängen (Append)<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
44
Datenverbindung<br />
• Über die Kommandoverbindung wird der Port, der Name der<br />
Datei, der Übertragungsmodus etc. vereinbart.<br />
• Über eine weitere Datenverbindung wird parallel der Transfer<br />
realisiert; es können parallel mehrere Dateitransfers in<br />
verschiedenen Richtungen über jeweils eigene Verbindungen in<br />
ablaufen.<br />
• Modi der Datenübertragung (Transmission modes):<br />
1. Stream: Es werden die Bytes der Datei direkt ohne Strukturierung<br />
übertragen.<br />
2. Block: Es werden Blöcke mit einem Kopf und Körper übertragen.<br />
3. Compressed: Vor der Übertragung werden die Daten komprimiert.<br />
In der Praxis wird nur Nr. 1 benutzt.<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
45
Praxis<br />
• Es gibt viele FTP-Server mit einem Standard-Account:<br />
"anonymous" mit einem Passwort als der eigenen Mail-Adresse<br />
• Einige FTP-Server verifizieren die Mail-Adresse über einen<br />
AUTH-Server und verweigern den Zugriff bei falscher Adresse.<br />
Ein AUTH-Server muss dann auf dem System des Clients laufen<br />
und Auskunft über die Identität geben.<br />
• Es gibt ein Kommando "REST", das ein Wiederaufsetzen nach<br />
einem abgebrochenen Dateitransfer erlaubt.<br />
• Leider realisieren nicht alle FTP-Server bzw. Clients alle<br />
Kommandos.<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
46
Nach dieser Anstrengung etwas Entspannung....<br />
<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />
47