Angewandte IT-Sicherheit Vorlesung im Herbstsemester 2006/2007 Prof. F. Freiling Dipl.-Inform. Martin Mink Lehrstuhl Praktische Informatik 1 Crashkurs TCP/IP-Netzwerke Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 1 Übersicht ● Schicht 2 – ● MAC-Adresse, Hub/Switch Schicht 3 – Internet Protocol (IP), ARP, ICMP ● ● ● Adressierung Schicht 4 – Transmission Control Protocol (TCP) – User Datagram Protocol (UDP) nicht: – Aufgaben der Schichten (z.B. Routing) – Aufbau/Geschichte des Internet Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 2 Schichtenmodelle: Prinzipien ● ● ● ● Jede Schicht erfüllt bestimmte Funktionen und stellt der darüberliegenden Schicht ihre Dienste zur Verfügung Hierarchie mit zunehmend abstrakterer Betrachtung von Kommunikationsvorgängen: – physikalische Übertragung – Interpretation der übertragenen Daten – Kommunikation zwischen Anwendungsprogrammen Nichtbeachtung der (internen) Realisierung (d.h. keine Implementierungsvorschriften) Definition von Protokollen zu jeder Schicht in eigenen Normen Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 3 TCP/IP und das ISO OSIReferenzmodell Anwendungsebene (Application Layer) Anwendungsebene Darstellungsebene (Presentation Layer) Sitzungsebene (Session Layer) Transportebene (Transport Layer) Transportebene (TCP/UDP) Netzwerkebene (Network Layer) Internetebene (IP) Sicherungsebene (Data Link Layer) Bitebene (Physical Layer) ISO/OSI Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke Host-to-Network-Ebene TCP/IP 4 Die TCP/IP Protocol Suite HTTP Protokolle Telnet SMTP DNS Ethernet ICMP Token Ring Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke DHCP TFTP IP ARP ATM Application Layer Transport Layer UDP TCP IGMP Netze FTP RARP Wireless LAN Internet Layer Host-to-network Layer 5 Layer 2: MAC-Adressen ● Netzwerkkarten sind im LAN mittels der Media Access Control (MAC) Adresse identifizierbar – 48 Bit, als Hexadezimalzahl geschrieben ● – (eigentlich) weltweit eindeutige Adresse ● ● Beisp.: 08:00:46:43:D1:EB aber: lässt sich fälschen MAC Adressen sind nur im lokalen Netzwerk sichtbar (nicht hinter dem nächsten Router) Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 6 Layer 2: Hardware ● Hardware zum Verbinden von Rechnern ● Hub – ● schickt Pakete an alle angeschlossenen Rechner (Broadcast) Switch – schickt Pakete nur an den jeweiligen Empfänger Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 7 IP – Internet Protocol IP: verbindungslose, unzuverlässige Übertragung von Paketen (“Best effort”) • Transparente Ende-zu-Ende-Kommunikation zwischen Rechnern • Routing, Interoperabilität zwischen verschiedenen Netztypen • IP-Adressierung (IPv4): stellt eine logische 32-Bit-Adresse zur Verfügung eindeutige IP-Adresse für jeden Host und für jeden Router • Fragmentierung und Wiederherstellung der Pakete • Maximale Paketgröße: 64 KByte (in der Praxis: 1500 Byte) Derzeit flächendeckend eingesetzt: Version 4 des IP-Protokolls: IPv4 Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 8 IP-Paket 32 Bits (4 Bytes) Version IHL Type of Service Identification Time to Live Protocol Total Length DM FF Fragment Offset Header Checksum IP Header, normalerweise 20 Bytes Source Address Destination Address Options (variable, 0-40 Byte) DATA (variable) Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke Padding Header Data 9 Der IP-Header (Auswahl) • Source Address / Destination Address: Netz- und Hostnummern von Sender und Empfänger. Diese Information benutzen die Router zur Wegebestimmung. • Version: IP-Versionsnummer (mehrere IP-Versionen gleichzeitig einsetzbar) • Total Length: Länge des gesamten Datagramms (in Byte, 216-1 = 65535 Bytes) • Time-to-Live (TTL): Lebenszeit von Datagrammen begrenzen auf maximal 255 Hops (verhindert endloses Kreisen von Paketen im Netz). Der Zähler wird bei jedem Hop verringert, bei 0 wird das Datagramm verworfen. • Header Checksum: Muss bei jedem Hop neu berechnet werden (da sich TTL ändert) • Protocol: welches Transportprotokoll wird im Datenteil verwendet (UDP, TCP, ...)? • DF: Don't Fragment: Paket soll nicht fragmentiert werden (kann dann evtl. nicht jeden möglichen Weg im Netz nehmen). • MF: More Fragments. "1" - es folgen weitere Fragmente. "0" - letztes Fragment eines Datagramms) • Fragment Offset: Folgenummern der Fragmente eines Datagramms Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 10 IP-Adressierung • IP-Adressen sind 32 Bit lang und weltweit eindeutig • Zur besseren Lesbarkeit Darstellung in der sog. Dotted Decimal Notation (jeweils 8 Bit werden zu einer Dezimalzahl zusammengefasst, durch „.“ getrennt) • Beisp.: 10000110 10011011 01011000 01100001 ð 134.155.88.97 • Struktur der Adresse: Netzwerk-Adresse für physikalisches Netz (z.B. 134.155.0.0) und Rechner-Adresse für einen Host (z.B. 134.155.88.97) • 5 Netzklassen: 32 Bits 126 Netze 224 Hosts adressierbar (ab 1.0.0.0) Class A 0 Network B 10 C 110 D 1110 Multicast-Adresse E 1111 Für künftige Nutzung reserviert 16383 Netze 216 Hosts (ab 128.0.0.0) Host Network Host Network Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke Host 2097151 Netze (LANs) 256 Hosts (ab 192.0.0.0) 11 Spezielle Adressen ● ● ● 127.0.0.1 bzw. „localhost“: bezeichnet den lokalen Rechner („loopback“) 169.254.0.0 – 169.254.255.255: falls kein DHCPServer vorhanden („link local“) private Adressbereiche („private address space“) – frei verwendbar für interne Netze – dürfen nicht im Internet geroutet werden – 10.0.0.0 - 10.255.255.255: 1 Class A-Netz – 172.16.0.0 - 172.31.255.255: 16 Class B-Netze – 192.168.0.0 - 192.168.255.255: 256 Class C-Netze Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 12 Classless Inter-Domain Routing ● Problem: starre Klasseneinteilung ● Abhilfe: Classless Inter-Domain Routing (CIDR) – Trennung von starrer Klasseneinteilung durch Ersetzen der festen Klassen durch Netzwerk-Präfixe variabler Länge – einige Bits der Rechner-Adresse werden als NetzwerkID genutzt – eine Subnetz-Maske identifiziert die „missbrauchten“ Bits Class BAdresse SubnetzMaske Network Host 1111111111111111 1111110000000000 10 Network Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke Subnet Host 13 Netzmaske ● ist ebenfalls 32 Bit breit ● gibt die Trennung zwischen Netzwerk und Host an ● enthält an den Stellen eine 1, die Netzwerk und Subnetz bezeichnen ● Ermitteln des Netzteils durch AND mit IP-Adresse ● Beisp.: IP-Adresse: 134.155.88.97 Netzmaske: 255.255.192.0 AND: Netz: Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 10000110 10011011 01011000 01100001 11111111 11111111 11000000 00000000 10000110 10011011 01000000 00000000 134. 155. 64. 0 14 Netzmaske (2) ● platzsparende Notation: Netz/Maske – z.B.: 134.155.88.97/18 – Die „/18“ bedeutet: 18 Bits der Netzmaske gesetzt, also 255.255.192.0 (255 entspricht 8 gesetzten Bits) ● Class C-Netz? ● Class B-Netz? ● Subnetting meist aus organisatorischen (Broadcasts), aber auch Sicherheitsgründen (Router mit Paketfiltern) Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 15 IP Version 6 • Dramatisch anwachsender Bedarf für neue IP-Adressen • keine Unterstützung von Mobilität, Sicherheitsmechanismen, Echtzeitanwendungen • Verbesserungend durch IPv6 – 128-Bit-Adressen (8 Gruppen zu je 4 Hexadezimal-Zahlen) Header: 1 4 Version (4) 8 Priority (4) PayloadLen (16) 16 24 32 FlowLabel (24) NextHeader (8) HopLimit (8) SourceAddress (128) – Anycast Address: Erreiche irgendeinen von mehreren – Authentifizierung und Privacy DestinationAddress (128) – Einfacher Header: keine Optionen, Protocol, Fragmentierung, Checksum NextHeader/Data Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 16 ARP: Address Resolution Protocol ● ● Schnittstelle zum Layer 2 Problem: im lokalen Netzwerk nur Adressierung über MAC-Adresse (nicht IP-Adresse) möglich ● Gesucht: Zuordnung einer MAC- zu einer IP-Adresse ● Lösung: ARP ● 2 Nachrichten: ● – ARP-Request (sendender Rechner): Who has <IP>? – ARP-Reply (gesuchter Rechner): <IP> is at <MAC> Zuordnung MAC-/IP-Adresse wird im ARP-Cache zwischengespeichert – warum? Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 17 ICMP - Internet Control Message Protocol Steuerprotokoll der Ebene 3 für Fehler- und Kontrollnachrichten. Type/Code gibt die Art der Nachricht an, z.B.: 0 3 4 11 12 30 Destination unreachable Echo Request/Reply Source Quench Time exceeded for Datagram Parameter Problem on Datagram Traceroute (Paket kann nicht zugestellt werden) (Zustandsabfrage, z.B. beim ping) (Choke-Paket, Bitte um Reduktion der Datenrate) (TTL hat 0 erreicht, das Paket wird verworfen) (Ein Header-Feld ist falsch ausgefüllt) (Der Netzwerkpfad wird nachverfolgt) Host ICMP Reply Router ICMP Request Host ICMP Message ICMP Request: Zustandsabfrage ICMP Reply: Antwort darauf ICMP Message: Übermittlung von Zustandsinformationen und Kontrollnachrichten Router Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 18 TCP und UDP - Die Transportschicht verbindungsorientiert HTTP FTP Telnet verbindungslos SMTP DNS Ethernet ICMP TFTP Transport Layer UDP TCP IGMP DHCP IP Token Ring ARP ATM Application Layer RARP Wireless LAN Internet Layer Host-to-network Layer TCP (Transmission Control Protocol): Zuverlässig, verbindungsorientiert UDP (User Datagram Protocol): „best effort“, verbindungslos Stellen eine Kommunikation zwischen Anwendungsprozessen bereit Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 19 Eigenschaften von TCP • Verbindungsorientiert und zuverlässig (fehlerfrei, reihenfolgetreu, ohne Duplikate) • Fehlerbehandlung, Quittierung, Flusskontrolle (Sliding-Window-Verfahren) • Adressierung der Applikation über Portnummern (16-Bit-Adresse) Secure Sockets Layer Secure Shell World Wide Web File Transfer Electronic Mail FTP 20 / 21 SSH SMTP HTTP SSL 22 25 80 995 well-known (TCP) Ports Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 1024 RFC 1700 20 Der TCP-Header Bit Position 0 8 16 Source Port • 20 Byte Header 24 31 Destination Port Sequence Number • zzgl. Optionen • dann folgen bis zu 65.495 Datenbytes Acknowledgement Number HL Res. 6 Flags Window Size Checksum Urgent Pointer Padding Options Data Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 21 Der TCP-Header (Auswahl) • Source- und Destination-Port: Port-Nummer von Sender bzw. Empfänger • Sequence Number/Acknowledgement Number: Segmente haben eine eigene 32 Bit Sequenz- und Bestätigungsnummer für den Fenstermechanismus zur Flusskontrolle (Sliding Window). • Die Bestätigungsnummer gibt das nächste erwartete Byte an! • HL: Wie bei IP verfügt auch der TCP-Header über eine Angabe seiner Länge. Die Angabe erfolgt in 32-Bit-Worten. • Window Size: Größe des Pufferspeichers für die Verbindung. Zeigt an, wie viele Dateneinheiten der Empfänger gleichzeitig speichern kann. Hierdurch wird das Fenster der Flusskontrolle angepasst. • Flags (u.a.): • ACK: Bestätigungsfeld, für den Fall, dass eine Quittung mitgesendet wird. • SYN: auf 1 gesetzt beim Aufbau einer Verbindung • FIN: auf 1 gesetzt beim Abbau einer Verbindung • RST: sofortiger Abbruch einer Verbindung Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 22 TCP: 3-WegeVerbindungsaufbau Client Server SYN, SEQ= x K=x+1 AC SYN, SEQ=y, ACK=y+1, SE Q=x+1 • Der Client startet unter Angabe von IP-Adresse, Portnummer und maximal akzeptabler SegmentGröße eine CONNECT-Operation. • CONNECT sendet ein SYN. • Ist der Destination Port der CONNECT-Anfrage identisch zu der Port-Nummer, auf der der Server wartet, wird die Verbindung akzeptiert, andernfalls mit RST abgelehnt. • Der Server schickt seinerseits das SYN zum Client und bestätigt zugleich den Erhalt des ersten SYNSegments. • Der Client schickt eine Bestätigung des SYNSegments des Servers. Damit ist die Verbindung aufgebaut. Three-Way-Handshake Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 23 Sliding Window (Flusskontrolle) • Sender sendet entsprechend der Fenstergröße (Bytes) • Fenster wird um n Bytes versetzt, sobald ein ACK für n Bytes eingetroffen ist • Ausnahme: Dringende Daten (URGENT-Flag) werden sofort gesendet • Besonderheit: die Fenstergröße kann während der Übertragungsphase geändert werden Initial window 1 2 3 4 5 6 7 8 9 10 9 10 Segment 1, 2 und 3 acknowledged Window slides 1 Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 2 3 4 5 6 7 8 24 Das User Datagram Protocol (UDP) Prinzip: „Keep it simple!“ • 8 Byte Header • Wie IP: verbindungslos und unzuverlässig • geringe Zuverlässigkeit, aber schneller Austausch von Informationen • keine Bestätigung der Pakete auf der UDP-Schicht, fehlerhafte Pakete werden schlicht und einfach verworfen. Weiterhin sind Duplikation, Reihenfolgevertauschung, Paketverlust möglich. • die Checksumme bietet die einzige Möglichkeit, die Pakete auf Übertragungsfehler zu testen • Möglich: ACKs und Neuübertragungen werden von der Anwendung selbst übernommen. • Nutzung für Multicast (nicht möglich bei TCP) Warum überhaupt UDP? Erst die Hinzunahme eines Ports zu einer Netzwerkadresse kennzeichnet eine Kommunikation eindeutig. Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 25 UDP-Header Bit Positon 0 8 16 24 Source Port Destination Port Message Length Checksum 31 Data • • • • Adressierung der Applikationen über Portnummern Message-Length gibt die Gesamtlänge (Header + Daten) in 32 Bit Worten an Checksum (optional!) – IP hat keine Checksumme für den Datenteil, daher kann sie hier eine sinnvolle Ergänzung sein. Ablauf der Berechnung wie bei TCP Daten werden bei Bedarf auf eine gerade Bytezahl aufgefüllt (da Message Length in 32 Bit Worten angegeben wird) Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 26 Credits ● Folien basierend auf der Vorlesung „Datenkommunikation“ im WS 03/04 der RWTH Aachen Übung Angewandte IT-Sicherheit – TCP/IP-Netzwerke 27