Skip to content

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.

Anwendungsschicht
Protokolle: z.B. HTTP, HTTPS, SMTP, POP3, ...
Transportschicht
Protokolle: TCP und UDP
Netzwerkschicht
Protokolle: IPv4 und ICMP
Netzzugangsschicht
Protokoll: ARP
physikalisches Netzwerk
z.B. Ethernet
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
  • das Simple Mail Transfer Protocol (SMTP, RFC 5321),
  • das Post Office Protocol - Version 3 (POP3, RFC 1939)
  • und das Internet Message Access Protocol (IMAP, RFC 3501)
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.

Carsten Eilers

>
        </div>
                
        <footer class= Kategorien: Grundlagen

Trackbacks

Dipl.-Inform. Carsten Eilers am : Angriffe auf TCP/IP (1) - Spoofing

Vorschau anzeigen
Ab dieser Folge geht es um das Netzwerkprotokoll TCP/IP und mögliche Angriffe darauf. Das TCP/IP-Schichtenmodell und die verwendeten Pakete habe ich deshalb in der vorherigen Folge bereits erklärt. Außer Schwachstellen in Imp

Dipl.-Inform. Carsten Eilers am : Angriffe auf TCP/IP (4) - ARP-Spoofing

Vorschau anzeigen
Für das TCP-Hijacking muss der Angreifer den Netzwerkverkehr mindestens eines Opfers belauschen. Während dies bei über einen Hub verbundenen Rechnern sehr einfach war, ist es in den aktuellen geswitchten Netzwerken deutlich aufwendig