Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch
Gliederung ISO/OSI Schichten + TCP/IP-Äquivalente IPv4 (Internet Protocol) TCP (Transmission Control Protocol) UDP (User Datagramm Protocol) ICMP (Internet Control Message Protocol) Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
Gliederung TCP Verbindungsablauf Fehlerbehandlung Routingprotokolle IPv6 Überblick Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
ISO/OSI-Referenzmodell beschreibt das externe Verhalten von Endsystemen und keine Implementierung dient der Interoperabililität verschiedenster Protokolle und Netzwerktechnologien realisiert durch Schichten-Modell Abstraktion / Komplexitätsreduzierung Austauschbarkeit der Protokolle einzelner Schichten Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
ISO/OSI-Referenzmodell Anwendungsschicht SMTP, FTP, HTTP, DNS... 7 Darstellungsschicht 6 Sitzungsschicht 5 Transportschicht TCP, UDP 4 ICMP Vermittlungsschicht IP 3 Sicherungsschicht 2 Physikalische Ebene 1 Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
ISO/OSI-Referenzmodell Protokolle sind ineinander geschachtelt eine Schicht n nimmt Dienste der Schicht n-1 in Anspruch und stellt der Schicht n+1 Dienste bereit Beispiel für ein TCP-Paket in einem Ethernet: Ethernet-Frame IP-Packet TCP-Packet Nutzdaten (z.B. http) Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
TCP/IP - Architekturmodell Application Level WWW (http) File Transfer (ftp) E-Mail (smtp) NameServer (dns) NFS Transmission Level Transmission Control Protocol User Datagramm Protocol Internet Level Internet Protocol & Internet Control Message Protocol Network Level ARPANET Satelliten Netzwerk X.25 Ethernet Token Ring Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
Internet Protocol IP ist ein packetorientiertes und verbindungs-loses Protokoll der Vermittlungsschicht dient der Abstaktion von Besonderheiten der unterliegenden Schicht 2 Protokoll wie z.B. Ethernet, Token Ring oder ATM bietet der Transportschicht einen unzuverlässiges Transportsystem Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
Internet Protocol v4 Version K-Länge Servicetypen Paketlänge Identifikation DF MF Fragmentabstand Lebenszeit Protokoll Kopfprüfsumme Protkoll-Kopf Senderadresse Empfängeradresse Optionen Füllzeichen Eigentliche Nutzdaten bzw. Protokoll-Köpfe+Daten von Protokollen höherer Schichten (z.B. TCP) Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
Internet Protocol v4 Version: klassisch v4, zukünftig v6 Kopflänge: Länge des Paketkopfs in 32Bit-Worten Servicetypen: Prioritätsvergabe Paketlänge: Länge des ganzen Pakets in Byte Identifikation, DF, MF, Fragmentabstand: s.u. Lebenszeit: verbleibende Paketlebenszeit Protokoll: Nummer des transportierten Protokolls Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
Internet Protocol v4 Kopfprüfsumme: Prüfsumme über den Paketkopf Sender- und Empfängeradresse: eindeutige 32Bit Adressen Optionen: für flexible Erweiterbarkeit (z.B. Zeitstempel, Source Routing,...) Füllzeichen: Auffüllen auf Vielfaches von 32-Bit Nutzdaten (z.B. TCP) Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
IP-Adressen 32-Bit lang (z.B: 134.100.14.15 oder 86640E0Fhex) global eindeutig (mit Ausnahmen) bestehen aus Netz- und Host-Anteil früher: Netzanteil nur in 8, 16 und 24 Bit (Klasse A,B und C) mit CIDR: flexibler Netzanteil zusätzlich: Multicast-Adressen private Adressen... Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
IP - Fragmentierung Felder: DF, MF, Identifikation, Fragmentabstand kann nur bei DF=0 angewendet werden wird von den Routern eigenständig vorgenommen kann bei Bedarf wiederholt angewendet werden Zielhost muss die Fragmente zusammensetzen Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
IP - Fragmentierung: Beispiel Netz1: MTU 1200Byte Netz2: MTU 532 Byte Netz3: MTU 276 Byte Paket mit Länge 1044Byte (= 20Byte Header + 1024Byte Daten) und nicht gesetztem DF-Bit soll über die 3 Netze übertragen werden Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
IP - Fragmentierung: Beispiel Netz1: 1200 ID / MF=0 / FO=0 / Rest Daten 0..1023 Netz2: 532 ID / MF=1 / FO=0 / Rest Daten 0..511 ID / MF=0 / FO=64 / Rest Daten 512..1023 Netz2: 276 ID / MF=1 / FO=0 / Rest 0..255 ID / MF=1 / FO=32 / Rest 256..511 ID / MF=1 / FO=64 / Rest 512..767 ID / MF=0 / FO=96 / Rest 768..1023 Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
IP - Fragmentierung Die Reihenfolge der Ankunft beim Zielhost spielt keine Rolle. Wenn nach Ablauf eines Timers nicht alle Teilpakete angekommen sind, wird das Paket verworfen. Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
Ports Ports von 0 bis 65535 gibt es unabhängig voneinander bei TCP und UDP sie stellen die Endpunkte einer Kommunikationsbeziehung zwischen zwei Rechnern dar die sog. „well-known-ports“ von 0..1023 sind standardisiert z.B.: TCP-Port 80 für http UDP+TCP-Port 53 für DNS UDP-Port 123 für NTP Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
TCP (Transmisson Control Protocol) verbindungsorientiertes Protokoll beinhaltet verschiedene Algorithmen zur Fehler-erkennung und -behandlung Sequenznummern Quittungsnummern Anzeigen (Flags) die richtige Reihenfolge der Daten ist garantiert bietet der Anwendungsschicht einen zuverlässigen Transportdienst Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
TCP (Transmisson Control Protocol) Sender-Port Empfänger-Port Sequenznummer Quittungsnummer Kopflänge Reserviert Anzeigen Fenstergrösse Prüfsumme Urgent Zeiger Optionen Füllzeichen Eigentliche Nutzdaten bzw. Protokoll-Köpfe+Daten von Protokollen höherer Schichten (z.B. http) Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
TCP Sender- und Empfängerport: Endpunkte der TCP-Verbindung Sequenznummer: Nummer zur Indentifizierung gesendeter Datensegmente Quittungsnummer: Nummer zur Bestätigung bereits empfangener Datensegmente Kopflänge: Länge des TCP-Kopfs in 32Bit-Worten Anzeigen: zur Steuerung (z.B. Verbindungsauf und -abbau) Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
TCP Fenstergröße: wird vom Host je nach Belastung dynamisch festgelegt Prüfsumme über: TCP-Paketkopf Daten Teil des IP-Paketkopfs (u.a. Quell und Zieladresse) Urgent-Zeiger: Zeiger auf das Ende von dringenden Daten, die vor den eigentlichen Nutzdaten stehen Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
TCP Optionen: z.B. MSS (Maximum Segment Size) Füllzeichen: auf die nächste 32-Bit-Grenze wird mit Nullen aufgefüllt Nutzdaten (z.B. http) Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
UDP - User Datagramm Protocol verbindungsloses Protokoll der Transportschicht bietet keine gesicherte Übertragung Flusskontrolle Garantie auf Reihenfolgeerhalt einfaches Protokoll ohne großen Overhead Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
UDP - User Datagramm Protocol Sender-Port Empfänger-Port Länge Prüfsumme Sender- und Empfängerport: Endpunkte der UDP-„Verbindung“ Länge: Länge des UDP-Pakets Prüfsumme: ist optional und wird gebildet über: UDP-Paketkopf Daten Teil des IP-Paketkopfs (u.a. Quell und Zieladresse) Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
ICMP - Internet Control Message Protocol Steuer- und Fehlerbenachrichtigungsprotokoll wird von IP, aber auch von höheren Schichten wie UDP und TCP benutzt dient unter anderem zu Testzwecken ICMP-Daten werden in IP-Paketen verschickt Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
ICMP - Internet Control Message Protocol Typ Code Prüfsumme Verschiedenes Daten Typ: Art der ICMP-Nachricht Code: weitere Unterteilung innerhalb des Typs Prüfsumme: über das ICMP-Paket Verschiedenes: nur bei manchen Typen genutzt Daten: bei den meisten Typen der IP-Kopf des fehlererzeugenden Pakets + 64 weitere Bits Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
ICMP - Nachrichtentypen 1. Fehlermeldungen Typ3: Destination Unreachable Code0: Netz nicht erreichbar Code1: Rechner nicht erreichbar Code2: Protokoll nicht erreichbar Code3: Port nicht erreichbar Code4: Fragmentierung erforderlich, aber DF=1 Typ4: Source Quench Typ5: Redirect Typ11: Time Exeeded Typ12: Parameter Problem Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
ICMP - Nachrichtentypen 2. Anfragen Typ8: Echo Request Typ0: Echo Reply (einzige IMCP-Nachricht, die jeder Rechner unterstützen muss) Typ17: Adress Mask Request Typ18: Adress Mask Response PING Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
Demonstration Ping mit Ethereal: Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
TCP Verbindungsablauf Drei Phasen: Verbindungsaufbau Datenaustausch Verbindungsabbau Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
1. Verbindungsaufbau Verbindungswunsch Bestätigung durch beide Seiten Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
Sequenznummern Erhaltung der Reihenfolge Nummerierung: Zufallszahl auf beiden Seiten Seq.nr. := Initiale Seq.nr. + Byte-Position im Datenstrom Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
2. Datenaustausch Senden eines Segments und Start eines Timer Bestätigung mit nächster erwarteter Seq.nr. wird Timer überschritten, erneutes Senden Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
sliding window Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
variable window Größe des Fensters kann variieren: Reagieren auf Netzwerk-Engpässe Flusskontrolle (z.B. zwischen verschieden starken Partnern) Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
3. Verbindungsabbau Senden eines Segments mit FIN=1 Bestätigung muss für beide Richtungen gemacht werden Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
Demonstration TCP Verbindungsablauf mit Ethereal: Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
Zustandsautomat Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
Fehlerbehandlung Checksummen-Fehler Ablehnung einer Verbindung Abgebrochene Verbindungen Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
Checksummen-Fehler Erkennen von Übertragungsfehlern Defekte Pakete werden weggeworfen Nach Timeout wird das entsprechende Paket neu gesendet Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
Ablehnung einer Verbindung Versuch eines Verbindungsaufbaus zu einem geschlossenen Port Beispiel TCP Beispiel UDP Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
Beispiel TCP Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
Beispiel UDP Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
Abgebrochene Verbindung plötzlicher Abbruch (Absturz, Kabel entfernt, ...) Schließen der Verbindung nach Timeout Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
IP Routing Protokolle RIP : Routing Information Protocol OSPF: Open Shortest Path First BGP4: Border Gateway Protocol 4 IGP EGP Distance Vector Algorithmus RIP BGP4 Link State Algorithmus OSPF Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
IPv6 Adressgrösse 128 Bit Einfacheres Header-Format Erweiterte Unterstützung von Optionen Dienstarten Sicherheit Erweiterbarkeit Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
… das war‘s ! Fragen ? Kommentare ? Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
Literaturliste I RFCs http://www.ietf.org/rfc/rfc####.txt 0768 – User Datagram Protocol 0791 – Internet Protocol Version 4 0792 – Internet Control Message Protocol 0793 – Transmission Control Protocol 2018 – Transmission Control Protocol Selective ACK 2460 – Internet Protocol Version 6 Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle
Literaturliste II Bücher: NetCat Ethereal: TCP/IP Network Administration (Craig Hunt) Technik der IP-Netze (Anatol Badach & Erwin Hoffmann) NetCat http://www.atstake.com/research/tools/index.html#network_utilities Ethereal: http://www.ethereal.com Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle