TCP/IP und IPv4 im Überblick
In den kommenden Folgen werde ich Angriffe auf bzw. Schwachstellen in TCP/IP vorstellen. Für deren Verständnis sind einige grundlegende Kenntnisse des TCP/IP-Protokolls extrem hilfreich.
Grundlage: Das TCP/IP-Schichtenmodell
Das TCP/IP-Protokoll basiert auf vier Schichten. Jede davon leitet die Daten beim Senden von der übergeordneten an die nächsttiefere Schicht weiter und fügt dabei die eigenen Verwaltungsinformationen hinzu. Beim Empfang werden entsprechend jeweils nur die auf der jeweiligen Schicht der Gegenseite hinzugefügten Informationen ausgewertet.
|
|
|
|
|
- Netzzugangsschicht
- Die Netzzugangsschicht bildet die Schnittstelle zur verwendeten Netzwerktechnologie, z.B. Ethernet. Sie kennt die Struktur und Adressierung des zu Grunde liegenden Netzes.
- Für die Zuordnung der Hardwareadresse des Netzwerks zur IPv4-Adresse des Betriebssystems wird das Address Resolution Protocol (ARP, definiert in RFC 826) verwendet.
- Auf der Netzzugangsschicht kommunizieren Systeme innerhalb eines Netzwerks direkt miteinander, ohne auf die Unterstützung durch andere Systeme angewiesen zu sein.
- Netzwerkschicht
-
- Die Netzwerk- oder Internetschicht ist für die Kommunikation zwischen Systemen in verschiedenen Netzwerken zuständig.
- Die Kommunikation erfolgt über das Internet Protocol Version 4 (IPv4, definiert in RFC 791) oder Version 6 (IPv6, dazu später mehr).
- IPv4 ist ein verbindungsloses Protokoll, d.h. es erlaubt den Austausch von Daten zwischen zwei Systemen ohne vorherigen Verbindungsaufbau. Es findet weder eine Überprüfung der korrekten Übertragung noch eine Fehlererkennung statt. Fehlerhafte Pakete, die nicht rekonstruiert werden können, werden verworfen.
- Das Internet Control Message Protocol (ICMP, RFC 792) dient dem Austausch von Statusinformationen zwischen den IPv4-Implementierungen verschiedener Systeme.
- Anhand von Routing-Tabellen wird entschieden, auf welchem Weg ein IPv4-Paket an welches andere System geschickt werden muss, um den gewünschten Empfänger zu erreichen.
- Transportschicht
-
- Die Transportschicht stellt eine Verbindung zwischen zwei Endpunkten der jeweiligen Anwendung her.
- Zur Adressierung der Anwendung werden die so genannten Ports verwendet (Liste bekannter Ports).
- Das Transport Control Protocol (TCP, RFC 793) ist ein verbindungsorientiertes Protokoll: Nach dem Verbindungsaufbau ist sicher gestellt, dass die von der Anwendungsschicht des sendenden Systems an das TCP übergebenen Daten fehlerfrei und in der richtigen Reihenfolge an die Anwendungsschicht des empfangenen Systems übermittelt werden oder das sendende System eine entsprechende Fehlermeldung enthält.
- Das User Datagram Protocol (UDP, RFC 768) ist ein verbindungsloses Protokoll. Es wird vor allem zur Übertragung kleiner Datenmengen verwendet, bei denen sich der Aufbau einer sicheren Verbindung nicht lohnt. Das Fehlen jeglicher Sicherheitsfunktionen führt dazu, dass UDP-Pakete sehr leicht zu fälschen sind.
- Anwendungsschicht
- Auf der Anwendungsschicht ist eine Vielzahl von Protokollen angesiedelt, z.B. für den Transport von Webseiten oder für den Transport von E-Mails.
Die verschiedenen Pakete
Pakete der Netzzugangsschicht
Ein Ethernet-Paket (Version 2, für weitere Informationen siehe zum Beispiel hier) hat folgenden Aufbau:
Präambel (7 Byte) dient der Synchronisation |
Paketbegrenzer (1 Byte) markiert den Anfang des Pakets |
Zieladresse (6 Byte) Hardwareadresse des Ziels |
Quelladresse (6 Byte) Hardwareadresse der Quelle |
Type (2 Byte) Definition des nächsthöheren Protokolls |
Daten variabel, min. 46, max. 1.500 Bytes bei weniger als 46 Bytes wird aufgefüllt |
Prüfsumme (4 Byte) |
Pakete der Netzwerkschicht
Ein IPv4-Paket (RFC 791) hat folgenden Aufbau:
Version (4 Bit) |
Headerlänge (4 Bit) | Servicetype (8 Bit) |
Gesamtlänge in Bytes (16 Bit) |
||
Identifikation (16 Bit) |
Flags (3 Bit) |
Fragment-Offset (13 Bit) |
|||
Time to Live (8 Bit) | Protokoll (8 Bit) | Header-Prüfsumme (16 Bit) | |||
Quell-IPv4-Adresse (32 Bit) | |||||
Ziel-IPv4-Adresse (32 Bit) | |||||
IPv4-Optionen und Füllzeichen (insgesamt 32 Bit) | |||||
Daten |
Ein ICMP-Paket RFC 792) hat den folgenden Aufbau:
Type (8 Bit) |
Code (8 Bit) |
Prüfsumme (16 Bit) |
|
Verschiedenes (32 Bit) | |||
IPv4-Header und weitere 64 Bits oder Testdaten |
Pakete der Transportschicht
Ein TCP-Paket (RFC 793) hat den folgenden Aufbau:
Quell-Port (16 Bit) |
Ziel-Port (16 Bit) |
||
Sequenznummer (32 Bit) |
|||
Quittungsnummer (32 Bit) |
|||
Header-Länge (4 Bit) |
Reserviert (6 Bit) |
Flags (6 Bit) |
Fenstergröße (16 Bit) |
Prüfsumme (16 Bit) | Urgent Pointer (16 Bit) | ||
Optionen und Füllzeichen (insgesamt 32 Bit) | |||
Daten |
Ein UDP-Paket (RFC 768) hat folgenden Aufbau:
Quell-Port (16 Bit) |
Ziel-Port (16 Bit) |
Länge (16 Bit) |
Prüfsumme (16 Bit) |
Daten |
Kapselung der Daten
Die Daten der verschiedenen Pakete werden folgendermaßen ineinander gekapselt:
Daten | Anwendungsschicht | |||
|
||||
TCP-Header | Daten | Transportschicht (TCP) | ||
= TCP-Daten | ||||
|
||||
IPv4-Header | TCP-Header | Daten | Netzwerkschicht (IPv4) | |
= IPv4-Daten | ||||
|
||||
Ethernet-Header | IPv4-Header | TCP-Header | Daten | Netzzugangsschicht (Ethernet) |
= Ethernet-Daten |
Ab der nächsten Folge werden Angriffe auf TCP/IP vorgestellt.
Kategorien: Grundlagen
Trackbacks
Dipl.-Inform. Carsten Eilers am : Angriffe auf TCP/IP (1) - Spoofing
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Angriffe auf TCP/IP (4) - ARP-Spoofing
Vorschau anzeigen