Martin Wild, Robert Porpaczy Netzwerk Technik Protokolle INFTT Inhaltsverzeichnis UDP (User Datagramm Protokoll) .............................................................................................. 4 Funktionsweise ....................................................................................................................... 4 UDP & DNS ............................................................................................................................ 4 UDP & VPN ............................................................................................................................ 4 UDP & Audio/Video ................................................................................................................ 5 Frame Relay ........................................................................................................................... 5 TCP (Transmission Control Protocol) ......................................................................................... 7 TCP-Kommunikation .............................................................................................................. 7 TCP Header ........................................................................................................................... 8 Verbindungsaufbau ................................................................................................................ 9 TCP-Port-Übersicht ................................................................................................................ 9 IP - Protokoll .............................................................................................................................10 Eigenschaften und Funktion ..................................................................................................11 ICMP (Internet Control Message Protocol) ................................................................................11 Aufbau ...................................................................................................................................12 Funktionen ............................................................................................................................12 Ping .......................................................................................................................................12 Ping und Pong .......................................................................................................................12 Inhalt .....................................................................................................................................13 Beispiel..................................................................................................................................13 ARP (Adress resolution Protokoll) .............................................................................................14 Funktionsweise ......................................................................................................................14 Aufbau ...................................................................................................................................14 Inhalt .....................................................................................................................................15 ARP Befehl in UNIX ähnlichen Sytemen................................................................................16 Gefahren ...............................................................................................................................16 RARP Reverse Adress Resolution Protokoll ..........................................................................16 Funktion ................................................................................................................................16 IMAP ( Internet Message Access Protocol) ...............................................................................17 Ablauf IMAP ..........................................................................................................................17 Beispiel: IMAP Session .........................................................................................................17 Authentifizierung....................................................................................................................19 2 IMAPS ...................................................................................................................................19 SMTP (Simple Mail Transfer Protocol) ......................................................................................20 Ports ......................................................................................................................................20 Einsatzgebiet .........................................................................................................................20 Verfahren ..............................................................................................................................20 Analyse des E-Mail-Versands................................................................................................20 Protokoll ................................................................................................................................21 Statuscodes ..........................................................................................................................21 SMTP-Befehle .......................................................................................................................22 3 UDP (User Datagramm Protokoll) Funktionsweise UDP arbeitet auf der 4. Schicht, der Transportschicht, des OSI-Schichtenmodells. Es hat fast die gleiche Aufgabe wie TCP. Allerdings arbeitet es verbindungslos und damit unsicher. Das bedeutet, der Absender weiß nicht, ob seine verschickten Datenpakete angekommen sind. Während TCP Bestätigungen beim Datenempfang sendet, verzichtet UDP darauf. Das hat den Vorteil, dass der Paket-Header viel kleiner ist. UDP fehlen nahezu alle Kontrollfunktionen von TCP, daher kommt das Protokoll ‘schlanker’ daher und ist einfacher zu verarbeiten. Jedoch hat es dadurch auch z.B. keine Möglichkeit zu überprüfen ob das Datenpaket erfolgreich beim Empfänger angekommen ist. Ebenso entfällt die Nummerierung der Datenpakete, UDP ist somit nicht in der Lage den Datenstrom in der richtigen Reihenfolge zusammenzusetzen. Die Pakete werden deshalb direkt an die Anwendung weitergeleitet, diese setzt dann die Pakete richtig zusammen und ist auch für eine sichere Datenübertragung zuständig. Typischer Verwendungsbereich: DNS-Anfragen, VPN-Verbindungen, Audio- und Video-Streaming. UDP & DNS Bei DNS wird UDP verwendet, da es wegen eines kleinerem Frames von 512 Byte schneller übertragen wird als TCP. Wenn mehr Daten für die DNS Anfrage gebraucht werden, wird auf TCP umgeschaltet. UDP & VPN Bei VPN wird UDP aus zwei Gründen verwendet. Erstens. Da die Verbindung nur zwischen zwei Teilnehmer besteht, sind die Daten nicht Fehleranfällig und brauchen daher keine Fehlerüberprüfung. Zweitens. Die Framelänge von UDP beträgt max. 512 Byte, dementsprächend erfolgt die Übertragung schneller. 4 UDP & Audio/Video Beii Audio/Video Streaming wird UDP wegen seiner Geschwindigkeit verwendet. Da bei UDP keine Flusskontrolle und keine Fehlerkontrolle hat, wird es sehr schnell übertragen. Wenn Pakete kollidieren ist es nicht so schlimm wie bei anderen Anwendungen. Eigenschaften von UDP kein Verbindungsmanagement keine Flusskontrolle keine Zeitüberwachung keine Fehlerbehandlung Aufbau des UDP-Headers Inhalt Feldinhalt Bit Beschreibung Quell-Port (Source-Port) 16 Absender Adresse. Bei einer Stellenanzahl von 16 Bit beträgt beträ der höchste Port 65535. Ziel-Port (DestinationPort) 16 Ziel Adresse Bei einer Stellenanzahl von 16 Bit beträgt der höchste Port 65535. Länge 16 In diesem Feld wird angegeben, wie lang das gesamte UDP-Paket UDP Paket ist. Über diesen Wert kann die Vollständigkeit eit des UDP-Paketes UDP ermittelt werden. Check-Sum 16 Über dieses Feld wird kontrolliert, ob das UDP UDP-Paket Paket fehlerfrei übertragen wurde. Die Check-Summe Check bietet keinen Schutz vor Datenverlust. Frame Relay Frame Relay ist ein Paket-Protokoll, Protokoll, welches auf dem de Data Link Layer (OSI-Schicht Schicht 2) mit variabler Paketlänge arbeitet. Es verfügt über eine Fehlerüberwachung, die fehlerfreie Pakete weiterleitet und fehlerhafte Pakete löscht. Die Flusskontrolle und Sicherung müssen die Endsysteme übernehmen. Durch den Verzicht zicht auf die Fehlerbehandlung und dem damit geringen Protokoll-Header Protokoll Header wird ein hoher Datendurchsatz und eine geringe Verzögerungszeit erreicht. 5 Der Anwendungsbereich ist typischerweise die LAN-Kopplung in einem WAN-Backbone. Frame Relay Verbindungen werden zunehmend von IP-basierten Übertragungssystemen ersetzt wie zum Beispiel Ethernet. VPN-Netze über IP sind preiswerter und MPLS-Netze (Multiprotocol Label Switching) haben höhere Bandbreiten im Vergleich zu Frame Relay. Frame Relay ist für konstante Datenübertragungen zu gebrauchen, wie z.B. digitalisierte Sprache. Für verschiedene Verkehrsprofile ist es jedoch nur beschränkt nutzbar. Aufbau Quelle: http://www.itwissen.info/definition/lexikon/Frame-Relay-Rahmen-frame-relay-frame.html Feldinhalt Bit Beschreibung 2x Flag je 8 Bit Beginn & Ende des Headers 2x Adressfeld je 8 Bit Verbindungserkennung Informationsfeld variabel Prüfsumme 2Byte Das Adressfeld beinhaltet zusätzliche Informationen für die Flusskontrolle Bezeichnung Erklärung DLCI Data Link Connection Identifier. Numerischer Wert, um die virtuellen Verbindungen zu identifizieren. C/R Command / Response FECN Forward Explicit Congestion Notification. Dient der Staumeldung. Eine FECN-Meldung wird bei Überlast an den Empfänger gesendet. BECN Backward Explicit Congestion Notification. Dient der Staumeldung. Eine BECN-Meldung, 6 mit der Aufforderung, die Datenrate zu verringern, wird bei Überlast an den Sender übertragen. DE Discard Eligibility Indicator. Dateneinheiten, bei denen dieses Flag gesetzt ist, können bei Überlast verworfen werden. EA Address ress Field Extension Bit. Ist dieses Flag gesetzt, bedeutet dies, dass noch weitere Bytes im Header folgen. Maximaler Burst maximale Anzahl von Bits in einer bestimmten Zeitspanne TCP (Transmission Control Protocol) Protocol Jedem Datenpaket, das TCP verschickt, wird ein Header vorangestellt, der die folgenden Daten enthält: Sender-Port Empfänger-Port Paket-Reihenfolge (Nummer) Prüfsumme Quittierungsnummer Pakete setzen sich aus dem Header-Bereich Header Bereich und dem Daten-Bereich Daten zusammen. Im Aufbau des TCP-Headers TCP-Pakete Header er sind alle Informationen enthalten, die für eine gesicherte TCP TCP-Verbindung Verbindung wichtig sind. Der TCP TCP-Header ist in mehrere 32-Bit-Blöcke Blöcke aufgeteilt. Mindestens enthält der Header 5 solcher Blöcke. Somit hat ein TCP-Header TCP eine Länge von mindestens 20 Byte.TC Byte.TCP P ist außerdem dafür verantwortlich, die empfangenen Daten an die korrekte Applikation weiterzuleiten. Zur Adressierung der Anwendungen werden auf der Transportebene deshalb sogenannte Portnummern verwendet. TCP-Kommunikation (Quelle: http://www.elektronik-kompendium kompendium.de/sites/net/0812271.htm) Der Sender beginnt mit dem Senden des ersten Datenpakets (Send Paket 1 1). ). Der Empfänger nimmt das Paket entgegen (Receive Paket 1) und bestätigt den Empfang (Send ACK Paket 1). 7 TCP Header Quelle: http://www.rvs.uni-bielefeld.de/~heiko/tcpip/tcpip_html_alt/abbildungen/tcp_header.gif Quell- und Zielport: Adressierung der Anwendungen. Source Port = Kom. Port. Destination = Reservierter Port. SEQ und ACK Number: Geben die Stellung der Daten des Segments innerhalb des in der Verbindung ausgetauschten Datenstroms an. Die Sequenznummer gilt in Senderichtung, die Bestätigungsnummer für Empfangsquittungen. Offset: Gibt die Länge des Headers an Flags: Flags wie SYN, ACK, FIN, URG werden hier angegeben Window: Gibt an wie viele Packete bis zum nächsten Handshake gesendet werden. Ist die Verbindung durchwegs erfolgreich erhöht sich die Anzahl der Packete die auf einmal gesendet werden. Checksum: Die Prüfsumme prüft den Protokollkopf und die Daten Urgent Pointer: Der Urgent-Zeiger ergibt zusammen mit der Sequenznummer einen Zeiger auf ein Datenbyte. Dies entspricht einem Byteversatz zu einer Stelle, an der dringende Daten vorgefunden werden. Options: Das Options-Feld soll eine Möglichkeit bieten Funktionen bereitzustellen, die im normalen TCPProtokollkopf nicht vorgesehen sind. z.B. kann eine maximale Segmentgröße definiert werden Padding: Der Header ist in 32 Bit Blöcke aufgeteilt, daher dient dieses Feld als Füllfeld. 8 Verbindungsaufbau (Quelle: http://upload.wikimedia.org/wikipedia wikipedia/commons/thumb/9/98/Tcp-handshake.svg/376px-Tcp-handshake handshake.svg.png) Zum Beenden der Verbindung tauschen die beiden Hosts wiederum einen Dreiwege Dreiwege-Handshake aus, bei dem das FIN-Bit Bit zum Beenden der Verbindung gesetzt ist. TCP-Port-Übersicht Well Known Ports Reservierte Ports 0 - 1023 Diese Ports sind fest einer Anwendung oder einem Protokoll zugeordnet. Registered Ports Kom. Ports 1024 49151 Diese Ports sind für Dienste vorgesehen. Dynamically Allocated Ports 49152 65535 Diese Ports werden dynamisch zugewiesen. Jeder Client kann diese Ports nutzen. Wenn ein Prozess einen Port benötigt, fordert er diesen bei seinem Host an. Port-Nummer Protokoll Anwendung 21 FTP Dateitransfer 23 Telnet Konsole 25 SMTP Postausgang 80 HTTP World Wide Web 110 POP3 Posteingang 9 IP - Protokoll Quelle:http://maettig.com/content/Studium/Anonymitaet/ip Quelle:http://maettig.com/content/Studium/Anonymitaet/ip-protokoll.gif Type of Service Flags option 10 Version (4 Bit): Gibt an, um welche Version von IP es sich handelt (Momentan normalerweise v4). H-Länge (4 Bit): Die Header-Länge gibt an, wieviele 32-Bit-Zeilen der gesamte Header besitzt (wird für zusätzliche Optionen benutzt). Service-Typ (8 Bit): Ist ein Kriterium für die nächste Routerauswahl (Schneller Router, Benötigt der Router einen hohen Durchsatz,..) Länge (16 Bit): Gibt an, wieviele Bytes das gesamte Paket enthält. ID (16 Bit): Der Wert wird zur Nummerierung der Datenpakete verwendet. Die Kennung ist eindeutig und fortlaufend. Flags (3 Bit): Flags, werden für die Fragmentierung benutzt. (ID-Nummer) Fragment-Offset (13 Bit): Gibt an, an welcher Stelle das Fragment eingefügt werden muss (in 8 Bytes). TTL (8 Bit): Die Time-To-Live gibt an, wieviele Hops das Paket noch weitergesendet werden darf. höheres Protokoll (8 Bit): Gibt an, welches Protokoll im nächst höheren Layer gebraucht wird. Checksum (16 Bit): Hier wird die Checksumme gespeichert (wird zu Korrektheitsüberprüfung gebraucht). Source-IP-Adresse (32 Bit): Gibt an, von welcher IP-Adresse das Paket kam. Ziel-IP-Adresse (32 Bit): Gibt an, zu welcher IP-Adresse das Paket gesendet werden soll. Optionen und Padding Die Optionen müssen ein Vielfaches von 32 Bit lang sein. Sind sie das nicht, wird mit 0-Bits aufgefüllt (Padding). Aufgrund der Größenbeschränkung des Feldes Internet Header Length können die Optionen maximal 40 Byte lang sein. Strict Routing: Option gibt den kompletten Pfad an, welchen das Paket durchlaufen muss Free Routing: Option gibt eine Liste von Routern an, die vom Paket nicht verfehlt werden dürfen Record Route: Lässt die komplette Route aufzeichnen (Heute reicht die Größe des Option-Feldes meist nicht mehr dafür aus) Time Stamp: Zeitstempel Security: Bezeichnet, wie geheim das Paket ist Eigenschaften und Funktion Die Aufgabe des Internetprotokolls (IP) besteht darin, Datenpakete von einem Sender über mehrere Netze hinweg zu einem Empfänger zu transportieren. Die Übertragung erfolgt auf der Vermittlungsschicht, sie ist paketorientiert, verbindungslos und nicht garantiert. Die IP-Datagramme werden auch bei identischen Sendern und Empfängern vom IP-Protokoll als voneinander unabhängige Datenpakete transportiert. Das IP-Protokoll garantiert weder die Einhaltung einer bestimmten Reihenfolge noch eine Ablieferung beim Empfänger, d.h. Datagramme können z.B. wegen Netzüberlastung verloren gehen. Empfangsquittungen gibt es auf IP-Schicht nicht. ICMP (Internet Control Message Protocol) Das Internet Control Message Protocol (ICMP) ist ein Protokoll zur Übertragung von Statusinformationen und Fehlermeldungen von IP-, TCP- und UDP-Protokollen. Besonders Gateways und Hosts benutzen ICMP, um Berichte über Probleme mit Datagrammen zur Originalquelle zurückzuschicken. Die Meldungen des ICMP-Protokolls sind in zwei Klassen definiert: In Fehlermeldungen und Informationsmeldungen. 11 Aufbau Der Aufbau einer ICMP-Nachricht Nachricht lässt sich wie folgt darstellen: Qulle:http://www.elektronik-kompendium.de//sites/net/0901011.htm ICMP hat keine eigene Header-Struktur. Struktur. Es wird der Standard Standard-IP-Header Header zur Übertragung von genutzt. Für die Nutzung durch ICMP werden einige Felder des IP-Headers IP angepasst: Das IP-Header-Feld Type-of-Service Service wird auf den Wert "0000" gesetzt. Das IP-Header-Feld Protokoll wird auf den Wert "0001" (=ICMP) gesetzt. Der Daten-Bereich des IP-Headers Headers wird zum ICMP-Bereich, ICMP in dem sich die Felder ICMP-Typ Typ (Meldungstyp), ICMPCode (Zusatzinformationen zur Behandlung de der Nachricht), die ICMP-Check-Summe und der ICMP-Daten-Bereich befinden Funktionen Ping Ping sendet ein ICMP-„Echo-Request“ Request“-Paket Paket (ping) an die Zieladresse des zu überprüfenden Hosts. Der Empfänger muss, sofern er das Protokoll unterstützt, laut Protokollspezifikation Protokollspezifikation eine Antwort zurücksenden: ICMP „Echo-Reply“ Reply“ (pong). Ist der Zielrechner nicht erreichbar, antwortet der zuständige Router: „Network unreachable“ (Netzwerk nicht erreichbar) oder „Host unreachable“ (Gegenstelle nicht erreichbar). Ping und Pong Heutzutage eutzutage wird vom jedem Router und jedem PC erwartet, ICMP zu „sprechen“. Aber kein Rechner ist verpflichtet, ICMP-Nachrichten Nachrichten zu versenden, mit einer Ausnahme: jeder Rechner muss auf ein ECHO-REQUEST immer ein ECHO-REPLY senden; das sprichwörtliche Ping und Pong. 12 Inhalt Das Feld „Typ“ gibt dabei die Klasse der ICMP-Nachricht an, das Feld „Code“ spezifiziert die Art der Nachricht genauer. Einige der häufiger vorkommenden Typ-Code-Kombinationen sind. Quelle:http://de.wikipedia.org/wiki/Internet_Control_Message_Protocol Beispiel Es werden Datenpakete an den Rechner 172.20.3.37 gesendet. Es wird die Zeit gemessen, bis die Antwort des Hosts eintrifft. Die Zeitangabe sagt aus, wie lange ein Datenpaket zum Host und wieder zurück benötigt („response time average“). Die Angabe TTL kann dazu genutzt werden, grob abzuschätzen, über wie viele Router die ICMP-Pakete gelaufen sind (bei jedem Router wird der Wert um mindestens 1 weniger) ping <IP-Adresse> 13 ARP (Adress resolution Protokoll) Das ARP wird vom Benutzer eigentlich nicht wahrgenommen da es im Hintergrund läuft. Es ist Zuständig das einer IP Adresse auch eine MAC Adresse zugeordnet werden kann. Funktionsweise Wenn ein Computer einem Anderen Computer ein Paket übers Netzwerk Schicken will braucht er dessen MAC Adresse wenn er diese Nicht hat kommt ARP zum Einsatz. Der Computer der die IP adresse auflösen will schickt einen Broadcast (an alle im Netz Befindlichen Computer) “wer hat <IP-Adresse>” ist der Ziel Host online antwortet er mit einem ARP-Reply “<IPAdresse> ist auf <MAC-Adresse>” .Diese Antwort speichert der Rechner temporär im ARP-Cache, um weitere Anfragen zu vermeiden. ARP Request(Quelle Microsoft TecChannel:http://www.microsoft.com/germany/technet/datenbank/articles/600593.mspx) Aufbau Ein ARP Request wird in einem Ethernetframe gesendet mit der Absender MAC und IP und der Empfänger IP Aber mit einer Broadcast MAC Adresse (FF:FF:FF:FF:FF:FF). Das Typfeld im Ethernetframe wird auf 0x0806 gesetzt diese Zahl ist für ARP Reserviert, so erkennt der Ziel Host das das Paket an Ihn Adressiert ist und es ein ARP Request ist. so kann dieser die Antwort darauf vorbereiten, diese wiederum den gleichen Haeder bekommt nur voll ausgefüllt so kann der PC der den Request gesendet hat die MAC mit der IP in die ARP Tabelle eintragen um so nicht nochmal nach einer MAC nachfragen muss. Der Ethernetframe teil für die Daten wird bis zur gänze als PADfeld verwendet. 14 Abbildung ARP Header Graphisch dargestellt estellt (Quelle: (Quelle:http://hackingtaranto.altervista.org/arp_rarp rarp.html) Inhalt Jeder Computer in einem Netzwerk etzwerk hat eine so genannte ARP-Tabelle ARP Tabelle wo die IP und MAC Adressen zwischengespeichert werden damit nicht jedes Mal ein ARP Request durchgefürt werden muss diese kann in Microsoft Betriebssystemen mit dem Befehl: “arp -a” a” abgerufen werden. ARP Tabelle eines SchulPCs Natürlich kann man auch diese Tabelle Bearbeiten, für diesen zweck gibt es einen Befehl zum Löschen eines Eintrags(arp -d) d) und einen zum Eintragen (arp -s). ARP Befehlsliste (arp -?) 15 ARP Befehl in UNIX ähnlichen Sytemen In UNIX ähnlichen Systemen gibt es den Befehl ARP auch: arp [options] -h - Hilfe -e - zeigt den Inhalt der ARP Tabelle an (-a macht das gleiche aber in BSD style) -n - Nicht IP adressen zu Host Namen auflösen (zeigt IP Adressen nicht Hostnamen an) ip-address - Zeigt den ARP Inhalt einer IP Adresse an hostname - Zeigt den ARP Inhalt eines Hostnamens an -d [ip-address | hostname] - Löscht einen Eintrag -s ([ip-address | hostname] mac-address) - Trägt einen Eintrag ein Arp Tabelle auf einem Unixähnlichen System (Quelle: http://www.linux-community.de/Internal/Artikel/PrintArtikel/EasyLinux/2009/02/Flotte-Kiste) Gefahren ARP-SPOOFING: Mit ARP-Spoofing ist es möglich ARP einträge im Netzwerk zu ändern um einen Computer zwischen zu schalten das ist eine sogenannte Man in the middle attake, so kann der zwischen geschaltene Computer den gesamten Netzwerkverkehr auslesen. RARP Reverse Adress Resolution Protokoll Das RARP stellt das genaue gegenstück zum ARP dar, daher RARP sucht die MAC Adresse zu einer IP Adresse heraus. Funktion RARP sendet dazu ein RARP Request-Broadcast mit der eigenenMAC-Adresse als Inhalt an die am Netzwerk angeschlossenen Rechner. Ein RARP-Server, welcher alle Zuordnungen IP- zu MAC-Adressen kennt, sendet daraufhin eine Antwort mit der IP-Adresse an die anfragende MAC-Adresse (RARP-Reply). So ein RARP Server enthält alle IP und MAC zuordnungen in seinem Speicher in einer ARP-Tabelle. Die Zuordnungstabelle auf dem RARP-Server muss vom Systemverwalter manuell gepflegt werden. 16 IMAP ( Internet Message Access Protocol) Ziel: Zugriff auf Mailboxen und Nachrichten so bereitzustellen, als wenn diese sich auf dem lokalen Rechner befänden. Mails verbleiben in der Regel auf Mailserver und nur bei Bedarf auf Client übertragen werden. Übertragungsport TCP: 143 (SSL 993). Vorteil: Emails zentral verwaltet am Server, Webmail sobald Internet vorhanden ist; Nachteile: mehr Server-Leistung, kein Offline wenn Mails nicht geladen wurden; Ablauf IMAP Client -> Anfrage zum Server; Server -> Aufforderung an Client sich anzumelden; Client -> schickt an Server Anmeldung und Server bestätigt; Client wählt z.B. Inbox als aktiven Ordner -> dabei erhält der Server eine textbasierende Anfrage und läd die Infos zu Mailbox (z.B. 2 neue Mails, 1000 insgesamt,..); wählt Client eine Email wird wieder eine Anfrage gesendet und die Daten geladen; In Form von Flags werden Emails entweder markiert + gelöscht, markiert gesendet oder markiert + weitergeleitet z.B. +flag /delete - Mail wird gelöscht. Beispiel: IMAP Session Client Server Erklärung * OK IMAP4rev1 Service Ready Server begrüßt den Client a001 login mrc secret Client meldet sich an a001 OK LOGIN completed a002 select inbox Server bestätigt Anmeldung Client wählt inbox als aktiven Ordner * 18 EXISTS * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * 2 RECENT * OK [UNSEEN 17] Message 17 is the first unseen message a002 OK [READ-WRITE] SELECT completed a003 fetch 12 full 18 Mails vorhanden definierte Flags 2 dringliche Mails (z. B. neue Mails) Mail Nr. 17 ist ungelesen. Alle älteren wurden bereits gelesen. Client darf Änderungen an Mails durchführen Client fordert Infos zu Mail Nr. 12 * 12 FETCH (FLAGS (\Seen) INTERNALDATE "17-Jul-1996 02:44:25 -0700" RFC822.SIZE 4286 Mail wurde bereits gelesen am 17. Juli 1996 zugestellt über 4kB groß 17 ENVELOPE ("Wed, 17 Jul 1996 02:23:25 -0700 (PDT)" "IMAP4rev1 WG mtg summary and minutes" (("Terry Gray" NIL "gray" "cac.washington.edu")) (("Terry Gray" NIL "gray" "cac.washington.edu")) (("Terry Gray" NIL "gray" "cac.washington.edu")) ((NIL NIL "imap" "cac.washington.edu")) (("John Klensin" NIL "KLENSIN" "MIT.EDU")) NIL NIL "<[email protected]>") BODY ("TEXT" "PLAIN" ("CHARSET" "US-ASCII") NIL NIL "7BIT" 302892)) a003 OK FETCH completed a004 fetch 12 body[header] Mail-Header: Datum Betreff Absender (From) Absender (Sender) Antwort-an Empfänger (To) Kopie-Empfänger (CC) BCC und In-Reply-To nicht angegeben Message-ID Client möchte alle Header zu Mail Nr. 12 * 12 FETCH (BODY[HEADER] {342} Date: Wed, 17 Jul 1996 02:23:25 -0700 (PDT) From: Terry Gray <[email protected]> Subject: IMAP4rev1 WG mtg summary and minutes To: [email protected] cc: [email protected], John Klensin <[email protected]> Message-Id: <[email protected]> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII ) a004 OK FETCH completed a005 store 12 +flags \deleted Server sendet geforderte Mailheader Mail Nr. 12 als gelöscht markieren * 12 FETCH (FLAGS (\Seen \Deleted)) a005 OK +FLAGS completed a006 logout Client meldet sich ab * BYE IMAP4rev1 server terminating connection a006 OK LOGOUT completed Internet Message Access Protocol Familie: Internetprotokollfamilie 18 Einsatzgebiet: Lesen und Verwalten von E-Mails Ports: 143/TCP 993/TCP (nur mit TLS) Anwendung IMAP Transport TCP Internet IP (IPv4, IPv6) Netzzugang Ethernet Token Bus Token Ring FDDI … Authentifizierung Zugriff für nicht-autorisierte Benutzer auf eine Mailbox kann verweigert werden. Nutzer muss sich immer authentifizieren, vor Mail Zugriff. Anmeldung: Benutzername und Passwort auf IMAP-ProtokollEbene in Klartext. wenn vorher keine verschlüsselte Sitzung aufgebaut wurde. Möglich Passwort zu senden, zu verbieten sollte keine Sichere Verbindung bestehen. IMAPS Bei der Verwendungsaufbau von IMAPS durch SSL verschlüsselt. Erkennung durch aneren Port (Port: 993). Nach dem Aufbau der SSL-Verbindung wird mindestens IMAPv4 verwendet. SSL-Schicht ist für das IMAP-Protokoll transparent, d. h. keine Änderungen am IMAP-Protokoll 19 SMTP (Simple Mail Transfer Protocol) dient zum Versenden von Emails. SMTP-Server nehmen im Normalfall den Port 25 in Anspruch, neuere Server verwenden jedoch den Port 587. Ports 25 : 465 : 587 : Standardport für das SMTP-Protokoll SSL und TLS Bei direktem Versand vom Client zum Postausgangsserver Einsatzgebiet Einspeisung von E-Mail (Mail Submission), Abholung von E-Mails eventuell über mehrere Stationen (Mail Transfer) Verfahren Die Abwicklung des SMTP-Verfahrens erfolgt “unsichtbar”. E-Mail Anwendungen, sogenannte “Mail User Agents” (MUA), übernehmen diese für den Benutzer. Diese verbinden sich mit einem SMTP-Server, dem “Mail Submission Agent” (MSA), der die Mail über gegebenfalls weitere SMTP-Server, sogenannte “Mail Transfer Agents” (MTA), zum Ziel transportiert. SMTP diente ursprünglich um den Versand von lokal gespeicherten E-Mails zwischen zwei Mailservern zu ermöglichen, weshalb ein einzelner Server auf Port 25 die Rolle des MSA und MTAs übernahm. Seit dem Aufkommen von Mailprogrammen auf PCs wird SMTP aber auch für den Versand von E-Mails vom PC zum ausgehenden Mailserver eingesetzt. Seit einigen Jahren ist dafür ein anderer Port vorgesehen (587 statt 25). Analyse des E-Mail-Versands Direkt nach dem Verbindungsaufbau über TCP meldet sich der SMTP-Server. Der SMTP-Client meldet sich mit seinem Computernamen an. Der Server bestätigt den Erhalt und erwartet die Fortführung der Verbindung. Der Client meldet die Absender-Adresse für den MTA. Der Server bestätigt den Erhalt und erwartet die Fortführung der Verbindung. 20 Der Client meldet die Empfänger-Adresse für den MTA. Der Server bestätigt den Erhalt und erwartet die Fortführung der Verbindung. Mit DATA leitet der Client das Senden der E-Mail ein. Der Server teilt dem Client mit, dass er die E-Mail mit einem Punkt (.) abgeschlossen haben will. 1. E-Mail-Zeile 2. E-Mail-Zeile 3. E-Mail-Zeile Der Client signalisiert mit zweimal Zeilenumbruch den eigentlichen Nachrichtentext der E-Mail in der 4. E-Mail-Zeile. 5. E-Mail-Zeile Die E-Mail wird mit dem Punkt (.) abgeschlossen. Der Server quittiert den erfolgreichen Empfang der E-Mail. Der Client beendet die Verbindung zum Server. Der Server sagt "Auf Wiedersehen". Protokoll SMTP ist ein Textbasiertes Protokoll d.h. Absender- und Empfängeradresse sind frei wählbar, und eine Authentifizierung findet nicht statt. Aus diesem Grund ist die Verlässlichkeit der Absenderangabe einer E-Mail nicht gegeben. Der Server antwortet auf Kontaktaufnahmen mit dreistelligen Statusnummern und kurzen Texten, die variieren oder auch entfallen können. Der Client muss mit festgelegten Zeichenfolgen auf die Statusmeldungen reagieren. Statuscodes 1XX Mailserver hat die Anforderung akzeptiert, ist aber selbst noch nicht tätig geworden. Eine Bestätigungsmeldung ist erforderlich. 2XX Mailserver hat die Anforderung erfolgreich ohne Fehler ausgeführt. 3XX Mailserver hat die Anforderung verstanden, benötigt aber zur Verarbeitung weitere Informationen. 4XX Mailserver hat einen temporären Fehler festgestellt. Wenn die Anforderung ohne jegliche Änderung wiederholt wird, kann die Verarbeitung möglicherweise abgeschlossen werden. 5XX Mailserver hat einen fatalen Fehler festgestellt. Die Anforderung kann nicht verarbeitet werden. 21 SMTP-Befehle Die Kommunikation zwischen SMTP-Client und SMTP-Server basiert auf ASCII-Kommandos. Laut SMTPSpezifikation muss eine SMTP-Implementierung mindestens die folgenden acht Kommandos unterstützen. SMTP-Kommando Beschreibung HELO/EHLO (Hello/Extended Hello) HELO bzw. EHLO startet die SMTP-Sitzung und identifiziert den Client am Server. HELO für normales SMTP - EHLO für ESMTP Unterschied SMTP - ESMTP: ESMTP bietet Authentifizierungsverfahren an MAIL MAIL leitet die Mailübertragung ein und liefert gleich die Absender-Adresse mit. RCPT (Recipient) RCPT gibt die Adresse eines oder mehrere Empfänger an. Dieses Kommando kann mehrmals ausgeführt werden. DATA Mit DATA wird die Übermittlung der E-Mail-Nachricht eingeleitet. Das Ende der EMail-Nachricht wird mit "CRLF.CRLF" gekennzeichnet. RSET (Reset) Mit RSET wird die bereits eingeleitete Mailübertragung abgebrochen. Die Verbindung zwischen Client und Server bleibt bestehen. VRTY (Verify) Mit VRFY kann die Empfänger-Adresse überprüft werden. EXPN (Expand) Die meisten MTAs behandeln EXPN wie VRFY. NOOP NOOP bewirkt eine Antwort vom Server. Damit wird die Verbindungstrennung durch einen Timeout verhindert. QUIT QUIT beendet die Verbindung zum SMTP-Server. Der Server liefert eine letzte Antwort zurück. 22