Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

49
Grundlagen: Internet- Protokolle Torsten Sorger / Martin Gaitzsch

Transcript of Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Page 1: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Grundlagen: Internet-Protokolle

Torsten Sorger / Martin Gaitzsch

Page 2: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

Gliederung

ISO/OSI Schichten + TCP/IP-Äquivalente IPv4 (Internet Protocol) TCP (Transmission Control Protocol) UDP (User Datagramm Protocol) ICMP (Internet Control Message Protocol)

Page 3: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

Gliederung

TCP Verbindungsablauf Fehlerbehandlung Routingprotokolle IPv6 Überblick

Page 4: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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

Page 5: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

ISO/OSI-Referenzmodell

Physikalische Ebene

Sicherungsschicht

Vermittlungsschicht

Transportschicht

Sitzungsschicht

Darstellungsschicht

Anwendungsschicht

SMTP, FTP, HTTP, DNS...

TCP, UDP

IP

7

6

5

4

3

2

1

ICMP

Page 6: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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)

Page 7: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

TCP/IP - ArchitekturmodellApplicationLevel

TransmissionLevel

InternetLevel

NetworkLevel ARPANET Satelliten

Netzwerk X.25 Ethernet Token Ring

Internet Protocol &Internet Control Message Protocol

TransmissionControl Protocol

User DatagrammProtocol

WWW(http)

File Transfer(ftp)

E-Mail(smtp)

NameServer(dns) NFS

Page 8: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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

Page 9: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

Internet Protocol v4Version K-Länge Servicetypen Paketlänge

IdentifikationLebenszeit Protokoll Kopfprüfsumme

0 DF MF Fragmentabstand

SenderadresseEmpfängeradresse

Optionen Füllzeichen

Eigentliche Nutzdaten bzw. Protokoll-Köpfe+Daten von Protokollen höherer Schichten (z.B. TCP)

Protkoll-K

opf

Page 10: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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

Page 11: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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)

Page 12: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

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

IP-Adressen

zusätzlich: Multicast-Adressen private Adressen...

Page 13: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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

Page 14: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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

Page 15: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

IP - Fragmentierung: Beispiel

Daten 0..1023ID / MF=0 / FO=0 / RestNetz1:1200

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

ID / MF=1 / FO=32 / Rest

ID / MF=1 / FO=64 / Rest

ID / MF=0 / FO=96 / Rest

0..255

256..511

512..767

768..1023

Page 16: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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.

Page 17: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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

Page 18: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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

Page 19: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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

Prüfsumme

Optionen

Anzeigen Fenstergrösse

Urgent Zeiger

Füllzeichen

Reserviert

Eigentliche Nutzdaten bzw. Protokoll-Köpfe+Datenvon Protokollen höherer Schichten (z.B. http)

Page 20: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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)

Page 21: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

TCP

Fenstergröße: wird vom Hostje 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

Page 22: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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)

Page 23: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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

Page 24: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

UDP - User Datagramm ProtocolSender-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)

Page 25: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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

Page 26: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

ICMP - Internet Control Message Protocol

Verschiedenes

Typ Code Prüfsumme

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

Page 27: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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

Page 28: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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

Page 29: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

Demonstration

Ping mit Ethereal:

Page 30: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

TCP Verbindungsablauf

Drei Phasen:1. Verbindungsaufbau2. Datenaustausch3. Verbindungsabbau

Page 31: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

1. Verbindungsaufbau

Verbindungswunsch Bestätigung durch

beide Seiten

Aktiver Teilnehmer Passiver Teilnehmer

SYN

Seq.nr. = x, Ack.nr. = 0

ACKSeq.nr. = x+1, Ack.nr. = y+1

SYN, ACK

Seq.nr. = y, Acknr. = x+1

Page 32: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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

Page 33: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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 SendenAktiver

TeilnehmerPassiver

Teilnehmer

SendeNachricht 1

EmpfangeACK 1

EmpfangeNachricht 1

Sende ACK 1

SendeNachricht 2

Timeout fürNachricht 2

SendeNachricht 2 Empfange

Nachricht 2

Sende ACK 2EmpfangeACK 2

Page 34: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

sliding window

1 2 3 4 5 6 7 8 9 10 11 12 …

ACK ACK

1 2 3 4 5 6 7 8 9 10 11 12 …

Initial Window

Window slides … -->

Page 35: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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ässeFlusskontrolle (z.B. zwischen verschieden

starken Partnern)

Page 36: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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

Aktiver Teilnehmer Passiver Teilnehmer

Page 37: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

Demonstration

TCP Verbindungsablauf mit Ethereal:

Page 38: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

Zustandsautomat

Page 39: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

Fehlerbehandlung

Checksummen-Fehler Ablehnung einer Verbindung Abgebrochene Verbindungen

Page 40: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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

Page 41: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

Ablehnung einer Verbindung

Versuch eines Verbindungsaufbaus zu einem geschlossenen PortBeispiel TCPBeispiel UDP

Page 42: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

Beispiel TCPAktiver Teilnehmer Passiver Teilnehmer

Page 43: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

Beispiel UDPAktiver Teilnehmer Passiver Teilnehmer

Page 44: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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

Page 45: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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 EGPDistance Vector Algorithmus RIP BGP4

Link State Algorithmus OSPF

Page 46: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

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

Page 47: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

… das war‘s !

Fragen ? Kommentare ?

Page 48: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

Literaturliste I

RFCshttp://www.ietf.org/rfc/rfc####.txt0768 – User Datagram Protocol0791 – Internet Protocol Version 40792 – Internet Control Message Protocol0793 – Transmission Control Protocol2018 – Transmission Control Protocol Selective ACK2460 – Internet Protocol Version 6

Page 49: Grundlagen: Internet-Protokolle Torsten Sorger / Martin Gaitzsch.

Torsten Sorger / Martin Gaitzsch 18.415 Sicherheit in vernetzten Systemen - Grundlagen: Internet-Protokolle

Literaturliste II Bücher:

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