Informationssicherheit Teil 1: Wiederholung aus...

35
WIS – WS 2017/18 - Teil 1/Wiederholung 05.10.17 1 Informationssicherheit Teil 1: Wiederholung aus "Rechnernetze"

Transcript of Informationssicherheit Teil 1: Wiederholung aus...

WIS – WS 2017/18 - Teil 1/Wiederholung 05.10.17 1

Informationssicherheit

Teil 1: Wiederholung aus "Rechnernetze"

2WIS – WS 2017/18 - Teil 1/Wiederholung

Hinweise

• In dieser Veranstaltung wird intensiver Gebrauch der Grundlagen des TCP/IP-Stacks aus der Veranstaltung Rechnernetze gemacht.

• Der nun folgende Teil wiederholt diesen Teil.

Weiterhin wird in dieser Veranstaltung von der IP-Version 4ausgegangen.

3WIS – WS 2017/18 - Teil 1/Wiederholung

IP-Adressen I

• Jeder Internet-Knoten hat eine eindeutige 32 Bit-Adresse, die aus einer Nummer für das Netz und der Adresse eines Geräts (Host) besteht.

• Diese 32 Bit-Adressen werden durch vier Dezimalzahlen, die jeweils 8 Bit repräsentieren ("dotted decimal"), dargestellt, z.B. 192.14.17.231.

• Die Adressen werden in 5 Klassen aufgeteilt, u.a.:– Klasse A: Große Netze mit max. 224-2 Adressen

– Klasse B. Mittlere Netze mit max. 216-2 Adressen

– Klasse C: Kleine Netze mit max. 28-2 Adressen

• Einige Adresswerte für Hosts haben besondere Bedeutungen– alle Werte auf 0: Nummer des Netzes

– alle Werte auf 1: Broadcast

• Darüber hinaus sind noch spezielle Bereiche reserviert.

4WIS – WS 2017/18 - Teil 1/Wiederholung

IP-Adressen II

• Die Adresse 127.0.0.1 wird als Loopback-Adresse reserviert (symbolische Bezeichnung: localhost).Wird ein Paket mit dieser Adresse gesendet, wird das Paket unmittelbar empfangen; dies dient zu Testzwecken.Korrekter: für den gesamten Bereich von 127.0.0.1 bis 127.255.255.254 gilt dies.

• Darüber hinaus gibt es noch reservierte Bereiche, die nur innerhalb lokaler Netze vorgesehen sind:– Klasse A: 10.0.0.0 bis 10.255.255.255

– Klasse B: 172.16.0.0 bis 172.31.255.255

– Klasse C: 192.168.0.0 bis 192.168.255.255

Diese Adressen werden im Internet nicht vermittelt und können daher nur lokal verwendet werden; wer eigene IP-Adressen lokal vergibt, sollte sich möglichst an diese Adressbereiche halten, aber nie mit diesen im Internet arbeiten.

5WIS – WS 2017/18 - Teil 1/Wiederholung

IP-Adressen III

Praktisch relevantsind nur die KlassenA, B und C.

6WIS – WS 2017/18 - Teil 1/Wiederholung

Aufbau des IP-Pakets I

7WIS – WS 2017/18 - Teil 1/Wiederholung

Aufbau des IP-Pakets II

• Version (4 bit): 4 oder 6

• IHL (Internet Header Length, 4 bit): Länge des Kopfes in Vielfachen von 4 byte (Wertebereich 5..15)

• Type of Service (8 bit): Qualität

Wert Bedeutung

0 Normal

1 Priorität

2 Immediate

3 Flash

4 Flash override

5 Critical

6 Internet Control

7 Network Control

Werte für das Vorrangfeld

C 0Vorrang D T R

Weg zu niedrigen Kosten

Weg mit hoher Sicherheit

Weg mit hohem Durchsatz

Kurze Verzögerung

3 bit 5 bit

8WIS – WS 2017/18 - Teil 1/Wiederholung

Aufbau des IP-Pakets III

• Paketlänge (16 bit): Länge des gesamten Pakets in byte

• Kennung (16 bit): Kennzeichnung zusammengehöriger fragmentierter Pakete

• Flags (3 bit): Steuerung der Fragmentierung:

0 DF MF

More-Bit: zeigt, ob noch weitere Fragmente kommen

Do-not-Fragment: Fragmentierungsverbot

9WIS – WS 2017/18 - Teil 1/Wiederholung

Aufbau des IP-Pakets IV

• Fragment-Offset (13 bit): Position der Fragmente in Einheiten zu 8 byte, so dass max. 216-1 Bytes transportiert werden können.

• TTL (Time to live, 8 bit): Noch zulässige Anzahl von Sprüngen über Router (Hops) bzw. Zeitdauer, typisch: 30-64 Hops

• Protokoll (8 bit): Nummer des übergeordneten Protokolls

• Headerquersumme (16 bit): wird nach jeder Änderung des Kopfes neu berechnet, insbesondere nach neuem TTL-Wert

• Optionen/Füllbits: Optionen dienen zu Routing-, Statistik-, Debugging und Sicherheitsfunktionen

10WIS – WS 2017/18 - Teil 1/Wiederholung

Fragmentieren I

• Das Zerlegen und Zusammensetzen eines längeren IP-Pakets in eine Sequenz kleinerer Pakete wird Fragmentieren genannt.

• Es ist bei Übergängen zwischen Netzen unterschiedlicher maximaler Paketlängen erforderlich.Beispiele max. Paketlängen (MTU = Maximum Transmission Unit):– IEEE 802.3 1.492 byte

– 4 Mbit/s-Token Ring 4.464 byte

– 16 Mbit/s-Token Ring 17.914 byte

– IEEE 802.11 (WiFi) 2.312 byte

• Das Fragmentieren führen in der Regel die Router an den Netzübergängen durch.

• Der Empfänger sammelt die Pakete und setzt sie dann zusammen.

11WIS – WS 2017/18 - Teil 1/Wiederholung

Fragmentieren II

Offset Daten

0 0 1023

Offset Daten

IP-Header 0 0 511

Offset Daten

IP-Header 512 512 1023

M=1 M=0

M=0

Offset Daten

IP-Header 0 0 255

M=1

Offset Daten

IP-Header 256 256 511

M=1

Offset Daten

IP-Header 512 512 767

M=1

Offset Daten

IP-Header 768 768 1023

M=0

IP-Header

1. Fragmentierung

2. Fragmentierung 2. Fragmentierung

12WIS – WS 2017/18 - Teil 1/Wiederholung

Fragmentieren III

• Alle Fragmente haben dieselbe Kennung, wobei diese keine Reihenfolge definiert. Die Kennungen sollten sich nur nach längeren Zeitabständen wiederholen (um nicht mit verspäteten Paketen in Konflikt zu kommen).

• Zu fragmentierende Pakete mit don't-fragment-Flags werden verworfen, da sie nicht in das nächste Netzwerk geleitet werden können.Es wird eine ICMP-Meldung an den Absender geschickt.

• Knoten, die alle Fragmente eines IP-Pakets innerhalb einer bestimmten Zeitspanne (i.d.R. 30-40s) zum Zusammensetzen nicht erhalten, verwerfen alle schon empfangenen Pakete. Kommen dann noch die verspäteten Pakete, so werden auch diese verworfen.

13WIS – WS 2017/18 - Teil 1/Wiederholung

Protokoll und Ports

Ports sind Schnittstellen zu Entities höherer Schichten als 4.Diese Entities können Server- oder Client-Prozesse sein.

14WIS – WS 2017/18 - Teil 1/Wiederholung

Ports I

• Port = Schnittstelle zu einem Dienst/Applikation

• Es gibt maximal 216-1 Ports, die in folgende Klassen eingeteilt sind:

1..255 Reserviert für TCP/IP-Dienste

256..1023 Reserviert für Anwendungen

1024..49151 Registriert

49152..65535 Dynamisch

• Zuordnung zu den Diensten steht in folgenden Dateien:– UNIX: /etc/services– Win 7: \%Systemroot%\System32\drivers\etc\services

15WIS – WS 2017/18 - Teil 1/Wiederholung

Ports II

• Die Portnummern adressieren Prozesse.• Einige Portnummern sind für die Protokolle TCP und UDP doppelt

vergeben.• IP-Adresse+Portnummer+Protokoll definiert damit exakt einen Dienst

bzw. eine Applikation in einem System.

Portnummer TCP UDP

21 FTP (Filetransfer) FTP (Filetransfer)

23 telnet (rlogin) telnet (rlogin)

53 DNS (Namensdienst) DNS (Namensdienst)

80 HTTP (Web)

110 POP3 (Mail)

119 NNTP (News)

512 exec biff

513 rlogin who

Beispiele für Portnummern (RFC 1700):

16WIS – WS 2017/18 - Teil 1/Wiederholung

Aufbau des TCP-Pakets I

17WIS – WS 2017/18 - Teil 1/Wiederholung

Aufbau des TCP-Pakets II

• Quell-/Zielport (je 16 bit): diese beiden Werte als Paar identifizieren eine TCP-Verbindung: Die ID einer Verbindung wird durch die ersten 32 bit des TCP-Pakets definiert.

• Sequenznummer (32 bit): Nummer des 1. Bytes des Datenfeldes im Paket

• Acknowledge-Nummer (32 bit): alles bis zur Acknowledge-nummer-1 wird bestätigt, wenn das ACK-Flag gesetzt wird.

• Data Offset (4 bit): Länge des Headers in 32-bit-Blöcken

• Urgent-Flag: Paket mit dringlichen Vorrangdaten (Diese Daten gehören dann nicht zum eigentlichen Strom)

• Urgent-Pointer zeigt auf das Ende der Vorrangdaten.

18WIS – WS 2017/18 - Teil 1/Wiederholung

Aufbau des TCP-Pakets III

• Acknowledge-Flag (ACK): Kennzeichnet eine Bestätigung durch Acknowledge-Nummer

• Push-Flag: Verhindert das Zwischenpuffern in der TCP-Schicht

• Reset-Flag: Sofortiger Abbau der Verbindung

• Final-Flag (FIN): Kennzeichnung zum Abbau der Verbindung

• Synchronization-Flag (SYN): Aufbau beim 3-Wege-Handshake

URG ACK PSH RST SYN FIN

Final Flag

Synchronization Flag

Reset Flag

Push Flag

Acknowledge Flag

Urgent Pointer Flag

19WIS – WS 2017/18 - Teil 1/Wiederholung

Aufbau des TCP-Pakets III

• Es gibt keine besonderen Formate für Aufbau-/Abbau-/Bestätigungspakete etc., sondern nur ein Format, bei dem die Flags die Bedeutung des Pakets festlegen.

• Window-Größe: Anzahl der Bytes, die ohne Bestätigung gesendet werden dürfenHiermit wird eine variable Fenstergröße eines Sliding Window-Verfahrens seitens des Empfängers definiert. Da im Duplex-Modus kommuniziert wird, gibt es für jede Richtung eine eigene Fenstergröße.

• Checksumme:Es wird über das ganze TCP-Paket und einen Pseudokopf eine Checksumme gebildet. Im Pseudokopf sind zusätzlich Daten der Schicht 3 enthalten, um Irrläufer im Netz nicht aus Versehen mitzuverarbeiten.

20WIS – WS 2017/18 - Teil 1/Wiederholung

Aufbau des TCP-Pakets IV

• Es gibt keine besonderen Formen für Aufbau-/Abbau-/Bestätigungspakete etc., sondern nur eine Paketform, wobei die Flags die Bedeutung des Pakets festlegen.

• Window-Größe: Anzahl der Bytes, die ohne Bestätigung gesendet werden dürfenHiermit wird eine variable Fenstergröße eines Sliding Window-Verfahrens seitens des Empfängers definiert.Da im Duplex-Modus kommuniziert wird, gibt es für jede Richtung eine eigene Fenstergröße.

21WIS – WS 2017/18 - Teil 1/Wiederholung

Sequenznummer (SN)

• Bei TCP werden nicht die Pakete, sondern die übertragenen Bytes durchnummeriert, wobei Pakete ohne Daten als 1 Byte gezählt werden.

• Wenn das ACK-Flag gesetzt ist, wird das Feld Acknowledge-Nummer (AN) als Bestätigung aller Bytes vor der angegebenen Nummer interpretiert, m.a.W. die AN gibt die Nummer des nächsten nicht-bestätigten Bytes an.

• Wenn alles Empfangene bestätigt werden soll:AN = Sequenznummer des letzten Pakets+1

22WIS – WS 2017/18 - Teil 1/Wiederholung

Aufbau durch 3-Wege-Handshake

SYN, SN=921, kein ACK

SYN, SN=302, ACK=922

SN=922, ACK=303

Station A Station B

SN=921

SN=922ACK=303

Sende=302Erwartet=?

SN=302ACK=922

Sende=921Erwartet=? Sende=302

Erwartet=922

Sende=922Erwartet=303

Sende=303Erwartet=923

Sende=923Erwartet=303

Sende = Nummer desnächsten zu sendendenBytesErwartet = Nummer desnächsten zu empfangenenBytes

23WIS – WS 2017/18 - Teil 1/Wiederholung

Bestätigter Datentransfer

SN=196, ACK=4075 byte Daten

SN=407, ACK=2014 byte Daten

SN=201, ACK=411

Station A Station B

SN=196ACK=407

SN=201ACK=411

Sende=407Erwarte=196

SN=407ACK=201

Bestätigung der 5 byte

Gesamter Datenstrombesteht aus 5 byte

Bestätigung bis406

Sende=196Erwarte=407

Sende=411Erwarte=201

Sende=201Erwarte=407

Sende=202Erwarte=407

24WIS – WS 2017/18 - Teil 1/Wiederholung

Abbau der Verbindung

FIN, SN=296, ACK=507

FIN, SN=507, ACK=297

Station A Station BSN=296ACK=507

SN=297ACK=509

Sende=507Erwarte=296

SN=507ACK=297

Verbindung B-> A beendet

Verbindung A->B beendet

FIN, SN=508, ACK=297

FIN, SN=297, ACK=509

Verbindungen werdenfür jede Richtung ge-trennt abgebautAusnahme: Reset.

25WIS – WS 2017/18 - Teil 1/Wiederholung

Aufbau des UDP-Pakets

26WIS – WS 2017/18 - Teil 1/Wiederholung

Aufbau des ICMP-Pakets I

Das ICMP ist in dem Sinne mit IP verbunden, als dass es im Datenteil eines IP-Pakets integriert ist und dass bestimmte Felder im IP-Kopf gesetztsind.

27WIS – WS 2017/18 - Teil 1/Wiederholung

Aufbau des ICMP-Pakets II

Die verschiedenen Arten von ICMP-Paketen werden durch eine bestimmte Nummer im Type-Feld unterschieden.

Eine Auswahl:

Type Art Erläuterung

3 Destination unreachable

4 Source quench Puffer sind verbraucht

5 Redirect Pfadumleitung

11 Time exceeded Lebenszeit des Datagramms überschritten

0 Echo reply Ping-Antwort

8 Echo request Ping-Anforderung

13 Time Stamp Zeitangabe-Anforderung

14 Time Stamp reply Zeitangabe

Der Aufbau des ICMP-Pakets ist abhängig vom Type-Wert.

28WIS – WS 2017/18 - Teil 1/Wiederholung

Erläuterungen

• Das Feld Code enthält noch weitere Informationen, z. B. bei Anforderungen die Art bzw. bei Antworten Fehlercodes.

• Das Feld Checksumme enthält die ICMP-Kopf-Prüfsumme, d.h. über die ersten 8 byte.

• In Fehlerfällen wird im ICMP-Datenteil das betroffene IP-Paket (IP-Header mit 8 byte Daten) angefügt, um dem Empfänger eine Möglichkeit der Rekonstruktion zu geben.

• Funktionen (Beispiele): – Source Quench dient der Flusskontrolle, siehe

http://en.wikipedia.org/wiki/ICMP_Source_Quench

– Router Advertisement dient der Bekanntgabe von Routern (ca. alle 7-10 Min.) - dient jedoch nicht zum Austausch von Router-Informationen.

– Time Exceeded: Wenn max. Anzahl von Hops erreicht und das IP-Frame verworfen wurde.

29WIS – WS 2017/18 - Teil 1/Wiederholung

Echo und Echo Reply

• ICMP-Typ 8 (echo) ist die Aufforderung eine Antwort (echo reply) an den Sender zurückzusenden.

• Verschiedene Echo-Requests desselben Senders erhalten den-selben Identifier-Wert, während jede Aufforderung aufsteigend durchnummeriert (Sequenznummer) wird.

• Am Ende dürfen noch max. 216-1 byte beliebige Daten angehängt werden.

Optionale Daten

Type (8/0) Code (0) Checksumme

Identifier Sequenznummer

30WIS – WS 2017/18 - Teil 1/Wiederholung

Time exceeded

• Dauert die Übertragung eines IP-Pakets zu lange (Ablaufen des TTL-Wertes (a) oder mind. Ein Fragment wird innerhalb einer bestimmten Zeitspanne vermisst (b)), wird diese ICMP-Meldung an den Sender zurückgesendet und das bzw. die Pakete verworfen.

• Im Falle von (a) ist Code 0, bei (b) 1.

• In den Daten wird zwecks Rekonstruktion der Anfang des verworfenen IP-Pakets angegeben.

IP-Kopf mit den ersten 8 byte Daten

Type (11) Code (0/1) Checksumme

0

31WIS – WS 2017/18 - Teil 1/Wiederholung

Bemerkungen

• Das ICMP-Protokoll ist aufgrund der Unkenntnis der Bedeutung bei vielen Implementierern eine wunderbare Spielwiese für Blödsinn und Hacks, besonders in der Kombination mit Fragmentierung.

• Analoges gilt auch für andere "unbekannte" Protokolle, z. B. IGMP sowie die Routing-Protokolle.

• Hier zeigt sich einer der größten Schwachpunkte des Internets, jedenfalls aus Sicherheitssicht: Es gibt keine sichere Authentifizierung, so dass der Absender durch den Empfänger nicht geprüft werden kann.

• Dies in Kombination mit den Management-Protokollen, wie ICMP, ergibt eine recht unangenehme Mischung.

32WIS – WS 2017/18 - Teil 1/Wiederholung

Network Address Translation (NAT)

• Bei der Network Address Translation (NAT) wird internen Adressen eine oder mehrere externe Adressen durch einen Router zugeordnet:– IP-Maskerading ist im wesentlichen das PAT/NAPT-Verfahren,

wobei hier auch der eingeschränkte Aufbau von Verbindungen von außen erlaubt wird.

• Ziele:– Kopplung von Netzen mit demselben Adressraum

– Zugang eines Netzes über eine IP-Adresse

– Verdecken der eigenen Adressen (Sicherheit)

33WIS – WS 2017/18 - Teil 1/Wiederholung

Masquerading

• Mehrere interne Adressen: 1 externe Adresse (PAT)– Zuordnung der internen IP/Port-Adressen auf eine externe IP-

Adresse (und umgekehrt)

Dieser Fall wird auch Masquerading genannt.

Client

Lokales Netzwerk Router

Client

Client Client

Internet

NAT

Einwahlknotendes Providers

(ISP)

34WIS – WS 2017/18 - Teil 1/Wiederholung

Erläuterungen

• Aufbau einer Tabelle:– Interne IP-Adresse

– Externe IP-Adresse

– Interne Port-Nummern (Sender, Empfänger)

– Externe Port-Nummer (Sender, Empfänger)

– Protokoll

• Der Auf-/Abbau der Tabelle muss dynamisch erfolgen.

• Alle Verbindungen nach außen müssen in beiden Richtungen eindeutig über folgendes N-Tupel identifizierbar sein:– IP-Adressen

– Protokoll-Nummer

– Sende- und Empfänger-Port

• Wenn das nicht der Fall sein sollte (aufgrund doppelt benutzter Werte), ersetzen neue Portnummern die alten, so dass die Eindeutigkeit gewährleistet ist.

35WIS – WS 2017/18 - Teil 1/Wiederholung

Nun wieder etwas entspannen...