Kommunikationsstrukturen - Exam
Aufgabe 1)
Bus-Topologie bezeichnet ein Netzwerkdesign, bei dem alle Geräte über ein gemeinsames Übertragungsmedium (den Bus) verbunden sind.
- Einfacher Aufbau und kostengünstig.
- Datenkollisionen können auftreten, wenn mehrere Geräte gleichzeitig senden.
- Terminatoren an beiden Enden des Busses erforderlich, um Signalreflexionen zu verhindern.
- Eignet sich für kleine Netzwerke mit wenigen Geräten.
- Ein Kabelbruch legt das ganze Netzwerk lahm.
- Sendsignale nutzen das Trägermedium gemeinsam (shared medium).
a)
a) Erkläre, warum ein Kabelbruch in einer Bus-Topologie das gesamte Netzwerk außer Betrieb setzt. Erläutere auch, welche Maßnahmen ergriffen werden können, um dieses Problem zu vermeiden.
Lösung:
a) Ein Kabelbruch in einer Bus-Topologie setzt das gesamte Netzwerk außer Betrieb, weil alle Geräte über ein gemeinsames Kabel (den Bus) verbunden sind. Wenn das Kabel an einer Stelle unterbrochen ist, wird die Kommunikation zwischen den Geräten gestört, da die Daten nicht mehr entlang des Busses übertragen werden können. Dies unterbricht die Signale vollständig und verhindert, dass die Geräte miteinander kommunizieren können.Um dieses Problem zu vermeiden, können folgende Maßnahmen ergriffen werden:
- Regelmäßige Wartung: Regelmäßige Überprüfung der Kabelintegrität und der Anschlussverbindungen können potenzielle Bruchstellen frühzeitig erkennen und beheben.
- Einsatz von Redundanz: Zusätzlich zur Hauptleitung könnte ein paralleles redundantes Kabel installiert werden. Im Falle eines Kabelbruchs übernimmt das redundante Kabel die Datenübertragung.
- Verwendung von Kabelschutz: Physischer Schutz der Kabel, etwa durch Kabelkanäle oder Verlegung unter Putz, um Beschädigungen durch äußere Einflüsse zu minimieren.
Durch diese Maßnahmen wird die Ausfallsicherheit des Netzwerks verbessert, auch wenn ein Kabelbruch in der Bus-Topologie unvermeidbar bleibt.
b)
b) Analysiere die Auswirkungen einer Datenkollision in einem Netzwerk mit Bus-Topologie. Beschreibe, wie das CSMA/CD (Carrier Sense Multiple Access with Collision Detection) Protokoll verwendet werden kann, um solche Kollisionen zu minimieren.
Lösung:
b) In einem Netzwerk mit Bus-Topologie können Datenkollisionen auftreten, wenn mehrere Geräte gleichzeitig Daten über das gemeinsame Übertragungsmedium (den Bus) senden. Diese Kollisionen führen dazu, dass die gesendeten Datenpakete beschädigt oder unlesbar werden, was wiederum die Effizienz und Zuverlässigkeit des Netzwerks beeinträchtigt. Die Auswirkungen von Datenkollisionen sind:
- Verzögerung: Kollisionen verursachen Verzögerungen, da die betroffenen Datenpakete erneut gesendet werden müssen.
- Erhöhte Netzwerklast: Erneutes Senden der Datenpakete erhöht die Netzwerkauslastung und kann zu weiteren Kollisionen führen.
- Niedrigere Datenübertragungsrate: Häufige Kollisionen können die effektive Datenübertragungsrate des Netzwerks reduzieren.
- Instabilität: Bei extremer Kollisionshäufigkeit kann das Netzwerk instabil werden und die Kommunikation stark beeinträchtigt sein.
Um solche Kollisionen zu minimieren, kann das CSMA/CD (Carrier Sense Multiple Access with Collision Detection) Protokoll verwendet werden:
- Carrier Sense (CS): Bevor ein Gerät mit dem Senden beginnt, prüft es, ob das Übertragungsmedium (Bus) frei ist. Falls das Medium besetzt ist, wartet das Gerät, bis es frei wird.
- Multiple Access (MA): Mehrere Geräte haben gleichberechtigten Zugriff auf das Übertragungsmedium und können potenziell gleichzeitig senden.
- Collision Detection (CD): Während des Sendens überwacht das Gerät das Übertragungsmedium, um festzustellen, ob eine Kollision aufgetreten ist. Wenn eine Kollision erkannt wird:
- Das Gerät stoppt sofort das Senden der Daten.
- Das Gerät sendet ein spezielles Signal (Jamming-Signal), um alle anderen Geräte über die Kollision zu informieren.
- Das Gerät wartet eine zufällige Zeitspanne (Backoff-Algorithmus), bevor es erneut versucht zu senden.
Durch die Verwendung des CSMA/CD-Protokolls wird die Wahrscheinlichkeit von Kollisionen reduziert und die Effizienz des Netzwerks verbessert. Obwohl Kollisionen nicht vollständig vermieden werden können, sorgt CSMA/CD dafür, dass sie schnell erkannt und behoben werden.
c)
c) Betrachte ein Netzwerk mit einer Bus-Topologie, das fünf Geräte (A, B, C, D und E) enthält. Berechne die Wahrscheinlichkeit einer Datenkollision, wenn zwei beliebige Geräte zur gleichen Zeit Nachrichten senden möchten. Gehe davon aus, dass jedes Gerät mit gleicher Wahrscheinlichkeit Daten sendet.
Lösung:
c) Um die Wahrscheinlichkeit einer Datenkollision in einem Netzwerk mit Bus-Topologie, das fünf Geräte (A, B, C, D und E) enthält, zu berechnen, wenn zwei beliebige Geräte zur gleichen Zeit Nachrichten senden möchten, gehen wir wie folgt vor:1. **Anzahl der Geräte**: Das Netzwerk enthält fünf Geräte (A, B, C, D und E).2. **Kombinatorische Berechnung**: Die Anzahl der möglichen Kombinationen von 2 Geräten aus 5 wird mit der Binomialkoeffizienten-Formel berechnet:
- Der Binomialkoeffizient wird wie folgt berechnet:
- \[\binom{n}{k} = \frac{n!}{k!(n-k)!}\]
Für unser Beispiel mit n = 5 und k = 2 ergibt sich:
- \[\binom{5}{2} = \frac{5!}{2!(5-2)!} = \frac{5 \times 4}{2 \times 1} = 10\]
Das bedeutet, dass es 10 mögliche Kombinationen gibt, wie 2 Geräte aus den 5 gleichzeitig senden könnten.
3. **Wahrscheinlichkeit jeder Kombination**: Da jede Kombination gleich wahrscheinlich ist, beträgt die Wahrscheinlichkeit, dass eine bestimmte Kombination von zwei Geräten gleichzeitig Nachrichten sendet, 1 von 10.Die Wahrscheinlichkeit P(Kollision), dass zwei beliebige Geräte zur gleichen Zeit senden, beträgt daher:
- \[P(\text{Kollision}) = \frac{1}{10}\]
Dies bedeutet, dass die Wahrscheinlichkeit einer Datenkollision in diesem Netzwerk 0,1 oder 10% beträgt.
d)
d) Diskutiere die Vor- und Nachteile der Bus-Topologie im Vergleich zur Stern-Topologie bezüglich Kosten, Skalierbarkeit und Zuverlässigkeit. Verwende Beispiele zur Veranschaulichung Deiner Argumente.
Lösung:
d) Die Bus-Topologie und die Stern-Topologie sind zwei verschiedene Ansätze zur Organisation von Netzwerken. Sie haben jeweils ihre eigenen Vor- und Nachteile hinsichtlich Kosten, Skalierbarkeit und Zuverlässigkeit. Im Folgenden diskutieren wir diese Aspekte und geben Beispiele zur Veranschaulichung.1. Kosten
- Bus-Topologie: Die Bus-Topologie ist in der Regel kostengünstiger, da sie weniger Kabel und Hardware (wie Hubs oder Switches) benötigt. Alle Geräte werden über ein zentrales Kabel (den Bus) verbunden, wodurch die Verkabelung sehr einfach und preiswert ist. Beispiel: In einem kleinen Büro mit fünf Computern kann ein einziges Koaxialkabel verwendet werden, um alle Geräte zu verbinden, was die Installationskosten minimiert.
- Stern-Topologie: Die Stern-Topologie ist tendenziell teurer, da jedes Gerät ein eigenes dediziertes Kabel benötigt, das zu einem zentralen Hub oder Switch führt. Dies bedeutet mehr Verkabelung und teurere Netzwerkgeräte. Beispiel: In einem großen Bürogebäude müssen für jeden Computer nicht nur Netzwerkkabel verlegt, sondern auch Switches in verschiedenen Stockwerken installiert werden, was die Gesamtkosten erhöht.
2. Skalierbarkeit- Bus-Topologie: Die Bus-Topologie ist weniger skalierbar. Jedes zusätzliche Gerät erhöht die Wahrscheinlichkeit von Datenkollisionen und kann die Leistung des gesamten Netzwerks beeinträchtigen. Darüber hinaus wird das zentrale Kabel irgendwann zur Engstelle, da es nur eine begrenzte Anzahl von Geräten unterstützt, bevor die Netzwerkleistung erheblich abnimmt. Beispiel: In einem Netzwerk mit bereits 10 angeschlossenen Computern wird ein elfter Computer möglicherweise feststellen, dass die Netzwerkkollisionen zunehmen und die Leistung abnimmt.
- Stern-Topologie: Die Stern-Topologie ist wesentlich skalierbarer. Da jedes Gerät direkt an einen zentralen Hub oder Switch angeschlossen ist, können neue Geräte einfach hinzugefügt werden, ohne die Leistung des Netzwerks negativ zu beeinflussen. Beispiel: In einem Unternehmen können jederzeit neue Arbeitsplätze mit Computern ausgestattet werden, indem zusätzliche Ports am zentralen Switch verwendet werden. Falls der Switch voll ist, kann ein weiterer Switch hinzugefügt werden.
3. Zuverlässigkeit- Bus-Topologie: Die Zuverlässigkeit der Bus-Topologie ist eingeschränkt. Ein Kabelbruch oder ein Problem an einem beliebigen Punkt des zentralen Busses kann das gesamte Netzwerk außer Betrieb setzen. Auch Datenkollisionen nehmen bei einer erhöhten Anzahl der Geräte zu und beeinträchtigen die Zuverlässigkeit. Beispiel: Wenn das zentrale Kabel in einem Büro beschädigt wird, sind alle angeschlossenen Computer offline und können nicht mehr kommunizieren.
- Stern-Topologie: Die Stern-Topologie bietet höhere Zuverlässigkeit. Ein Ausfall eines Kabels oder eines Geräts beeinträchtigt in der Regel nur das entsprechende Gerät und nicht das gesamte Netzwerk. Der zentrale Hub oder Switch wird zur einzigen potenziellen Fehlerquelle, die durch redundante Geräte gemildert werden kann. Beispiel: Wenn ein Netzwerkkabel zu einem bestimmten Computer defekt ist, können die anderen Computer weiterhin miteinander kommunizieren, solange der zentrale Switch funktioniert.
Zusammenfassend lässt sich sagen, dass die Bus-Topologie kostengünstig und einfach einzurichten ist, aber Nachteile bei Skalierbarkeit und Zuverlässigkeit hat. Die Stern-Topologie bietet höhere Skalierbarkeit und Zuverlässigkeit, ist jedoch teurer und erfordert mehr Verkabelung und Hardware. Die Wahl zwischen den beiden Topologien hängt von den spezifischen Anforderungen und Budgetbeschränkungen des Netzwerks ab.
Aufgabe 2)
Das OSI-Modell dient der Standardisierung der Kommunikationsprotokolle in verschiedenen Netzwerken und unterteilt dieses in sieben Schichten.
- Schicht 1: Physikalische Schicht (Bitübertragung)
- Schicht 2: Sicherungsschicht (Rahmen, MAC-Adressen)
- Schicht 3: Netzwerkschicht (Routing, IP-Adressen)
- Schicht 4: Transportschicht (TCP, UDP)
- Schicht 5: Sitzungsschicht (Sitzungskontrolle)
- Schicht 6: Darstellungsschicht (Datenformate, Verschlüsselung)
- Schicht 7: Anwendungsschicht (HTTP, FTP, SMTP)
a)
Beschreibe detailliert die Aufgaben der Sicherungsschicht im OSI-Modell und erkläre, wie Fehlererkennung und Fehlerkorrektur auf dieser Schicht funktionieren.
Lösung:
Die Sicherungsschicht, auch bekannt als Schicht 2 des OSI-Modells, spielt eine entscheidende Rolle bei der Gewährleistung einer zuverlässigen und effizienten Datenübertragung zwischen direkt verbundenen Netzwerkknoten. Ihre Hauptaufgaben umfassen:
- Rahmenbildung: Die Sicherungsschicht segmentiert die ankommenden Bitströme von der physikalischen Schicht in Datenrahmen und sorgt für eine korrekte Zuordnung der Bits.
- MAC-Adressen: Verwaltung und Verwendung von MAC-Adressen, die eindeutigen Adressen für jedes Netzwerkkarteninterface, um Daten an die richtigen Gerät im Netzwerk zu senden.
- Fehlererkennung: Die Sicherungsschicht beinhaltet Mechanismen wie Prüfsummen und Cyclic Redundancy Check (CRC), um Fehler in den Datenrahmen zu erkennen.
- Fehlerkorrektur: Nachdem ein Fehler erkannt wurde, verwendet die Sicherungsschicht Methoden wie die automatische Wiederholungsanforderung (ARQ) oder Vorwärtsfehlerkorrektur (FEC), um die fehlerhaften Daten zu korrigieren oder erneut anzufordern.
- Flusskontrolle: Sicherstellung, dass der Sender den Empfänger nicht mit zu vielen Daten auf einmal überfordert.
- Zugangskontrolle: Verwaltung des Zugriffs auf das Übertragungsmedium durch Techniken wie Carrier Sense Multiple Access (CSMA) oder Token Passing.
Fehlererkennung:
- Prüfsummen: Bei der Rahmenbildung fügt die Sicherungsschicht eine Prüfsumme hinzu, die aus einer mathematischen Funktion aller Bits im Rahmen berechnet wird. Der Empfänger berechnet ebenfalls die Prüfsumme und vergleicht sie mit der empfangenen. Stimmen sie nicht überein, wird ein Fehler festgestellt.
- Cyclic Redundancy Check (CRC): Eine häufig verwendete Methode, bei der der Rahmen mit einer Reihe von Bits (dem CRC-Wert) ergänzt wird. Der Empfänger führt dieselbe Berechnung wie der Sender durch und vergleicht die Ergebnisse, um Fehler zu erkennen.
Fehlerkorrektur:
- Automatische Wiederholungsanforderung (ARQ): Wenn ein Fehler erkannt wird, sendet der Empfänger eine Anfrage an den Sender, den fehlerhaften Rahmen erneut zu senden. Dies kann entweder Stop-and-Wait ARQ oder Sliding Window ARQ sein.
- Vorwärtsfehlerkorrektur (FEC): Über die gesendeten Daten werden zusätzliche Redundanzbits eingefügt, die es dem Empfänger ermöglichen, einige Arten von Fehlern selbst zu korrigieren, ohne dass eine erneute Übermittlung erforderlich ist.
b)
Erkläre, wie das Routing in der Netzwerkschicht funktioniert. Verdeutliche Deine Antwort mit einem Beispiel, welches das Routing zwischen drei unterschiedlichen Netzwerken zeigt und erläuterst, welche Protokolle verwendet werden.
Lösung:
Die Netzwerkschicht, also Schicht 3 des OSI-Modells, ist verantwortlich für das Routing der Datenpakete von einem Sender zu einem Empfänger über verschiedene Netzwerke hinweg. Dies geschieht durch die Nutzung von IP-Adressen und Routing-Protokollen. Die Hauptaufgaben des Routings in der Netzwerkschicht umfassen:
- Adressenvergabe: Jedes Gerät im Netzwerk erhält eine eindeutige IP-Adresse, die es eindeutig identifiziert.
- Pfadermittlung: Die Bestimmung des besten Pfades für das Datenpaket von der Quelle zum Ziel.
- Paketweiterleitung: Die tatsächliche Übertragung der Datenpakete entlang des festgelegten Pfades durch verschiedene Router.
Routing-Protokolle:
Es gibt verschiedene Routing-Protokolle, die in der Netzwerkschicht verwendet werden, um den effizientesten Pfad für die Datenübertragung zu ermitteln und zu verwalten. Zu den häufigsten gehören:
- RIP (Routing Information Protocol): Ein einfaches Distanzvektor-Routing-Protokoll, das die Anzahl der Hops als Metrik verwendet.
- OSPF (Open Shortest Path First): Ein Link-State-Routing-Protokoll, das Kostenmetriken verwendet, um den kürzesten und günstigsten Pfad zu berechnen.
- BGP (Border Gateway Protocol): Ein externes Gateway-Protokoll, das zwischen verschiedenen autonomen Systemen (AS) verwendet wird und komplexe Routing-Entscheidungen basierend auf Richtlinien trifft.
Beispiel: Routing zwischen drei unterschiedlichen Netzwerken
Angenommen, wir haben drei Netzwerke: Netzwerk A (192.168.1.0/24), Netzwerk B (192.168.2.0/24) und Netzwerk C (192.168.3.0/24), und diese Netzwerke sind durch Router R1 und R2 verbunden.
- Ein Gerät in Netzwerk A (IP: 192.168.1.10) möchte ein Paket an ein Gerät in Netzwerk C (IP: 192.168.3.20) senden.
- Der Router R1, der Netzwerk A und B verbindet, erkennt, dass das Ziel im Netzwerk C liegt und nicht direkt erreichbar ist. Daher wird das Paket an R2 weitergeleitet.
- R2, das Netzwerk C direkt verbindet, erhält das Paket und leitet es an das Zielgerät 192.168.3.20 weiter.
In diesem Szenario könnte OSPF als Routing-Protokoll verwendet werden, um sicherzustellen, dass die Router R1 und R2 die besten Pfade zwischen den Netzwerken A, B und C kennen und effizient weiterleiten können.
c)
Vergleiche die Unterschiede und Gemeinsamkeiten zwischen TCP und UDP in der Transportschicht. Nenne mindestens drei Anwendungsbeispiele, in denen der Einsatz von TCP respektive UDP angemessen ist und begründe Deine Wahl.
Lösung:
Vergleich zwischen TCP und UDP in der Transportschicht
TCP (Transmission Control Protocol) und UDP (User Datagram Protocol) sind die beiden Hauptprotokolle, die in der Transportschicht des OSI-Modells verwendet werden. Sie haben sowohl Gemeinsamkeiten als auch Unterschiede:
Gemeinsamkeiten:
- Beide gehören zur Transportschicht und dienen der Datenübertragung.
- Beide nutzen Ports, um Verbindungen zu bestimmten Diensten auf einem Host zu identifizieren.
- Beide ermöglichen die Kommunikation zwischen Anwendungen über Netzwerke hinweg.
Unterschiede:
- Verbindungsorientiert vs. Verbindungslos: TCP ist verbindungsorientiert, was bedeutet, dass eine Verbindung zwischen Sender und Empfänger aufgebaut wird, bevor Daten übertragen werden. UDP ist verbindungslos und sendet Daten ohne vorherige Verbindung.
- Zuverlässigkeit: TCP bietet zuverlässige Datenübertragung, da es Mechanismen zur Fehlerkorrektur und Bestätigung implementiert. UDP bietet keine Zuverlässigkeitsgarantien und keine Fehlerkorrektur.
- Übertragungssteuerung: TCP beinhaltet Flusssteuerung und Überlaststeuerung, um sicherzustellen, dass Daten in einem stabilen Tempo übertragen werden. UDP hat keine solchen Mechanismen.
- Latenz: Aufgrund seiner zusätzlichen Kontrollmechanismen hat TCP tendenziell höhere Latenzzeiten im Vergleich zu UDP, das eine geringere Latenz aufweist, da es auf Kontrollmechanismen verzichtet.
Anwendungsbeispiele für TCP
- Webseitenzugriff (HTTP/HTTPS): TCP wird verwendet, um Webseiten über HTTP und HTTPS zu laden, da die Zuverlässigkeit und die korrekte Reihenfolge der Datenpakete für das korrekte Laden von Webseiten wichtig sind.
- E-Mail (SMTP, POP3, IMAP): E-Mail-Protokolle wie SMTP, POP3 und IMAP verwenden TCP, da hier die Zuverlässigkeit und Integrität der übertragenen Nachrichten von hoher Bedeutung sind.
- Dateiübertragung (FTP): Das File Transfer Protocol (FTP) verwendet TCP, um sicherzustellen, dass Dateien korrekt und vollständig übertragen werden.
Anwendungsbeispiele für UDP
- Videostreaming (z. B. YouTube, Twitch): UDP wird häufig für Videostreaming verwendet, da geringe Latenz und kontinuierliche Datenübertragung wichtiger sind als die Zuverlässigkeit jedes einzelnen Datenpakets.
- Online-Gaming: Viele Online-Spiele verwenden UDP, um schnelle Reaktionszeiten und geringere Latenzzeiten zu gewährleisten. Ein verlorenes Paket hat hier meist keine schwerwiegenden Auswirkungen.
- VoIP (Voice over IP): UDP wird für VoIP-Anwendungen verwendet, da Echtzeitkommunikation bevorzugt wird. Ein verlorenes Datenpaket führt hier lediglich zu einem kurzen Aussetzer, ist aber weniger kritisch als bei anderen Anwendungen.
d)
Auf der Darstellungsschicht spielt die Verschlüsselung eine herausragende Rolle. Berechne die Anzahl der theoretisch möglichen Schlüsselpaare bei einem 256-Bit-Schlüssel im RSA-Verschlüsselungsverfahren und erkläre, warum diese Art der Verschlüsselung als sicher gilt. Hinweis: Die Berechnung darf vereinfacht werden, um das Prinzip zu verdeutlichen.
Lösung:
Anzahl der theoretisch möglichen Schlüsselpaare bei einem 256-Bit-Schlüssel im RSA-Verschlüsselungsverfahren
Das RSA-Verschlüsselungsverfahren verwendet asymmetrische Kryptographie, bei der ein öffentliches und ein privates Schlüsselpaar zur Verschlüsselung und Entschlüsselung verwendet wird. Wenn wir einen 256-Bit-Schlüssel verwenden, können wir die Anzahl der möglichen Schlüsselpaare wie folgt berechnen:
Ein 256-Bit-Schlüssel bedeutet, dass es \(2^{256}\) mögliche Schlüssel gibt.
Die Anzahl der möglichen Kombinationen ist:
\(2^{256} = 115792089237316195423570985008687907853269984665640564039457584007913129639936\)
Das entspricht ungefähr \(1,16 \times 10^{77}\) möglichen Schlüsselwerten.
Diese unglaublich hohe Anzahl an Möglichkeiten zeigt, warum ein 256-Bit-Schlüssel als extrem sicher betrachtet wird.
Warum RSA-Verschlüsselung als sicher gilt
- Schwierigkeit der Primfaktorzerlegung: Die Sicherheit von RSA basiert auf der mathematischen Schwierigkeit, große Zahlen in ihre Primfaktoren zu zerlegen. Das Zerlegen einer großen Zahl, die das Produkt zweier großer Primzahlen ist, ist ein Problem, das selbst mit den besten bekannten Algorithmen sehr schwer zu lösen ist.
- Öffentlicher und privater Schlüssel: Das RSA-Verfahren erzeugt ein Schlüsselpaar, bei dem der öffentliche Schlüssel zum Verschlüsseln der Daten und der private Schlüssel zum Entschlüsseln verwendet wird. Solange der private Schlüssel geheim bleibt, kann niemand die verschlüsselten Daten ohne ihn entschlüsseln.
- Schlüsselgröße: Obwohl ein 256-Bit-Schlüssel bereits eine hohe Sicherheit bietet, werden in der Praxis oft deutlich größere Schlüssel verwendet, typischerweise 2048 Bit oder sogar 4096 Bit. Mit zunehmender Schlüsselgröße steigt die Sicherheit exponentiell, da die Anzahl der möglichen Schlüsselpaare drastisch zunimmt.
- Rechenkomplexität: Die Berechnung und Faktorisierung extrem großer Zahlen erfordert immense Rechenleistung und Zeit. Selbst mit den fortschrittlichsten Computertechnologien ist es derzeit nicht praktikabel, große RSA-Schlüssel in nützlicher Zeit zu knacken.
Zusammenfassung:
Die RSA-Verschlüsselung gilt als sicher aufgrund der extrem hohen Anzahl möglicher Schlüsselpaare und der Schwierigkeit, die zugrunde liegenden mathematischen Probleme zu lösen. Die Berechnung der möglichen Schlüsselpaare bei einem 256-Bit-Schlüssel zeigt, dass brute-force-Angriffe auf solche Schlüssel praktisch unmöglich sind.
Aufgabe 3)
Du arbeitest als IT-Sicherheitsbeauftragter in einem Unternehmen und sollst ein Sicherheitskonzept für den gesicherten Informationsaustausch entwickeln. Dabei sollst Du auf verschiedene Verschlüsselungstechniken und Hashfunktion eingehen.
a)
Erläutere den Unterschied zwischen symmetrischer und asymmetrischer Verschlüsselung unter besonderer Berücksichtigung der jeweiligen Vor- und Nachteile im Hinblick auf den sicheren Informationsaustausch in einem Unternehmensumfeld.
Lösung:
Beim Entwickeln eines Sicherheitskonzepts für den gesicherten Informationsaustausch im Unternehmen ist es wichtig, den Unterschied zwischen symmetrischer und asymmetrischer Verschlüsselung zu verstehen. Hier sind die wesentlichen Unterschiede sowie deren Vor- und Nachteile:
- Symmetrische Verschlüsselung:
- Funktionsweise: Beide Parteien verwenden den gleichen geheimen Schlüssel zum Ver- und Entschlüsseln von Nachrichten.
- Vorteile::
- Schneller: Symmetrische Algorithmen sind in der Regel schneller als asymmetrische.
- Geringe Rechenleistung: Sie benötigen weniger Rechenleistung, was besonders bei großen Datenmengen von Vorteil ist.
- Nachteile::
- Schlüsselverteilung: Das sichere Teilen des Schlüssels zwischen beiden Parteien ist eine Herausforderung. Bei einem ungesicherten Kanal könnte der Schlüssel abgefangen werden.
- Skalierbarkeit: Für jede Kommunikationsbeziehung wird ein eigener Schlüssel benötigt, was bei vielen Benutzern unübersichtlich werden kann.
- Asymmetrische Verschlüsselung:
- Funktionsweise: Zwei verschiedene, aber mathematisch miteinander verbundene Schlüssel werden verwendet: ein öffentlicher Schlüssel zum Verschlüsseln und ein privater Schlüssel zum Entschlüsseln.
- Vorteile::
- Schlüsselverteilung: Der öffentliche Schlüssel kann leicht verteilt werden, ohne dass die Gefahr besteht, dass der private Schlüssel kompromittiert wird.
- Authentifizierung: Asymmetrische Verschlüsselung ermöglicht die Überprüfung der Identität der Kommunikationspartner, was durch digitale Signaturen erreicht wird.
- Nachteile::
- Langsamer: Asymmetrische Algorithmen sind in der Regel langsamer als symmetrische wegen der komplexen mathematischen Berechnungen.
- Rechenleistung: Sie benötigen mehr Rechenleistung und sind daher für große Datenmengen weniger geeignet.
Fazit: Im Unternehmensumfeld wird häufig eine Kombination beider Methoden verwendet, um die jeweiligen Vorteile auszunutzen. Dies wird als hybrides Verschlüsselungssystem bezeichnet. Eine typische Anwendung ist die Verwendung asymmetrischer Verschlüsselung, um den symmetrischen Sitzungsschlüssel sicher auszutauschen, der dann für die Datenübertragung verwendet wird.
b)
Ein Unternehmen entschließt sich, die symmetrische Verschlüsselung AES (Advanced Encryption Standard) für die Sicherung ihrer Daten zu verwenden. Erkläre die Funktionsweise von AES und diskutiere, warum es als sicher gilt. Nutze formale Definitionen und latente mathematische Prinzipien, um Deine Erklärung zu unterstützen.
Lösung:
Der Advanced Encryption Standard (AES) ist ein symmetrischer Verschlüsselungsalgorithmus, der weithin als sicherer Standard für die Sicherung von Daten anerkannt ist. Hier ist eine detaillierte Erklärung seiner Funktionsweise und warum er als sicher gilt:
- AES verwendet eine Blockchiffre, die Daten in Blöcken einer festen Größe von 128 Bit (16 Byte) verschlüsselt.
- Es können verschiedene Schlüssellängen verwendet werden: 128 Bit, 192 Bit oder 256 Bit. Abhängig von der Schlüssellänge wird der Algorithmus als AES-128, AES-192 oder AES-256 bezeichnet.
- Der Verschlüsselungsprozess von AES besteht aus mehreren Runden, deren Anzahl von der Schlüssellänge abhängt:
- Für 128 Bit: 10 Runden
- Für 192 Bit: 12 Runden
- Für 256 Bit: 14 Runden
- Jede Runde besteht aus einer Folge von Transformationen:
- SubBytes: Eine nichtlineare Byte-Substitutionsoperation, die eine Substitutionsbox (S-Box) verwendet.
- ShiftRows: Eine Transpositionsoperation, bei der die Bytes in jeder Zeile des Blocks zyklisch verschoben werden.
- MixColumns: Eine lineare Transformation, die die Daten innerhalb jeder Spalte mischt. Diese Transformation wird nicht in der letzten Runde durchgeführt.
- AddRoundKey: Ein XOR der aktuellen Blockdaten mit einem Teil des erweiterten Schlüssels (Round Key).
- Der Schlüsselplan (Key Schedule) generiert aus dem ursprünglichen Schlüssel die Round Keys, die in jeder Runde verwendet werden.
- Mathematische Stärke: Die SubBytes-Transformation basiert auf nichtlinearen Substitutionen, die AES widerstandsfähig gegen lineare und differenzielle Kryptoanalyse machen.
- Schlüssellänge: Die Wahl von 128-, 192- oder 256-Bit-Schlüsseln bietet unterschiedliche Sicherheitsniveaus. Selbst der 128-Bit-Schlüssel bietet eine immense Schlüsselraumgröße von \(\text{2}^{128}\), was jeden Versuch, den Schlüssel durch Brute-Force-Attacken zu brechen, praktisch unmöglich macht.
- Mischung und Diffusion: Die Kombination von SubBytes, ShiftRows und MixColumns sorgt für eine starke Streuung und Mischung der Daten, was die statistische Struktur des Klartexts vollständig verschleiert.
- Unabhängige Überprüfungen: AES wurde von internationalen Kryptographie-Experten ausführlich analysiert und als sicherer Standard anerkannt.
Insgesamt gilt AES als einer der sichersten und effizientesten Verschlüsselungsalgorithmen und ist weit verbreitet in Regierungs-, Finanz- und Unternehmensanwendungen zur Sicherung sensibler Daten.
c)
Das Unternehmen möchte zusätzlich die Integrität der verschlüsselten Daten sicherstellen und entscheidet sich für die Hashfunktion SHA-256. Definiere eine Hashfunktion und erläutere, warum SHA-256 für diese Aufgabe geeignet ist. Gehe in Deiner Antwort auf Einweg-Eigenschaften und Kollisionen ein und erkläre, wie sie mit der Integritätsprüfung zusammenhängen.
Lösung:
Eine Hashfunktion ist eine mathematische Funktion, die eine beliebig große Eingabedatei in eine feste Größe, den sogenannten Hashwert oder Hashcode, umwandelt. Ein wesentliches Merkmal einer guten Hashfunktion, wie SHA-256, ist, dass selbst geringfügige Änderungen der Eingabe zu völlig anderen Hashwerten führen.
- Definition einer Hashfunktion:
- Eine Hashfunktion, oft mit \( H \) bezeichnet, nimmt eine Eingabe \( x \) beliebiger Länge und erzeugt eine Ausgabe mit fester Länge \( H(x) \). Bei SHA-256 ist diese Ausgabe immer 256 Bit lang.
- Eine Hashfunktion wird als einwegfähig bezeichnet, wenn es praktisch unmöglich ist, aus dem Hashwert \( H(x) \) die ursprüngliche Eingabe \( x \) zu rekonstruieren. Dies bedeutet, dass der Prozess nicht umkehrbar ist.
- Diese Einweg-Eigenschaft ist essenziell für die Integritätsprüfung, da ein Angreifer den ursprünglichen Inhalt nicht aus dem Hashwert ableiten kann.
- Eine Hashfunktion ist kollisionsresistent, wenn es sehr schwierig ist, zwei verschiedene Eingaben \( x \) und \( y \) zu finden, die zur gleichen Ausgabe führen, also \( H(x) = H(y) \). Bei SHA-256 beträgt die Wahrscheinlichkeit einer Kollision \(2^{-128}\), was äußerst gering ist.
- Geeignetheit von SHA-256:
- SHA-256 ist eine weit verbreitete und anerkannte kryptographische Hashfunktion, die für ihre Sicherheit und Effizienz bekannt ist.
- Sicherheitsprotokolle wie TLS/SSL, digitale Signaturen und andere Anwendungen nutzen SHA-256 zur Sicherstellung der Datenintegrität.
- Die Kollisionsresistenz und Einweg-Eigenschaften von SHA-256 machen sie besonders geeignet für die Integritätsprüfung. Daten werden vor der Übertragung mit SHA-256 gehasht, und der Hashwert wird zusammen mit den Daten gesendet. Der Empfänger kann die empfangenen Daten erneut hashen und vergleichen, ob die Hashwerte übereinstimmen.
Beispiel für die Integritätsüberprüfung:
- Nehmen wir an, eine Datei \( F \) wird vor der Übertragung mit SHA-256 gehasht, um \( H(F) \) zu erzeugen.
- Der Hashwert \( H(F) \) wird zusammen mit der verschlüsselten Datei an den Empfänger gesendet.
- Nach dem Empfang wird die entschlüsselte Datei erneut gehasht, um \( H'(F) \) zu erzeugen.
- Wenn \( H(F) = H'(F) \, dann wurde die Datei während der Übertragung nicht verändert, was die Integrität der Daten sicherstellt. Andernfalls ist die Datei möglicherweise beschädigt oder manipuliert worden.
Durch die Verwendung von SHA-256 kann das Unternehmen sicherstellen, dass die Integrität der verschlüsselten Daten gewährleistet ist, und dass keine unerwarteten Änderungen während der Übertragung auftreten. Diese zusätzliche Sicherheitsebene ist entscheidend für den zuverlässigen Informationsaustausch im Unternehmensumfeld.
d)
Ein Mitarbeiter schlägt vor, die asymmetrische Verschlüsselung mit dem RSA-Algorithmus zu kombinieren. Erkläre, wie der RSA-Algorithmus funktioniert. Implementiere die mathematische Grundlage des RSA-Algorithmus und rechne ein einfaches Beispiel durch, bei dem Du ein öffentliches und ein privates Schlüsselpaar ermittelst.
Lösung:
Der RSA-Algorithmus (Rivest-Shamir-Adleman) ist einer der bekanntesten asymmetrischen Verschlüsselungsalgorithmen und wird oft zur sicheren Übertragung von Schlüsseln oder zur digitalen Signatur verwendet. Hier ist eine detaillierte Erklärung, wie der RSA-Algorithmus funktioniert, sowie eine Implementierung der mathematischen Grundlagen und ein einfaches Beispiel zur Ermittlung eines öffentlichen und privaten Schlüsselpaares:
- Mathematische Grundlagen des RSA-Algorithmus:
- Wähle zufällig und unabhängig zwei unterschiedliche Primzahlen \( p \) und \( q \).
- Berechne das Produkt \( n = p \times q \). Der Wert \( n \) wird im öffentlichen und privaten Schlüssel verwendet.
- Berechne die Eulersche Totientfunktion von \( n \): \( \phi(n) = (p-1) \times (q-1) \).
- Wähle eine ganze Zahl \( e \), die 1 < \( e \) < \( \phi(n) \) ist und teilerfremd zu \( \phi(n) \) ist, normalerweise \( e = 65537 \).
- Berechne \( d \) als das multiplikative Inverse von \( e \) modulo \( \phi(n) \), d.h. \( e \times d \equiv 1 \pmod{\phi(n)} \). Dies kann mit dem erweiterten euklidischen Algorithmus berechnet werden.
- Das Schlüsselpaar besteht aus:
- Öffentlicher Schlüssel \( (e, n) \)
- Privater Schlüssel \( (d, n) \)
- Wähle \( p = 61 \) und \( q = 53 \).
- Berechne \( n = 61 \times 53 = 3233 \).
- Berechne \( \phi(n) = (61-1) \times (53-1) = 60 \times 52 = 3120 \).
- Wähle \( e = 17 \), da 17 eine relativ kleine Zahl und zu 3120 teilerfremd ist.
- Berechne \( d \) mit der erweiterten euklidischen Algorithmus: \
function extended_euclidean(a, b): \t old_r, r = a, b \t old_s, s = 1, 0 \t old_t, t = 0, 1 \t while r != 0: \t quotient = old_r // r \t old_r, r = r, old_r - quotient * r \t old_s, s = s, old_s - quotient * s \t old_t, t = t, old_t - quotient * t \t>return old_r, old_s, old_t gcd, x, y = extended_euclidean(17, 3120) d = x % 3120
Man erhält \( d = 2753 \), da \( 17 \times 2753 \equiv 1 \pmod{3120} \) - Das Schlüsselpaar lautet:
- Öffentlicher Schlüssel: \( (e, n) = (17, 3233) \)
- Privater Schlüssel: \( (d, n) = (2753, 3233) \)
- Verschlüsselung und Entschlüsselung:
- Verschlüsselung: Um eine Nachricht \( m \) zu verschlüsseln, berechne: \( c = m^e \mod n \). Beispiel: \( m = 65 \); dann ist \( c = 65^{17} \mod 3233 = 2790 \).
- Entschlüsselung: Um die verschlüsselte Nachricht \( c \) zu entschlüsseln, berechne: \( m = c^d \mod n \). Beispiel: \( c = 2790 \); dann ist \( m = 2790^{2753} \mod 3233 = 65 \).
Durch die Kombination von symmetrischer und asymmetrischer Verschlüsselung im Unternehmenskontext können beide Methoden ihre Stärken ausspielen. RSA kann verwendet werden, um den symmetrischen Schlüssel sicher zu übertragen, während symmetrische Verschlüsselung (wie AES) für die eigentliche Datenverschlüsselung verwendet wird.
Aufgabe 4)
Du bist verantwortlich für die Implementierung eines Kommunikationssystems, das eine hohe Dienstgüte (Quality of Service, QoS) gewährleisten muss. Deine Aufgabe ist es, ein Konzept zu entwickeln und verschiedene Mechanismen zur Optimierung der Dienstgüte für unterschiedliche Anwendungen und Benutzer zu beschreiben. Berücksichtige dabei folgende Parameter: Latenz, Jitter, Durchsatz und Paketverlust. Setze dabei gängige Methoden wie Priorisierung von Paketen, Traffic Shaping und Bandbreitenmanagement ein. Diskutiere zudem relevante Protokolle wie DiffServ, IntServ und RSVP.
a)
Erkläre, wie Latenz und Jitter die Qualitätswahrnehmung eines Echtzeitanwendung (z.B. Video-Streaming oder VoIP) beeinflussen. Führe dabei auch die mathematischen Formeln ein, mit denen Latenz und Jitter berechnet werden können.
Lösung:
Die Dienstgüte (Quality of Service, QoS) von Echtzeitanwendungen wie Video-Streaming oder VoIP (Voice over IP) ist stark von den Parametern Latenz und Jitter abhängig. Hier ist eine detaillierte Erklärung:
Eine geringe Latenz und niedriger Jitter sind daher entscheidend für die Qualität von Echtzeitanwendungen, um eine flüssige und klare Übertragung sicherzustellen.
b)
Lösung:
Zur Qualitätssicherung (Quality of Service, QoS) im Netzwerkverkehr gibt es verschiedene Methoden, zwei der bekanntesten sind Differentiated Services (DiffServ) und Integrated Services (IntServ). Hier sind detaillierte Erklärungen und Vergleiche:
- Differentiated Services (DiffServ):
- Arbeitsweise: DiffServ ist ein skalierbares und flexibles QoS-Modell, das Paketen basierend auf ihrem Typ unterschiedliche Prioritäten und QoS-Stufen zuweist. Es arbeitet auf der Netzwerkschicht und verwendet das IPv4-TOS-Feld (Type of Service) oder das IPv6-Traffic-Class-Feld, um DSCP (Differentiated Services Code Point) zu markieren. Router und Switches im Netzwerk erkennen diese Markierungen und verwalten den Datenverkehr entsprechend den definierten QoS-Richtlinien.Das DiffServ-Modell beinhaltet zwei Hauptkomponenten:
- Klassenbasierte QoS-Parameter: Pakete werden in verschiedene Klassen eingeteilt.
- Verkehrsverwaltung: Diese Klassen bestimmen, wie der Datenverkehr behandelt wird, z. B. durch bevorzugten Durchsatz oder reduzierte Verzögerung.
- Beispiel: DiffServ wäre vorteilhaft für Anwendungen wie Video-Streaming und Online-Gaming, bei denen bestimmte Datenströme priorisiert werden müssen, um eine kontinuierliche und qualitativ hochwertige Benutzersitzung zu gewährleisten.
- Vor- und Nachteile:
- Vorteile: Hohe Skalierbarkeit, da es keine Zustände bei den Intermediärknoten erfordert und einfach zu implementieren ist.
- Nachteile: Weniger präzise QoS-Garantien im Vergleich zu IntServ, da es auf Klassenbasiertes Traffic-Management setzt und keine spezifische Ressourcenreservierung vornimmt.
- Integrated Services (IntServ):
- Arbeitsweise: IntServ ist ein QoS-Modell, das End-to-End-Ressourcenreservierungen verwendet. Anwendungen registrieren ihre Anforderungen an das Netzwerk, und das Netzwerk reserviert die erforderlichen Ressourcen entlang des gesamten Pfads der Datenübertragung. RSVP (Resource Reservation Protocol) ist das primäre Protokoll, das von IntServ verwendet wird, um diese Reservierungen durchzuführen.Das IntServ-Modell setzt auf drei Dienste:
- Guaranteed Service: Bietet strenge QoS-Garantien für Datenströme, z. B. feste Bandbreite und geringe Latenz.
- Controlled-Load Service: Bietet QoS-Leistungen, die mit einem unüberlasteten Netzwerk vergleichbar sind.
- Beste-Effort Service: Bietet keine besonderen QoS-Garantien.
- Beispiel: IntServ wäre vorteilhaft für kritische Echtzeitanwendungen wie professionelle VoIP-Dienste oder Telemedizin, bei denen eine garantierte Dienstqualität und minimale Paketverluste entscheidend sind.
- Vor- und Nachteile:
- Vorteile: Präzise QoS-Garantien, da Ressourcen explizit reserviert werden.
- Nachteile: Geringe Skalierbarkeit, weil es Zustandsspeicherung und Verwaltung bei jedem Router erfordert und daher komplex und ressourcenintensiv ist.
- Unterschiede hinsichtlich Skalierbarkeit und Flexibilität:
- Skalierbarkeit: DiffServ ist skalierbarer, da es keine aufwändigen Zustandsinformationen bei Netzwerkknoten benötigt, wohingegen IntServ durch seine Ressourcenreservierung und Zustandsverwaltung weniger skalierbar ist.
- Flexibilität: DiffServ ist flexibler, da es eine klassenbasierte Priorisierung ermöglicht, während IntServ durch seine spezifischen Reservierungen weniger flexibel ist und komplexer zu implementieren.
c)
Lösung:
Ein Netzwerk, das durch starken Paketverlust gekennzeichnet ist, kann erheblich die Dienstgüte (QoS) und die Benutzererfahrung beeinträchtigen. Hier sind die möglichen Ursachen und Maßnahmen zur Reduzierung des Paketverlusts:
Mögliche Ursachen für starken Paketverlust:
- Überlastung des Netzwerks: Wenn die Netzwerkkapazität die Anzahl der Datenpakete nicht bewältigen kann, kommt es zu Überlastung, was zu Paketverlust führt.
- Fehlkonfiguration von Netzwerkgeräten: Falsch konfigurierte Router, Switches oder Firewalls können falsche Datenweiterleitung oder nicht optimales Management von Netzwerkressourcen verursachen.
- Physische Störungen: Fehlerhafte oder beschädigte Kabel, Interferenzen und schlechte Signalqualität können ebenfalls zu Paketverlust führen.
- Buffer Overflow: Wenn die Puffer in Netzwerkgeräten überlaufen, können sie keine neuen Pakete mehr aufnehmen und diese gehen verloren.
- Netzwerkangriffe und Sicherheitsverletzungen: DDoS-Angriffe und andere bösartige Aktivitäten können zur Überlastung des Netzwerks führen und Paketverlust verursachen.
Maßnahmen zur Reduzierung des Paketverlusts:
- Bandbreitenmanagement: Durch effektives Bandbreitenmanagement kann sichergestellt werden, dass die verfügbare Bandbreite sinnvoll und nach Prioritäten verteilt wird.Dies kann durch die folgenden Methoden erreicht werden:
- Paketpriorisierung: Kritische Datenpakete, wie VoIP oder Video-Streaming, erhalten eine höhere Priorität als weniger kritische Datenpakete, wie E-Mails oder Dateiübertragungen.
- Lastverteilung: Die Netzwerkbelastung wird auf mehrere Pfade verteilt, um Überlastung eines einzelnen Pfades zu vermeiden.
- Traffic Shaping: Traffic Shaping kann verwendet werden, um die Rate des Datenverkehrs zu kontrollieren und so die Wahrscheinlichkeit von Überlastung und Paketverlust zu verringern. Zu den Methoden gehören:
- Rate Limiting: Die Geschwindigkeit, mit der bestimmte Arten von Datenpaketen übertragen werden, wird begrenzt, um Überlastung zu vermeiden.
- Queuing: Pakete werden in Warteschlangen organisiert und in einer kontrollierten Reihenfolge gesendet, um Engpässe zu vermeiden.
- Netzwerkgeräte und -infrastruktur optimieren: Regelmäßige Wartung und Aktualisierung von Netzwerkgeräten, Austausch fehlerhafter Kabel und Sicherstellung einer guten Signalqualität kann physischen Paketverlust verhindern.
- Implementierung von QoS-Strategien: Für die Priorisierung und Verwaltung des Netzwerkverkehrs können verschiedene QoS-Strategien verwendet werden, um die Dienstgüte zu verbessern. Dazu gehören:
- DiffServ: Pakete werden basierend auf definierten Serviceklassen priorisiert. Dies hilft, den Netzwerkverkehr effizient zu verwalten und Überlastung zu vermeiden.
- IntServ: Durch die Verwendung von RSVP (Resource Reservation Protocol) wird sichergestellt, dass die erforderlichen Ressourcen für kritische Datenströme entlang des gesamten Übertragungswegs reserviert werden.
- Sicherheitsmaßnahmen: Implementierung von Sicherheitsmaßnahmen wie Firewalls, Intrusion Detection Systems (IDS) und Anti-DDoS-Lösungen, um Netzwerkintegrität zu gewährleisten und bösartige Aktivitäten zu verhindern.
Durch eine Kombination dieser Maßnahmen, insbesondere Bandbreitenmanagement und Traffic Shaping, kann der Paketverlust im Netzwerk signifikant reduziert werden. Dies führt zu einer verbesserten Dienstgüte und einer besseren Benutzererfahrung.
d)
Lösung:
Um den erforderlichen Durchsatz zu berechnen, müssen wir zunächst die Datenmenge und die Zeit in die korrekten Einheiten umrechnen und dann den Einfluss des Paketverlusts berücksichtigen.
Schritte zur Berechnung:
- Schritt 1: Umwandlung der Datenmenge von Megabytes (MB) in Megabits (Mb).
Die Umwandlung kann mittels folgender Formel vorgenommen werden:
1 MB = 8 Megabits (Mb)
Daher:
500 MB × 8 = 4000 Mb
- Schritt 2: Berechnung des erforderlichen Durchsatzes ohne Berücksichtigung des Paketverlusts.
Der Durchsatz (throughput) kann aus der Gleichung „Datenmenge/Zeit“ berechnet werden:
Durchsatz in Mbps = \frac{4000 \text{ Mb}}{5 \text{ Sekunden}} = 800 \text{ Mbps}
- Schritt 3: Berücksichtigung des Paketverlusts von 2%.
Ein Paketverlust von 2% bedeutet, dass 2% der Daten nach der Übertragung erneut gesendet werden müssen. Der erforderliche Durchsatz wird daher etwas höher angesetzt, um die verlorenen Pakete zu kompensieren:
Der effektive Durchsatz inklusive Paketverlust (effective throughput) kann berechnet werden als:
Effektiver Durchsatz = \frac{Durchsatz}{1 - Paketverlust}
Wobei der Paketverlust in Dezimalform ausgedrückt wird (2% = 0,02):
Effektiver Durchsatz = \frac{800 \text{ Mbps}}{1 - 0,02} = \frac{800 \text{ Mbps}}{0,98} ≈ 816,33 \text{ Mbps}
Daher ist der erforderliche Durchsatz, der einen potenziellen Paketverlust von 2% berücksichtigt, etwa 816,33 Mbps.