Computer-Netzwerke
Willemers Informatik-Ecke

Grundlagen

Schichtenmodelle

Netzwerkkommunikation findet auf verschiedenen Ebenen statt. Auf der untersten Ebene geht es nur um physikalische Dinge. In einer Ebene darüber geht es um die Vermittlung der Pakete zum Ziel und die Anwendungsschicht interessiert sich nur für den Datenaustausch von Client und Server. Wie die Ebenen voneinander abgegrenzt werden, beschreiben die Schichtenmodelle.

Netzwerk-Topologie

Unter der Topologie eines Netzwerks versteht man die physische oder logische Anordnung und Verbindung zwischen den Hosts. Es gibt folgende Konzepte:

Datenaustausch im Local Area Network (LAN)

Für den Austausch von Paketen im LAN werden die Daten in Pakete gepackt und an den Zielrechner gesandt. Als Adresse und Absender dienen die Hardware-Adressen der Netzwerkadapter.

Ethernet Paketaufbau

Das Paket enthält Absender, Ziel und die Daten.

MAC- (Media Access Control) oder Hardware-Adresse

Die Hardware-Adresse ist sechs Bytes groß, wird vom Hersteller vergeben und ist weltweit eindeutig.

Der Bus und die Kollision

Das klassische Ether war ein Koaxialkabel, von dem jeder Host einen Abgriff hatte. Damit handelte es sich ganz eindeutig um einen Bus. Pakete können durch Kollision zerstört werden, wenn zwei Sender gleichzeitig auf den Bus zugreifen.

Übertragungsfehler erkennen: CRC

Übertragungsfehler können erkannt werden. Dazu dient die CRC als Prüfsumme. Sie wird im Paket mitversandt und vom Empfänger auf Korrektheit geprüft.

WLAN

Durch einen Access Point gehört ein WLAN auch mit zum LAN. Grundsätzlich verwendet auch dieses MACs und Ethernetpakete, nur im Detail gibt es ein paar Unterschiede.

Netzwerkgeräte auf Ethernet-Ebene

Hub, Repeater und Bridge erweitern nur das LAN, ohne eine eigene Kontrolle auf die Pakete auszuüben. Sie erweitern also nur das LAN.

Internet Protocol (IP)

Auf der nächsten Ebene geht es darum, Datenpakete aus dem LAN in die weite Welt zu tragen. Das erreicht man durch eigene IP-Pakete mit IP-Adressen.

Routing

Die IP-Adressen haben gegenüber den MAC-Adressen den Vorteil, dass sie nach Netzwerken strukturiert sind. Man weiß, ob das Paket in dieses LAN gehört oder über den Router hinaustransportiert wird - mit etwas Intelligenz sogar über welchen Router.

IP-Pakete in Ethernetpaketen transportieren

IP-Adressen ermöglichen es zwar, Datenpakete um die Welt zu jagen, allerdings benötigen Sie für den Transport innerhalb des Netzwerks ein Ethernetpaket, das an eine MAC-Adresse versandt wird. Zu diesem Zweck wird das komplette IP-Paket in den Datenbereich (Payload) eines Ethernetpakets gesteckt.

+----------+------+------+-----------------------------------------------+-----+
| Präambel | MAC- | MAC- | LAN-Paket-Daten enthalten IP-Paket            | CRC |
|          | Ziel | Abs. | +---------+---------+-----------------------+ |     |
|          |      |      | | IP-Ziel | IP-Abs. | Daten                 | |     |
|          |      |      | +---------+---------+-----------------------+ |     |
+----------+------+------+-----------------------------------------------+-----+

Gehört das IP-Paket nicht in das aktuelle Netzwerk, wird es dennoch per Ethernetpaket an die MAC-Adresse des Routers gesandt. Dieser wird das IP-Paket dem Ethernetpaket entnehmen und in ein neues Ethernetpaket einwickeln, das auf dem Zielnetz weitergesandt wird.

Der Router

Der Router ist das wichtigste Netzwerkgerät der IP-Schicht. Ein Router hat typischerweise zwei Interfaces und leitet IP-Pakete zwischen verschiedenen Netzwerken weiter.

IPv4

IPv6

Der Datentransport zwischen Prozessen

Eigentlich kommunizieren keine Hosts, sondern Programme auf den Hosts. Der Web-Browser (Firefox) ist ein Programm, das eine Verbindung zu einem Web-Server-Programm (Apache) aufnimmt. So stellt sich die Frage, wie das Programm Firefox auf meinem Arbeitsplatz Kontakt zu dem Webserver-Programm Apache der Hochschule Flensburg aufnimmt, um von ihm die Lieferung der Webseite anzufordern.

Port und Socket

Der Programmierer verwendet Sockets für die Kommunikation über das Netzwerk, die sich ähnlich behandeln lassen wie Datei-Handles. Um ein Programm auf einem Host ansprechen zu können, benötigt man eine eindeutige Nummer, den Port. Server haben feste Ports unter 1024, Clients wechselnde Ports aus dem Bereich darüber.

Transmission Control Protocol (TCP) ordnet Pakete

Die meisten Netzwerk-Anwendungen benötigen verlässliche Datenverbindungen. TCP garantiert, dass alle Pakete ankommen und auch in der richtigen Reihenfolge. Dazu muss allerdings Aufwand in Kauf genommen werden, was die Übertragung langsamer macht.

User Datagram Protocol (UDP) fire and forget

Insbesondere bei Mulitmedia-Streams oder Telefon (VoIP) ist die Geschwindigkeit wesentlich wichtiger als der Verlust eines Pakets. Für solche Zwecke ist UDP gedacht.

Anwendungsschicht

Domain Name Service (DNS)

Der Domain Name Service (DNS) setzt Namen wie www.willemer.de in IP-Adressen um.

HTTP: Der Webserver

SMTP: E-Mail

Routing mit IP-Adresse und Port

Der Router arbeitet standardmäßig anhand der IP-Adressen und leitet IP-Adressen zu anderen Netzwerken weiter. Die Portnummer (unter Einbeziehung des Transportprotokolls) ermöglicht weitere Steuerungen, die für Firewalls und NAT verwendet werden.

Firewall

Eine Firewall schützt ein lokales Netzwerk gegenüber dem Internet, indem es die gewünschten Pakete durchlässt, unerwünschte Pakete aber blockiert oder zurückweist.

Die Firewall hat zur Unterscheidung lediglich die IP-Adressen, die Ports für Sender und Empfänger und das Transportprotokoll (TCP oder UDP). Damit lässt sich aber bereits viel anfangen, da der Port eines Servers in der Regel ein well known port ist. Beispiel:

Firewalls analysieren den Paketverkehr eines Routers und prüfen die IP-Adresse und den Port des ein- und ausgehenden Verkehrs. Dies geschieht, indem Regeln aufgestellt werden, die jeweils eine Bedingung enthält und eine Aktion (Abweisen, Akzeptieren) auslöst.

Masquerading und NAT

Ein naher Verwandter der Firewall ist NAT. Auch NAT sorgt dafür, dass Zugriffe von außen schwierig werden.

LAN-Zugriff von außen: Port-Forwarding

In manchen Fällen soll ein Server aus dem lokalen Netzwerk von außen erreichbar sein. Prinzipiell wird das durch NAT unterbunden. Wenn man es doch will, leitet der Router einen seiner Ports an einen Host im lokalen Netzwerk weiter.

Sicherheit

Ziele und Angriffe

Die Ziele der Netzwerksicherheit umfassen die kryptograischen Ziele Vertraulichkeit, Integrität, Authentizität und daraus abgeleitete Ziele Verbindlichkeit und Zurechenbarkeit.

Darüber hinaus ist ein wichtiges Ziel die Verfügbarkeit (Availability), die allerdings nicht mit kryptografischen Mitteln gesichert werden kann.

Zu den Angriffe auf diese Ziele gehören Sniffing, Spoofing und Man-in-the-Middle.

Angriffe gegen das Ziel der Verfügbarkeit bezeichnet man als Denial-of-Service (DoS).

Kerckhoffsches Prinzip

Einen wesentlichen Grundsatz beschreibt das Kerckhoffsche Prinzip, dass ein Verfahren nie geheim gehalten werden kann, sondern nur auf der Geheimhaltung des Schlüssels basiert.

Transport Layer Security (TLS) und Secure Sockets Layer (SSL)

Wie der Name schon andeutet, ist TLS, der Nachfahre von SSL, auf der Transportschicht angesiedelt, also auf der Basis der Sockets der Anwendungen. Damit ermöglicht es den Netzwerkanwendungen eine Verschlüsselung ihrer Nachrichten auf der Leitung.

TLS wird von mehreren Netzwerkanwendungen verwendet. Am bekanntesten dürften HTTPS zur Verschlüsselung von Web-Seitenübertragungen, beispielsweise beim Online-Banking sein.

TLS verwendet für die Umsetzung der Verschlüsselung auf eine Reihe von kryptografischen Verfahren. Da nicht gewährleistet ist, dass alle Teilnehmer an der Kommunikation die neuesten Verfahren beherrschen, beginnt die Kommunikation per TLS mit der Suche nach den bestmöglichen Verfahren. Dies wird als SSL/TLS-Handshake bezeichnet.

Zertifikate, Authentifizierung und Integrität

Die Basis einer vertrauensvollen Zusammenarbeit ist die Sicherheit, dass der Partner wirklich der ist, für den er sich ausgibt. Für diese (und andere Zwecke) gibt es Zertifikate, die auf asymmetrischen Schlüsseln basieren.

Bei asymmetrischen Verfahren werden zwei Schlüssel verwendet, die sich dadurch auszeichnen, dass der eine nur das entschlüsseln kann, was der jeweils andere verschlüsselt hat.

Wenn man dem Bild eines Türschlosses verwendet, bedeutet das, dass der eine Schlüssel das Schloß nur einmal nach links drehen kann, während der andere nur einmal nach rechts drehen kann.

Der Besitzer der Schlüssel wird den einen für sich geheim halten und den zweiten frei verteilen. Das geschieht insbesondere bei Zertifikaten. Sie werden von den Dienstanbietern offen abgeboten und bei Bedarf gern zugesendet.

Asymmetrische Verschlüsselung

Versendet jemand eine Nachricht, die mit dem öffentlichen Schlüssel verschlüsselt wurde, kann diese nur der Besitzer des privaten Schlüssels entschlüsseln und lesen. Damit ist gewährleistet, dass niemand die Nachricht lesen kann, außer dem Empfänger.

Digitale Signatur

Versendet der Besitzer eines privaten Schlüssels beliebige damit verschlüsselte Daten, kann der Empfänger sicher sein, dass es sich bei dem Versender um den Besitzer handelt, wenn er die Daten mit dem öffentlichen Schlüssel entschlüsseln kann.

Anstatt irgendetwas zu verschlüsseln, kann der Besitzer eine Hash-Funktion wie SHA über den versendeten Text bilden und diesen verschlüsseln. Auf diese Weise ist es nur noch sehr schwer möglich, den Text zu ändern, ohne dass der Empfänger es merkt.

Zertifikate

Die Kommunikation zwischen zwei Partnern, die jeweils ein asymmetrisches Schlüsselpaar verwenden, ist sicher. So kann ein Web-Server einen öffentlichen Schlüssel, einem Zertifikat, zur Verfügung stellen, um damit eine verschlüsselte Übertragung zu ermöglichen. Dabei entsteht das Problem, dass man nicht sicher weiß, ob der Web-Server wirklich der Web-Server ist, für den man ihn gemeinhin hält.

Der Client (also der Browser) könnte nun eine Liste aller öffentlichen Zertifikate der Welt mit sich führen, aber das wäre nicht praktikabel. Stattdessen gibt man den Browsern eine Liste der öffentlichen Schlüssel von CA-Stellen mit. Jeder Web-Server, der seine Authentizität beweisen will, muss nun sein Zertifikat der CA-Stelle vorlegen, der es mit seinem privaten Schlüssel bearbeitet. So kann die Echtheit mit dem öffentlichen Schlüssel der CA geprüft werden.

Zertifikat im Browser ansehen

Wenn eine Website ein Zertifikat besitzt, steht neben der Adresszeile ein Symbol mit einem grünen Schloss. Das bedeutet: Klickt man auf das grüne Schloss, wird das Zertifikat des Web-Servers angezeigt. Es zeigt den Domain-Namen, den Namen der Organisation, aber auch, welche CA das Zertifikat bestätigt hat.

Symmetrische Verschlüsselung

Nachdem sich alle so gut kennen, können sie über die asymmetrische Verschlüsselung eine Zufallszahl bestimmen, die im weiteren für die symmetrische Verschlüsselung verwendet wird.

Die symmetrische Verschlüsselung hat den Vorzug, sehr viel schneller zu sein. Zu den bekanntesten Verfahren der symmetrischen Verschlüsselung gehört AES.