Erste textbasierte Version Ende 1990. Erstes graphisches Interface (Mosaic) Februar 1993, später Netscape, Internet Explorer... Standardisierung durch WWW-Konsortium (http://www.w3.org). • • • Das Standardprotokoll zwischen einem Webserver und einem Webclient ist das Hypertext Transfer Protocol (HTTP). – verwendet den TCP-Port 80 – definiert die zulässigen Anfragen und Antworten – ist ein ASCII-Protokoll Jede Webseite ist über eine einzigartige URL (Uniform Resource Locator) erreichbar (z.B. http://www-i4.informatik.rwth-aachen.de/education/tcpip). Die Standardsprache für Webdokumente ist die Hypertext Markup Language (HTML). • • • Kapitel 2: Kommunikationsprotokolle WWW steht für World Wide Web und meint damit die weltweite Vernetzung der Informationen und Dokumente. • 354 HTTP server domain name path name file name http://server.name/path/file.type URL Kapitel 2: Kommunikationsprotokolle Befehle auf einer URL sind • GET: Lade eine Seite • HEAD: Lade nur den Header einer Seite • PUT: Speichere eine Seite auf dem Server • POST: Hänge etwas an eine Seite an • DELETE: Lösche eine Seite GET http:// www.informatik.rwth-aachen.de / info / allgemein.html protocol GET command HTTP - Nachrichtenformat Kommunikation und verteilte Systeme WWW, HTML, URL und HTTP Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme Kapitel 2: Kommunikationsprotokolle 355 353 Server • Prozess, der WWW-Seiten verwaltet. • wird vom Client aus z.B. durch Angabe eines URL (Uniform Resource Locator = WWW-Adresse) angesprochen. Der Server sendet daraufhin die angeforderte Seite (oder Datei) an den Client zurück. Client (in Form eines Browsers) • zeigt die aktuell geladene WWW-Seite an • erlaubt das Navigieren im Netz (z.B. durch anklicken eines Hyperlinks) • bietet eine Reihe zusätzlicher Funktionen (z.B. externe Viewer oder Helper Applications). • Ein Browser kann meist auch für andere Dienste genutzt werden (z.B. FTP, Email, News, ...). Verwendet wird das Client-Server-Modell: Lehrstuhl für Informatik 4 352 Entwickelt um Daten, Bilder etc. zwischen einer großen Anzahl von geographisch verteilten Projektmitarbeitern via Internet auszutauschen. • Kapitel 2: Kommunikationsprotokolle Ursprung 1989 im Kernforschungslabor CERN in der Schweiz. • Historie des WWW Zugriff auf verknüpfte Dokumente, die über verschiede Rechner im Internet verteilt sind World Wide Web (WWW) Kommunikation im WWW Kommunikation und verteilte Systeme Kommunikation und verteilte Systeme Entwicklung des WWW Lehrstuhl für Informatik 4 Lehrstuhl für Informatik 4 PC TCP/IP-Netz WWW-Server FTP Lokale Datei Newsgroup News-Artikel Gopher E-Mail Remote Login ftp file news news gopher mailto telnet Kapitel 2: Kommunikationsprotokolle Hypertext (html) http URL-Name Verwendet für… telnet://www.w3.org:80 mailto:[email protected] gopher://gopher.tc.umn.edu/11/Libraries news:AA0134223112cs.utah.edu news:comp.os.minix file:///usr/suzanne/prog.c ftp://ftp.cs.vu.nl/pub/minix/README http://www.cs.vu.nl/~ast Beispiel Hauptanwendung sind Web-Seiten, doch sind URLs auch für andere Dokumentarten verwendbar: 358 lf space carriage return/line feed data value value value cr cr cr lf lf lf sp version cr Kapitel 2: Kommunikationsprotokolle sp: cr/lf: cr header field name : : : : : header field name URL header field name method sp HTTP Request Header lf Kommunikation und verteilte Systeme Gängige URLs Lehrstuhl für Informatik 4 Kapitel 2: Kommunikationsprotokolle Kommunikation und verteilte Systeme 356 Entity Body: optional. Weitere Angaben, falls der Client Daten überträgt (POST-Method) Accept-language: fr Header lines: optional, weitere Angaben zum Host/Dokument, z.B. GET server.name/path/file.type 359 Request line: notwendiger Teil, z.B. 357 Achtung! Der 9. Schritt gilt nur für HTTP/1.0! Bei der neueren Version HTTP/1.1 werden die Datei sowie alle darin referenzierten Bilder über die gleiche Verbindung geladen (effizienter bei Seiten mit vielen Bildern). Lehrstuhl für Informatik 4 Kapitel 2: Kommunikationsprotokolle Verbindung wird wieder abgebaut. WWW-Server schickt die Datei allgemein.html zurück Browser sendet das Kommando GET /info/allgemein.html Browser öffnet eine TCP-Verbindung zu Port 80 des Rechners DNS antwortet Browser fragt DNS nach der IP-Adresse des Servers Browser DNS-Server Beispiel: Aufruf des URL http://www.informatik.rwth-aachen.de/info/allgemein.html 1. Der Browser bestimmt den URL (was wurde angeklickt oder eingetippt). 2. Der Browser fragt das DNS nach der IP-Adresse des Servers www.informatik.rwth-aachen.de. 3. DNS antwortet mit 137.226.116.241. 4. Browser öffnet eine TCP-Verbindung zu Port 80 des Rechners 137.226.116.241 5. Danach sendet der Browser das Kommando GET /material/allgemein.html. 6. Der WWW-Server schickt daraufhin die Datei allgemein.html zurück. 7. Die Verbindung wird wieder abgebaut. 8. Der Browser analysiert die WWW-Seite allgemein.html und gibt den Text aus. 9. Ggf. wird jedes Bild über eine neue Verbindung zum Server nachgeladen (Adresse steht in der Seite allgemein.html) und ausgegeben. Ablauf bei HTTP Kommunikation und verteilte Systeme Kommunikation und verteilte Systeme Abruf von Webseiten Lehrstuhl für Informatik 4 Lehrstuhl für Informatik 4 lf cr cr cr Entity Body: erfragte Daten data value value value lf lf lf Port B Port A Control Process Betriebssystem Data Transfer FTP-Client Kapitel 2: Kommunikationsprotokolle • Struktur: Datenverbindung TCP/IP Netz Kontrollverbindung Port 21 Data Transfer Port 20 Betriebssystem Control Process FTP-Server 362 – Interaktiver Zugriff durch den Nutzer (z.B. Wechsel von Verzeichnissen) – Format-Spezifikation (Binär- oder Textdateien, ASCII- oder EBCDIC-Code) – Authentifizierung (login-Name und Passwort) • FTP bietet neben dem reinen File-Transfer noch andere Möglichkeiten: anderen zu kopieren • FTP wird benutzt, um eine komplette Datei von einem Rechner auf einen • FTP ist der Internet-Standard für die Übertragung von Dateien FTP - File Transfer Protocol Server z.B.HTTP Kapitel 2: Kommunikationsprotokolle A Termination of Connection TCP (Port 21) User Command Quit Termination of Connection TCP (Port 20) Data Exchange Connection Setup TCP (Port 20) Get File User Logged In Password OK Password Login OK Login FTP Connect to the Server Connection Setup TCP (Port 21) Kapitel 2: Kommunikationsprotokolle FTP Client FTP - Bestätigter File-Transfer B 361 363 FTP Server Unterstützung bei der Verwendung zusätzlicher Protokolle • Ein Browser ermöglicht auch Zugriff auf FTP-, News-, Gopher- oder TELNETServer etc. • Anstatt alle Protokolle im Browser zu implementieren, kann man sie im Proxy realisieren. Der Proxy “spricht“ dann HTTP mit dem Browser und z.B. FTP mit einem FTP-Server. Integration in Firewall • Proxy kann den Zugriff auf bestimmte Web-Seiten sperren (z.B. in Schulen). Kommunikation und verteilte Systeme 360 Internet • Proxy speichert die zuletzt von den Browsern geladenen Seiten zwischen. Wird eine Seite von einem Browser angefordert, die sich bereits im Cache befindet, so kontrolliert der Proxy (kurze Anfrage), ob sich die Seite seitdem geändert hat. Ja: Lade die Seite ganz normal vom WWW-Server und gib sie an Browser weiter. Nein: Gib die Seite aus dem Cache an den Browser zurück. Caching von WWW-Seiten Proxy Server Lehrstuhl für Informatik 4 4xx: Client-Fehler (Syntax) 5xx: Server-Fehler 3xx: Umleitung, es müssen weitere erforderliche Aktivitäten durchgeführt werden Gruppen von Status-Meldungen: 1xx: Nur zur Information 2xx: Erfolgreiche Anfrage 400 Bad Request 404 Not Found 200 OK HTTP Browser Kommunikation und verteilte Systeme lf Ein Proxy ist mehreren Browsern vorgelagert. Nimmt ihnen Aufgaben (Komplexität) ab und macht das Laden von Seiten effizienter! Lehrstuhl für Informatik 4 Kapitel 2: Kommunikationsprotokolle HEAD-Method: der Server antwortet zwar, überträgt aber die erfragten Daten nicht (Debugging) cr header field name : : header field name : : : header field name version sp status code sp phrase cr Status line: status code und phrase übertragen das Ergebnis einer Anfrage und eine zugehörige Meldung, z.B. Proxy Server Kommunikation und verteilte Systeme Kommunikation und verteilte Systeme HTTP Response Header Lehrstuhl für Informatik 4 Lehrstuhl für Informatik 4 Information Die Meldung bezieht sich auf die Verbindung. Antworten auf login-Befehle Nicht festgelegt Status des Dateisystems x1z x2z x3z x4z x5z Kapitel 2: Kommunikationsprotokolle Syntax Error 366 Positive Zwischenantwort: das Kommando wurde akzeptiert, aber ein weiteres Kommando wird erwartet. Temporäre negative Antwort: der Request wurde nicht bearbeitet, aber der Fehlergrund ist nur temporär, später kann eine Wiederholung erfolgen. Dauerhaft negative Antwort: das Kommando wurde nicht akzeptiert, sollte aber auch nicht wiederholt werden. Wirkung Vorläufige positive Antwort: die Aktion wurde gestartet, aber der Client muss noch eine weitere Antwort abwarten. Die Anfrage wurde komplett bearbeitet. x0z 5yz 4yz 3yz 2yz 1yz Reply IP Header UDP Header Ack IP Header UDP Header Data (350 Bytes) Ack Data (512 Bytes) Data (512 Bytes) IP Header UDP Header IP Header UDP Header IP Header UDP Header Ack Data (512 Bytes) IP Header UDP Header IP Header UDP Header IP Header UDP Header Get Path/File Name Kapitel 2: Kommunikationsprotokolle A 365 367 TFTP Server Timeout B TFTP ist ein sehr einfaches Protokoll für den File-Transfer die Kommunikation läuft über Port 69 und benutzt UDP, nicht TCP TFTP hat keine Authentifizierung TFTP benutzt immer 512-Byte-Blöcke TFTP Client • • • • TFTP - Trivial File Transfer Protocol Kommunikation und verteilte Systeme FTP - Antworten Lehrstuhl für Informatik 4 Kapitel 2: Kommunikationsprotokolle Verbinden zum FTP-Server Beende die FTP-Sitzung Sende Benutzerinformationen nach dem Verbinden change directory auf dem entfernten Rechner change directory auf dem eigenen Rechner Drucke das Arbeitsverzeichnis des entfernten Rechners Der Client empfängt ein (bzw. mehrere) Dokument Der Client sendet ein (bzw. mehrere) Dokument Setze den Übertragungmodus auf binary Setze den Übertragungsmodus auf ASCII Liste den Inhalt des entfernten Verzeichnisses auf Hilfe Lösche eine entfernte Datei Beende die FTP-Sitzung, Abbruch open disconnect user cd lcd pwd get/mget put/mput binary ascii dir/ls help delete bye Kommunikation und verteilte Systeme 364 Wirkung Kommando Lehrstuhl für Informatik 4 Kapitel 2: Kommunikationsprotokolle 1. Der FTP-Client wählt für sich eine zufällige Portnummer A aus. 2. Er kontaktiert den Master-Kontroll-Prozess des FTP-Servers über Port 21 (für FTPKontrollverbindungen). Dabei werden login-Name und Passwort abgefragt. 3. Der FTP-Server erstellt einen Slave-Kontroll-Prozess für Kontrollverbindung zwischen Client-Port A und Server-Port 21. 4. Über die Kontrollverbindung kann der FTP-Client Kommandos senden (z.B. Verzeichniswechsel, Anzeigen des Verzeichnisses, Transfer einer Datei). 5. Fordert der FTP-Client eine Datei an, so wählt er zunächst einen zufälligen Port B aus, generiert einen Datentransfer-Prozess und teilt dem Server die Portnummer über die Kontrollverbindung mit. 6. Der FTP-Server generiert einen Daten-Transfer-Prozess mit lokalem Port 20 (Standard-Port für FTP-Datenverbindungen), der nur Verbindungen von Port B des FTP-Clients akzeptiert (dadurch wird gewährleistet, dass der Transfer zum richtigen Prozess stattfindet – es ist keine weitere Authentifizierung notwendig). 7. Zwischen Server-Port 20 und Client-Port B wird Verbindung aufgebaut und der Datentransfer wird durchgeführt. 8. Danach wird die Verbindung abgebaut und beide Datentransfer-Prozesse terminieren (d.h. jeder Transfer benötigt neue Prozesse und eine neue Verbindung). FTP - Befehle Kommunikation und verteilte Systeme Kommunikation und verteilte Systeme Ablauf einer FTP-Sitzung Lehrstuhl für Informatik 4 Lehrstuhl für Informatik 4 Kapitel 2: Kommunikationsprotokolle 370 Bei RFC 822 besteht die eMail aus • einem einfachen “Umschlag” (erstellt durch den Message Transfer Agent anhand der Daten im Header), • einer Reihe von Header-Feldern (je eine Zeile ASCII-Text), • einer Leerzeile und • der eigentlichen Nachricht (Message Body). eMail-Formate Zwei verbreitete Standards: • RFC 822 • MIME (Multipurpose Internet Mail Extensions) Senden von eMail Zum Verschicken einer eMail muss der Benutzer folgende Angaben machen: • Nachricht (meist normaler Text + Attachements, z.B. Word-Datei, GIF-Image ...) • Zieladresse (i.a. in der Form mailbox@location, z.B. [email protected]) • evtl. zusätzliche Parameter bzgl. Priorität oder Sicherheit eMail-Adresse, an die Antworten gerichtet werden sollen Sende-Datum und -Uhrzeit Einzeilige Angabe des Inhalts der Nachricht (wird beim Empfänger angezeigt) Kapitel 2: Kommunikationsprotokolle Subject: References: Andere relavante Message-Ids In-Reply-To: Message-Id der Nachricht, auf die geantwortet wurde Message-Id: Eindeutige Nummer der eMail (für spätere Referenzen) Reply-To: Date: Return-Path: Pfad zurück zum Sender (meist nur eMail-Adresse des Senders) 371 Je ein Eintrag pro Message Transfer Agent auf dem Weg zum Ziel Person, die die Nachricht generiert hat From: Adresse des eigentlichen Senders der Nachricht (evtl. ungleich der “From-Person”) Blind Carbon Copy, Empfänger, die anderen Empfängern nicht angezeigt werden Bcc: Received: Carbon Copy (Durchschrift), eMail-Adressen von weniger wichtigen Empfängern Sender: eMail-Adresse des Hauptempfängers (evtl. mehrere oder auch Verteilerliste) 369 Cc: Bedeutung Internet To: Header Header einer eMail Kommunikation und verteilte Systeme Aufbau einer eMail Lehrstuhl für Informatik 4 Kapitel 2: Kommunikationsprotokolle Message Transfer Agent Kommunikation und verteilte Systeme 368 User User User Agent User Agent Agent Agent • Message Transfer Agent (MTA, Mailserver) läuft meist im Hintergrund (rund um die Uhr) Zustellung von eMail, die von User Agents losgeschickt wird Zwischenspeicherung von Nachrichten für User oder andere Message Transfer Agents • User Agent (UA, normales eMail-Programm) läuft meist auf dem Rechner des Benutzers und hilft bei der Bearbeitung von eMails Erstellung neuer und Beantwortung alter eMail Empfang und Anzeigen von eMail Verwaltung von erhaltener eMail Lehrstuhl für Informatik 4 Kapitel 2: Kommunikationsprotokolle X.400 als Standard zum Mailtransfer. Diese Spezifikation war allerdings zu komplex und schlecht ausgelegt. Durchgesetzt hat sich ein einfacheres, 'von einer handvoll Informatikstudenten zusammengeschustertes' System: das Simple Mail Transfer Protocol (SMTP). Lösung E-Mails an Gruppen, Strukturierung der eMail, Delegation der Verwaltung an eine Sekretärin, Dateieditor als Benutzeroberfläche, keine gemischten Medien Probleme Eine einfache Dateiübertragung erfolgte, mit der Konvention, dass die erste Zeile der Datei die Adresse des Empfängers enthält. Frühe Systeme Ein eMail-System besteht im allgemeinen aus zwei Subsystemen: Elektronische Post: eMail Kommunikation und verteilte Systeme Kommunikation und verteilte Systeme Elektronische Post: eMail Lehrstuhl für Informatik 4 Lehrstuhl für Informatik 4 Typ/Subtyp gemäß RFC 1521, z.B. text/plain, image/jpeg, multipart/mixed Content-Type: Message Transfer Agent Kapitel 2: Kommunikationsprotokolle Post Office Protocol Version 3 (POP3) – Abholen von eMails beim Server über eine TCP-Verbindung, Port 110 – Befehle zum An- und Abmelden, Nachrichten herunterladen, Nachrichten auf dem Server löschen oder liegen lassen, Nachrichten ohne vorherige Übertragung vom Server direkt löschen – kopiert lediglich eMails vom entfernten Server auf das lokale System User User User Agent User Agent Agent Agent Simple Mail Transfer Protocol (SMTP) – Versenden von eMails über TCP-Verbindung (Port 25) – SMTP ist ein einfaches ASCII-Protokoll – Ohne Prüfsummen, ohne Verschlüsselung – Empfangende Maschine ist der Server und beginnt mit der Kommunikation – Ist der Server zum Empfangen bereit, signalisiert er dies dem Client. Dieser sendet die Information, von wem die eMail kommt und wer der Empfänger ist. Ist der Empfänger dem Server bekannt, sendet der Client die Nachricht, der Server bestätigt den Empfang. 374 Internet Internet Mailprogramm 1 (UA 1): Formatiert die eMail, erzeugt die Empfängerliste und schickt die eMail an seinen Mailserver (MTA 1) Client 1 (MTA 1): Baut die Verbindung zum SMTPServer (MTA 2) auf und schickt eine Kopie der eMail dorthin Server (MTA 2): Erzeugt den Header der eMail und platziert die eMail in die passende Mailbox Client 2 (UA 2): baut die Verbindung zum POP3Server auf, authentifiziert sich mit Username und Passwort (unverschlüsselt!) Server (MTA 2): schickt die eMail an den Client Mailprogramm 2 (UA 2): formatiert die eMail Benutzer 2: liest die eMail • • • • • • • Kapitel 2: Kommunikationsprotokolle Benutzer 1: schreibt eine eMail • E-Mail über POP3 und SMTP Kommunikation und verteilte Systeme E-Mail über POP3 und SMTP Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme Kapitel 2: Kommunikationsprotokolle Agent User User User Agent AgentUser Agent POP3 Message Transfer Agent Internet SMTP SMTP Message Transfer Agent Agent User User User Agent AgentUser Agent 375 373 MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-2120168431824156555=:325" --8323328-2120168431-824156555=:325 Content-Type: TEXT/PLAIN; charset=US-ASCII Es befindet sich ein Bild im Anhang --8323328-2120168431-824156555=:325 Content-Type: IMAGE/JPEG; name="bild.jpeg" Content-Transfer-Encoding: BASE64 Content-ID: <PINE.LNX.3.91.960212212235.325B@localhost> Content-Description: /9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQIBAQEBA QIBAQECAgICAgICAgIDAwQDAwMDAwICAwQDAwQEBAQEAgMFBQQEBQQEBAT/ 2wBDAQEBAQEBAQIBAQIEAwIDBAQEBA[..] KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAD//Z ----8323328-2120168431-824156555=:325— Lehrstuhl für Informatik 4 Message Transfer Agent Verpackung, die für den Inhalt der eMail gewählt wurde (manche Netze verstehen z.B. nur ASCII-Zeichen). Beispiele: base64, quoted-printable Content-TransferEncoding: User User User Agent User Agent Agent Agent Eindeutiger Bezeichner des Inhalts Content-Id: 372 Für Menschen lesbarer String, der den Inhalt der Nachricht beschreibt Kapitel 2: Kommunikationsprotokolle Kennzeichnet die benutzt Version von MIME Content-Description: Bedeutung MIME-Version: Header MIME behält das RFC-822-Format bei, definiert dabei aber • eine Struktur im Message Body (durch zusätzliche Header) und • Kodierungsregeln für Nicht-ASCII-Zeichen. RFC 822: nur geeignet für Nachrichten aus reinem ASCII-Text ohne Sonderzeichen. Heutzutage zusätzlich gefordert: • eMail in Sprachen mit Sonderzeichen (z.B. französisch oder deutsch) • eMail in Sprachen, die nicht das lateinische Alphabet benutzen (z.B. russisch) • eMail in Sprachen, die überhaupt kein Alphabet benutzen (z.B. japanisch) • eMail, die teilweise überhaupt keinen Text enthält (z.B. Audio oder Video) MIME Kommunikation und verteilte Systeme Kommunikation und verteilte Systeme Header einer eMail Lehrstuhl für Informatik 4 Lehrstuhl für Informatik 4 /* Sender der eMail */ /* Server meldet sich */ /* Identifikation des Senders /* /* Empfänger ist bereit /* Kapitel 2: Kommunikationsprotokolle Minimales Protokoll mit nur zwei Befehlsarten: • Kopieren von eMails auf den lokalen Rechner • Löschen von eMails auf dem Server Replies Commands Greeting TCP Verbindung Port 110 TCP/IP-Netz POP3-Server (MTA) Abholen der eMails vom Server mittels POP3: PC QUIT RSET NOOP DELE msg RETR msg LIST [msg] STAT • Transaktionsstatus USER name PASS string 378 Requested action aborted; mailbox unavailable Requested action aborted; error in processing Requested action aborted; insufficient storage 450 451 452 Kapitel 2: Kommunikationsprotokolle • dele löscht die entsprechende Nachricht • retr zur Anforderung einer Nachricht durch ihre Nummer • list zur Auflistung der Nachrichtennummern und der Nachrichtengrößen Transaktionsphase • +OK oder -ERR sind mögliche Serverantworten • pass ist dessen Passwort • user identifiziert den Benutzer Autorisierungsphase POP3-Protokoll S: C: S: C: S: C: S: S: S: C: S: S: C: C: S: S: C: C: S: Kommunikation und verteilte Systeme • Autorisierungsstatus: <domain> Service not available 421 Lehrstuhl für Informatik 4 POP3-Prozess Client (MUA) Start mail input, end with <CRLF>.<CRLF> 354 Kapitel 2: Kommunikationsprotokolle User not local, forwarded to forward path 251 Kommunikation und verteilte Systeme 376 Requested mail action okay, completed <domain> service closing channel <domain> service ready Human information about how to use SMTP System status Bedeutung 250 221 220 214 211 Reply Code Lehrstuhl für Informatik 4 Kapitel 2: Kommunikationsprotokolle C = Client, sendender MTA C: QUIT S: 221 <beta.edu> Server Closing / /* Beenden der Verbindung */ C: From: Krogull @ ..... <crlf>.<crlf> S: 250 OK S = Server, empfangender MTA /* ab hier normales Nachrichtenformat */ /* Senden ist erlaubt */ S: 250 OK /* Empfänger der eMail */ C: RCPT TO:<[email protected]> /* Empfänger bekannt */ S: 250 OK /* Jetzt kommen die Daten */ C: DATA S: 354 Start mail input; end with “<crlf>.<crlf>“ on a line by itself S: 250 <beta.edu> OK C: MAIL FROM:<[email protected]> S: 220 <beta.edu> Service Ready C: HELO <abc.com> Kommunikation zwischen Partnern (von abc.com nach beta.edu) in Textform der Art: SMTP - Antwortcodes Kommunikation und verteilte Systeme Kommunikation und verteilte Systeme SMTP - Befehlsabfolge Lehrstuhl für Informatik 4 Lehrstuhl für Informatik 4 Transaction failed 377 Action not taken; mailbox name not allowed User not local; please try <forward path> Requested action not taken; error in processing Requested action not taken; mailbox unavailable Command parameter not implemented Bad sequence number Command not implemented Syntax error, in parameters or arguments Syntax error, command unrecognised Bedeutung 379 +OK POP3 server ready user alice +OK pass hungry +OK user successfully logged in list 1 498 2 912 . retr 1 <message 1 contents> . dele 1 retr 2 <message 2 contents> . dele 2 quit +OK 554 553 552 551 550 504 503 502 501 500 Reply Code Kapitel 2: Kommunikationsprotokolle Intranet Firewall Internet • Dazu nötig: Verarbeitung von Informationen ab Schicht 3 • Ziel: unerwünschte und unautorisierte Kommunikation in oder aus dem geschützten Netzwerk verhindern. • Eine Firewall ist eine Barriere zwischen einem privaten, geschützte Netzwerk (Intranet) und anderen Netzwerken (z.B. dem Internet). 382 Kapitel 2: Kommunikationsprotokolle • Benutzerkontrolle Nur autorisierte Benutzer haben Zugriff über eine Firewall • Zugriffskontrolle Einschränkung des Zugriffs auf bestimmte Dienste. Selektionsmerkmale sind z.B. IP-Adresse und Port-Nummer bzw. die Art des erfragten Dienstes • Verhaltenskontrolle Nutzung der Applikationen ist definiert z.B. Mail-Filter für Viren und bestimmte Dateianhänge • Richtungskontrolle Unterschiedliche Regeln für eingehenden und ausgehenden Zugriff definierbar • Protokollierung Zusammenfassung der Nutzung und der Zugriffe • Verbergen des internen Netzes Topologie, Adressen, ... sollen nach außen hin nicht sichtbar sein Funktionen einer Firewall Kommunikation und verteilte Systeme Sicherung von Netzwerken: Firewall Lehrstuhl für Informatik 4 Kapitel 2: Kommunikationsprotokolle • Zusätzliche Komponenten (Firewalls) • Zusätzliche Kooperationsmechanismen (Virtual Private Network) Kommunikation und verteilte Systeme 380 Sicherheitskomponenten zum Schutz sowohl des eigenen Netzes als auch der Kommunikation. • Sichere Protokolle (IPsec, SSL, ...) • ... • Verbreitung von Viren • Einbruch auf Firmenrechner • Ausspionieren von vertraulichen Daten Aber: auf das Internet hat jeder Zugriff: TCP/IP erlaubt die Kommunikation über das Internet. Lehrstuhl für Informatik 4 Kapitel 2: Kommunikationsprotokolle Hier dient letztendlich wieder HTTP als Protokoll zum Zugriff auf die eMails. Die Verwaltung ist ähnlich der bei IMAP, nur dass der Client in den Web-Server integriert ist. Mittlerweile bieten auch viele Betreiber von Web-Seiten eMail-Dienste an: gmx, web.de, yahoo, … • Das Protokoll ist allerdings komplexer als bei POP3: anlegen und verwalten entfernter Mailboxen • Der Client führt alle Aktionen entfernt durch. Dies eignet sich für Anwender, die von verschiedenen Hosts Zugriff auf ihre eMails benötigen • eMails werden nicht abgerufen und lokal gespeichert, sondern bleiben auf dem Server liegen • TCP-Verbindung über Port 143 Weiterentwicklung von POP3: IMAP (Interactive Mail Access Protocol) Firewalls Kommunikation und verteilte Systeme Kommunikation und verteilte Systeme IMAP als POP3-“Variante“ Lehrstuhl für Informatik 4 Lehrstuhl für Informatik 4 383 381 200.200.20.1 192.168.10.3 Kapitel 2: Kommunikationsprotokolle Application-Level Proxy • Prüfung auf Anwendungsebene • Ein Proxy für jede Art von Dienst (SMTP, FTP, HTTP, ...) • Der Benutzer muss sich vor Nutzung eines Dienstes authentifizieren Connection termination Connection establishment Data transfer User authentication Connection establishment Source Circuit-Level Firewall • Arbeitet auf der Transportschicht (z.B. Port-Nummern) • Proxy, der für jede Art von Dienst genutzt werden kann • Nur Pakete autorisierter Verbindungen werden akzeptiert • Nur indirekte Verbindungen über die Firewall sind möglich Oder Unterscheidung nach Ebenen: Implementierung einer Firewall 386 Destination Screening Router Interne Firewall DMZ Privates Netz Webserver 385 Kapitel 2: Kommunikationsprotokolle 387 • Alle Ressourcen, die vom Internet aus (unbeschränkt) erreichbar sein sollen, werden in einem eigenen Netzwerksegment platziert (DMZ – Demilitarisierte Zone). • Dieses Segment ist durch einen Screening Router an das Internet angeschlossen (einfache Filterung für unkritische Systeme) • Das private Netz ist durch eine weitere Firewall (meist Paket-Filter und ProxyServer) komplett abgeschottet. Internet Implementierung einer Firewall Kommunikation und verteilte Systeme Kapitel 2: Kommunikationsprotokolle Lehrstuhl für Informatik 4 384 2. Proxy-Server • "kontrollierter Aufruf" eines Dienstes: die Firewall fängt den Aufruf ab und entscheidet, ob er zum Empfänger weitergeleitet werden darf. • Der Proxy ist der einzige Rechner, der nach außen hin sichtbar ist • Die Zugangskontrolle kann basierend auf der Identität des Benutzers, des verwendeten Protokolls und des Inhalts vorgenommen werden. • Es ist mehr machbar (Logging von Informationen, Authentifizierung, ...), aber für jedes Anwendungsprotokoll wird ein eigener Proxy benötigt. Kommunikation und verteilte Systeme Application Proxy 192.168.10.2 192.168.10.3 1. Paket-Filter • Der Netzwerkverkehr wird analysiert und bestimmte Pakete ausgefiltert. Die Filterung kann auf den folgenden Informationen beruhen: Quelladresse, Zieladresse, verwendetes Protokoll, Verbindung • Ein Paket-Filter ähnelt einer einfachen Brücke. Falls die Firewall gleichzeitig über Routing-Funktionalität verfügt, wird sie Screening Router genannt. • Einfach und billig (der Paket-Filter kann alle Arten von Verbindungen kontrollieren), aber Filterregeln sind schwer (korrekt) zu definieren. Es gibt zwei grundlegende Mechanismen zur Realisierung einer Firewall Lehrstuhl für Informatik 4 192.168.10.1 80 80 Port Internes Netz Destination 131.107.2.200 IP Address / Port Mapping Source Firewall 200.200.20.1 Kapitel 2: Kommunikationsprotokolle 131.107.2.200 Internet Basierend auf der IP-Adresse des Senders kann die Firewall die Adresse des Empfängers ändern und die Pakete zustellen. Damit bleibt das 'wahre' Aussehen des internen Netzes dem Sender verborgen. Implementierung einer Firewall Kommunikation und verteilte Systeme Kommunikation und verteilte Systeme Funktionen einer Firewall: Beispiel Lehrstuhl für Informatik 4 Lehrstuhl für Informatik 4