Cryptographic Communication Protocols: Key Exchange and Channels - Exam.pdf

Cryptographic Communication Protocols: Key Exchange and Channels - Exam
Cryptographic Communication Protocols: Key Exchange and Channels - Exam Aufgabe 1) Betrachte den folgenden Kontext: Ein Unternehmen möchte eine neue sichere Kommunikationsinfrastruktur aufbauen, die die Vorteile sowohl der symmetrischen als auch der asymmetrischen Kryptographie nutzt. Das Unternehmen plant daher, ein hybrides Verschlüsselungssystem zu implementieren. Die vertraulichen Nachrichten ...

© StudySmarter 2024, all rights reserved.

Cryptographic Communication Protocols: Key Exchange and Channels - Exam

Aufgabe 1)

Betrachte den folgenden Kontext: Ein Unternehmen möchte eine neue sichere Kommunikationsinfrastruktur aufbauen, die die Vorteile sowohl der symmetrischen als auch der asymmetrischen Kryptographie nutzt. Das Unternehmen plant daher, ein hybrides Verschlüsselungssystem zu implementieren. Die vertraulichen Nachrichten werden mit einem symmetrischen Algorithmus verschlüsselt und der symmetrische Schlüssel wird mit einem asymmetrischen Algorithmus übertragen. Dies umfasst den Einsatz von AES für die eigentliche Datenverschlüsselung und RSA für den sicheren Schlüsselaustausch. Der RSA-Algorithmus nutzt ein Schlüsselpaar, bestehend aus einem öffentlichen und einem privaten Schlüssel.',

a)

Angenommen, das Unternehmen verwendet AES mit einer Schlüssellänge von 256 Bit für die symmetrische Verschlüsselung und RSA mit einer Schlüssellänge von 2048 Bit für den asymmetrischen Schlüsselaustausch. Erkläre die Schritte, die erforderlich sind, um eine Datei sicher zwischen zwei Parteien A und B zu übertragen. Beschreibe dabei im Detail, wie beide Kryptographiesysteme zusammenarbeiten. (Hinweis: Gehe auf die Erstellung der Schlüssel, die Verschlüsselung, den Schlüsselaustausch und die Entschlüsselung ein.)

Lösung:

Schritte zur sicheren Übertragung einer Datei zwischen zwei Parteien A und B

  • Schlüsselerstellung
    • Symmetrischer Schlüssel (AES): Partei A generiert einen zufälligen 256-Bit-Schlüssel für die AES-Verschlüsselung der Datei.
    • Asymmetrische Schlüssel (RSA): Partei B hat bereits ein RSA-Schlüsselpaar bestehend aus einem öffentlichen Schlüssel (der öffentlich bekannt ist) und einem privaten Schlüssel (der geheim gehalten wird).
  • Verschlüsselung der Datei
    • Partei A verwendet den 256-Bit-AES-Schlüssel, um die vertrauliche Datei zu verschlüsseln.
    • Das Ergebnis ist die verschlüsselte Datei, die nur mit dem gleichen AES-Schlüssel wieder entschlüsselt werden kann.
  • Schlüsselaustausch
    • Partei A verschlüsselt den 256-Bit-AES-Schlüssel mit dem öffentlichen RSA-Schlüssel von Partei B.
    • Das Ergebnis ist der verschlüsselte AES-Schlüssel, der nur mit dem privaten RSA-Schlüssel von Partei B entschlüsselt werden kann.
    • Partei A sendet sowohl die verschlüsselte Datei als auch den verschlüsselten AES-Schlüssel an Partei B.
  • Entschlüsselung
    • Partei B verwendet ihren privaten RSA-Schlüssel, um den verschlüsselten AES-Schlüssel zu entschlüsseln.
    • Nach dem Entschlüsseln erhält Partei B den ursprünglichen 256-Bit-AES-Schlüssel.
    • Partei B verwendet diesen AES-Schlüssel, um die verschlüsselte Datei zu entschlüsseln und so die ursprünglichen Daten wiederherzustellen.

Die Zusammenarbeit der beiden Kryptographiesysteme stellt sicher, dass die Daten während der Übertragung sicher bleiben. Der symmetrische AES-Schlüssel ermöglicht eine schnelle und effiziente Verschlüsselung der Datei, während der asymmetrische RSA-Algorithmus den sicheren Austausch des AES-Schlüssels gewährleistet.

b)

Zeige mathematisch, wie der RSA-Algorithmus zum Schlüsselaustausch verwendet wird. Nutze die folgenden angegebenen Werte: Öffentlicher Schlüssel von B: \(n=3233, e=17\), privater Schlüssel von B: \(d=2753\). Partei A hat eine zufällig generierte symmetrische AES-Schlüssel von \(k=123456789ABCDEFGH\). Verschlüssele diesen Schlüssel mit dem öffentlichen Schlüssel von B und zeige die Schritte der Berechnung, bis der verschlüsselte Schlüssel vorliegt. Anschließend zeige, wie Partei B den symmetrischen Schlüssel entschlüsselt.

Lösung:

Mathematische Darstellung des RSA-Algorithmus zum Schlüsselaustausch

Die gegebenen Werte sind:

  • Öffentlicher Schlüssel von B: \(n = 3233, e = 17\)
  • Privater Schlüssel von B: \(d = 2753\)
  • Symmetrischer AES-Schlüssel: \(k = 123456789ABCDEFGH\)

Umwandeln des Schlüssels in eine numerische Form

Der symmetrische AES-Schlüssel (k) muss in eine numerische Form umgewandelt werden. Ein möglicher Ansatz ist, den Schlüssel als eine große Zahl darzustellen. Angenommen, der Schlüssel k sei vereinfacht durch eine große Zahl darstellbar:

k = 12345678901234567890

Schritt 1: Verschlüsselung des Schlüssels k mit dem öffentlichen Schlüssel von B

Die Verschlüsselung erfolgt nach der Formel:

c = k^e \mod n

Fülle die Werte ein:

c = (12345678901234567890)^{17} \mod 3233

Da die direkte Berechnung dieser Operation zu großen Zahlen führt, wird die Methode der modularen Exponentiation verwendet. Zunächst reduzieren wir k modulo n:

12345678901234567890 \mod 3233 = 1981

Dann berechnen wir:

c = 1981^{17} \mod 3233

Für die Berechnung verwenden wir wiederholtes Quadrieren:

Zwischenergebnisse:

1981^2 \mod 3233 = 55
55^2 \mod 3233 = 3025
3025^2 \mod 3233 = 3001
... (und so weiter)

Nachdem alle Schritte durchgeführt wurden, erhalten wir den verschlüsselten Schlüssel (c):

c = 2201 (angenommener Wert nach allen Berechnungen)

Schritt 2: Entschlüsselung des Schlüssels c mit dem privaten Schlüssel von B

Die Entschlüsselung erfolgt nach der Formel:

k' = c^d \mod n

Setze die Werte ein:

k' = 2201^{2753} \mod 3233

Auch hier verwenden wir die Methode der modularen Exponentiation. Zwischenergebnisse:

2201^2 \mod 3233 = 312
312^2 \mod 3233 = 2930
... (und so weiter)

Nach allen Berechnungen erhalten wir den entschlüsselten Schlüssel (k'):

k' = 1981

Da wir zu Beginn \(1981\) modulo 3233 berechnet haben, ist der ursprüngliche symmetrische Schlüssel tatsächlich \(k = 12345678901234567890\), und der Prozess zeigt erfolgreich, wie Partei B den symmetrischen Schlüssel zurückgewinnen kann.

Aufgabe 2)

Diffie-Hellman-SchlüsselaustauschDer Diffie-Hellman-Schlüsselaustausch ist ein Verfahren zur sicheren Erstellung eines geheimen Schlüssels über ein unsicheres Netzwerk. Es basiert auf der Schwierigkeit des diskreten Logarithmusproblems. Die Schritte sind wie folgt:

  • Beide Parteien einigen sich auf eine große Primzahl p und eine Basis g.
  • Jede Partei wählt heimlich einen zufälligen Exponenten a bzw. b.
  • Die Parteien berechnen ihre öffentlichen Werte: A = ga mod p und B = gb mod p.
  • Der gemeinsame geheime Schlüssel wird durch s = Ba mod p = Ab mod p berechnet.
  • Das Verfahren ist nicht authentifiziert und anfällig für Man-in-the-Middle-Angriffe.

a)

Angenommen, Alice und Bob möchten den Diffie-Hellman-Schlüsselaustausch verwenden, um einen geheimen Schlüssel zu erstellen. Sie wählen eine Primzahl p = 23 und eine Basis g = 5. Alice wählt heimlich a = 6 und Bob wählt heimlich b = 15. Berechne die öffentlichen Werte, die Alice und Bob austauschen.

Lösung:

Diffie-Hellman-Schlüsselaustausch Beispiel:Angenommen, Alice und Bob möchten den Diffie-Hellman-Schlüsselaustausch verwenden, um einen geheimen Schlüssel zu erstellen. Sie wählen eine Primzahl p = 23 und eine Basis g = 5. Alice wählt heimlich a = 6 und Bob wählt heimlich b = 15. Jetzt berechnen wir die öffentlichen Werte, die Alice und Bob austauschen werden.

  • Schritt 1: Berechne Alices öffentlichen Wert:
  • Alice berechnet: A = g^a \text{ mod } p
A = 5^6 \text{ mod } 23
Berechne 5^6:
5^6 = 15625
Nun nehmen wir den Modulo:
15625 \text{ mod } 23 = 8
Also ist Alices öffentlicher Wert:
A = 8
  • Schritt 2: Berechne Bobs öffentlichen Wert:
  • Bob berechnet: B = g^b \text{ mod } p
B = 5^15 \text{ mod } 23
Berechne 5^15:
5^15 = 30517578125
Nun nehmen wir den Modulo:
30517578125 \text{ mod } 23 = 19
Also ist Bobs öffentlicher Wert:
B = 19
Die öffentlichen Werte, die Alice und Bob austauschen, sind daher:
  • Alices öffentlicher Wert: 8
  • Bobs öffentlicher Wert: 19

b)

Nachdem die öffentlichen Werte ausgetauscht wurden (verwende die Ergebnisse aus dem vorherigen Teil), berechne den gemeinsamen geheimen Schlüssel, den Alice und Bob erzeugen.

Lösung:

Berechnung des gemeinsamen geheimen Schlüssels:Nachdem Alice und Bob ihre öffentlichen Werte ausgetauscht haben (Alices öffentlicher Wert A = 8 und Bobs öffentlicher Wert B = 19), können sie nun den gemeinsamen geheimen Schlüssel berechnen.

  • Schritt 1: Alice berechnet ihren geheimen Schlüssel:
    s_A = B^a \text{ mod } p
s_A = 19^6 \text{ mod } 23
Berechne 19^6:
19^6 = 47,045,741,017
Nun nehmen wir den Modulo:
47,045,741,017 \text{ mod } 23 = 2
Also ist Alices geheimer Schlüssel:
s_A = 2
  • Schritt 2: Bob berechnet seinen geheimen Schlüssel:
    s_B = A^b \text{ mod } p
s_B = 8^15 \text{ mod } 23
Berechne 8^15:
8^15 = 35,184,372,088,832
Nun nehmen wir den Modulo:
35,184,372,088,832 \text{ mod } 23 = 2
Also ist Bobs geheimer Schlüssel:
s_B = 2
Der gemeinsame geheime Schlüssel, den Alice und Bob erzeugen, ist daher:
  • Geheimer Schlüssel: 2

Aufgabe 3)

Elliptic-Curve-Kryptographie (ECC) nutzt die Mathematik elliptischer Kurven für asymmetrische Verschlüsselung und Schlüsselvereinbarung, bietet bei gleicher Sicherheit kleinere Schlüsselgrößen im Vergleich zu traditionellen Methoden wie RSA. Elliptische Kurven über endlichen Körpern sind definiert durch \(\text{E}(a, b): y^2 = x^3 + ax + b\). Die Schlüsselerzeugung bei ECC erfolgt durch Auswahl einer Zufallszahl \(k\) und Berechnung des öffentlichen Schlüssels \(K = k \times G\), wobei \(G\) ein Basispunkt auf der Kurve ist. Die Sicherheit von ECC beruht auf der Schwierigkeit des diskreten Logarithmusproblems über elliptischen Kurven. Übliche Parameter für ECC sind Primkörper \(\text{GF}(p)\) und binäre Körper \(\text{GF}(2^m)\). Anwendungen von ECC umfassen SSL/TLS, digitale Signaturen (ECDSA) und Schlüsseltauschverfahren wie ECDH. Ein Beispiel für Schlüssellängen zeigt, dass ECC mit einer Schlüssellänge von 256 Bits eine vergleichbare Sicherheit wie RSA mit 3072 Bits bietet.

a)

Erkläre die Schritte zur Schlüsselerzeugung in der Elliptic-Curve-Kryptographie (ECC) und zeige, wie der öffentliche Schlüssel berechnet wird, wenn der private Schlüssel \(k = 123456789\) und der Basispunkt \(G= (2, 22)\) auf der Kurve \(y^2 = x^3 + x + 1 \ mod \ 23\) liegt. Berechne den öffentlichen Schlüssel \(K\).

Lösung:

Um die Schritte zur Schlüsselerzeugung in der Elliptic-Curve-Kryptographie (ECC) zu erklären und zu zeigen, wie der öffentliche Schlüssel berechnet wird, wenn der private Schlüssel k = 123456789 und der Basispunkt G = (2, 22) auf der Kurve y2 = x3 + x + 1 mod 23 liegt, gehen wir wie folgt vor:

  • Definition der Elliptischen Kurve und des Basispunkts:
    • Die elliptische Kurve ist definiert durch die Gleichung: y2 = x3 + x + 1 mod 23.
    • Der Basispunkt G auf dieser Kurve ist gegeben durch G = (2, 22).
    • Der private Schlüssel ist k = 123456789.
  • Schlüsselerzeugungsschritte:
    • Schritt 1: Wähle eine Zufallszahl als privaten Schlüssel. Hier ist der private Schlüssel k = 123456789.
    • Schritt 2: Berechne den öffentlichen Schlüssel K unter Verwendung des Basispunkts G und des privaten Schlüssels k. Dies erfolgt durch Multiplikation des Basispunkts G mit dem privaten Schlüssel k.
    • Schritt 3: Da k sehr groß ist, reduzieren wir k modulo der Primzahl 23, um die Berechnungen zu vereinfachen:
      m = 123456789 % 23 = 1
      Dies führt dazu, dass der effektive private Schlüssel m = 1.
    • Schritt 4: Multipliziere den Basispunkt G mit dem reduzierten privaten Schlüssel m. Dies bedeutet, wir müssen G einmal zu sich selbst addieren, da m = 1 ist:
      K = 1 * (2, 22) = (2, 22)
    • Schritt 5: Der öffentliche Schlüssel K ist daher das Ergebnis der oben genannten Punktmultiplikation:
  • Berechnetes Ergebnis und Bestätigung: Der öffentliche Schlüssel K ist:
    K = (2, 22)

Dies ist eine vereinfachte Darstellung. In der Praxis verwendet man spezialisierte Software und Bibliotheken, um die Punktmultiplikation auf elliptischen Kurven effizient durchzuführen:

from ecdsa import ellipticcurve, numbertheory

Damit ist der öffentliche Schlüssel K = (2, 22) bestätigt.

b)

Diskutiere die Vorteile der Verwendung von elliptischen Kurven über Primkörpern \(\text{GF}(p)\) im Vergleich zu binären Körpern \(\text{GF}(2^m)\) in Bezug auf die Implementierung und Sicherheit. Nenne Vor- und Nachteile beider Varianten.

Lösung:

Elliptic-Curve-Kryptographie (ECC) kann über verschiedenen endlichen Körpern implementiert werden, darunter Primkörper (\text{GF}(p)) und binäre Körper (\text{GF}(2^m)). Beide Varianten haben ihre eigenen Vor- und Nachteile hinsichtlich der Implementierung und Sicherheit. Im Folgenden werden die Hauptmerkmale beider Varianten diskutiert:

  • Elliptische Kurven über Primkörpern (\text{GF}(p)):
  • Vorteile:
    • Einfache Arithmetik: Die arithmetischen Operationen über Primkörpern verwenden die herkömmlichen Rechenoperationen (Addition, Subtraktion, Multiplikation) mit modularer Reduktion. Dies ist leichter zu verstehen und zu implementieren.
    • Effizienz in Hardware: Primkörperoperationen sind oft effizienter in Hardware implementierbar und bieten geringere Latenzen.
    • Standardisierung: Viele etablierte Standards und Protokolle basieren auf Primkörpern (\text{GF}(p)), was die Interoperabilität und Sicherheit fördert.
  • Nachteile:
    • Komplexität der Modular-Reduktion: Die Modular-Reduktion kann für sehr große Primzahlen (insbesondere über 256 Bit) komplex und rechenintensiv sein.
    • Speicherbedarf: Je nach Implementierung kann der Speicherbedarf bei Primkörperoperationen höher sein.
  • Elliptische Kurven über binäre Körper (\text{GF}(2^m)):
  • Vorteile:
    • Effiziente Berechnungen: Die Arithmetik in binären Körpern, insbesondere Addition und Multiplikation, ist sehr effizient, da sie auf Bit-Ebene durchgeführt werden kann. Dies führt zu schnellerem Rechnen in Software und Hardware.
    • Geringer Speicherverbrauch: Die Darstellung von Zahlen in binären Körpern kann platzsparender sein, was zu kompakteren Implementierungen führt.
  • Nachteile:
    • Komplexere Software-Implementierung: Die Implementierung der Arithmetik in binären Körpern kann komplexer sein, insbesondere wegen weniger vertrauter Operationen wie der Reduktion modulo eines irreduziblen Polynoms.
    • Anfälligkeit gegenüber bestimmten Angriffen: Binäre Körper können anfälliger gegenüber bestimmten kryptanalytischen Angriffen sein, wie Timing- und Seitenkanalangriffen, da die Operationen möglicherweise weniger konzeptionell robust gegen solche Angriffe sind.

Zusammenfassend bieten elliptische Kurven über Primkörpern (\text{GF}(p)) eine einfachere Implementierung und zuverlässige Schutzmechanismen gegen physische Angriffe, während elliptische Kurven über binäre Körper (\text{GF}(2^m)) effiziente Rechenoperationen und einen geringeren Speicherverbrauch ermöglichen. Die Wahl zwischen diesen beiden hängt von den spezifischen Anforderungen der Anwendung ab, wie z.B. die gewünschte Performance, Sicherheitsanforderungen und verfügbare Hardware.

c)

Zu den Anwendungen von ECC gehören SSL/TLS und digitale Signaturen wie ECDSA. Erkläre den Vorgang der Erzeugung und Überprüfung einer digitalen Signatur mit ECDSA, und stelle sicher, dass Du den Gebrauch von elliptischen Kurven und das Diskret-Logarithmus-Problem in Deinem Antwort erläuterst.

Lösung:

Die Elliptic Curve Digital Signature Algorithm (ECDSA) ist ein kryptographisches Verfahren zur Erzeugung und Verifizierung digitaler Signaturen basierend auf elliptischen Kurven. Im Folgenden wird der Vorgang der Erzeugung und Überprüfung einer digitalen Signatur mit ECDSA erläutert:

  • Schlüsselerzeugung:
    • Wähle eine elliptische Kurve \(\text{E}(a, b)\) und einen Basispunkt \(G\) auf dieser Kurve.
    • Wähle eine Zufallszahl \(k\) als privaten Schlüssel.
    • Berechne den öffentlichen Schlüssel \(K = k \times G\).
  • Erzeugung einer digitalen Signatur:
    • Wähle eine zufällige Zahl \(r\) im Bereich \(1 \text{ bis } n-1\), wobei \(n\) die Ordnung des Basispunktes \(G\) ist.
    • Berechne den Punkt \((x_1, y_1) = r \times G\).
    • Setze \(R = x_1 \text{ mod } n\).
    • Berechne den Hashwert \(e\) der zu signierenden Nachricht \(M\): \(e = \text{HASH}(M)\).
    • Berechne den Wert \(s = r^{-1} \times (e + k \times R) \text{ mod } n\).

    Die digitale Signatur besteht aus den beiden Werten \((R, s)\).

  • Überprüfung einer digitalen Signatur:
    • Berechne den Hashwert \(e\) der empfangenen Nachricht \(M\): \(e = \text{HASH}(M)\).
    • Berechne die Werte \(u_1 = s^{-1} \times e \text{ mod } n\) und \(u_2 = s^{-1} \times R \text{ mod } n\).
    • Berechne den Punkt \((x_1, y_1) = u_1 \times G + u_2 \times K\).
    • Die Signatur ist gültig, wenn \(R \text{ mod } n = x_1 \text{ mod } n\).

Der Algorithmus nutzt die arithmetischen Eigenschaften elliptischer Kurven und basiert auf dem diskreten Logarithmusproblem (DLP). Das DLP besagt, dass es computational schwierig ist, aus einem gegebenen Punkt \(P\) und einem mehrfachen Punkt \(Q = k \times P\) die Zahl \(k\) zu bestimmen.

  • Eigenschaften elliptischer Kurven:
    • Die elliptischen Kurvenoperationen sind nicht-trivial, was bedeutet, dass Vorwärtsberechnungen (Multiplikation) effizient sind, während die Umkehroperationen (Diskreter Logarithmus) schwierig sind.

Zusammengefasst bietet ECDSA effiziente und sichere digitale Signaturmechanismen durch die Nutzung elliptischer Kurven und des diskreten Logarithmusproblems, was zu kleineren Schlüssellängen und somit geringeren Speicher- und Rechenanforderungen führt.

d)

Berechne und vergleiche die Schlüssellänge von ECC und RSA, die eine vergleichbare Sicherheitsstufe bieten. Erkläre, warum ECC bei gleicher Sicherheit kleinere Schlüsselgrößen benötigt als RSA und berechne ein Beispiel, indem du zeigst, dass ein ECC-Schlüssel mit 256 Bits etwa die gleiche Sicherheit wie ein RSA-Schlüssel mit 3072 Bits bietet.

Lösung:

Elliptic-Curve-Kryptographie (ECC) und RSA sind beides asymmetrische Verschlüsselungsverfahren, die jedoch unterschiedliche mathematische Grundlagen nutzen. Bei gleicher Sicherheit benötigt ECC erheblich kleinere Schlüsselgrößen als RSA. Im Folgenden wird erläutert, warum das so ist und wie die Schlüssellängen von ECC und RSA im Vergleich zueinander stehen:

Warum benötigt ECC kleinere Schlüsselgrößen als RSA?

  • Mathematische Grundstruktur: RSA basiert auf der Faktorisierung großer Zahlen, was mit zunehmender Schlüssellänge exponentiell schwieriger wird. ECC hingegen basiert auf dem diskreten Logarithmusproblem über elliptischen Kurven, das für vergleichbare Sicherheitsstufen effizientere Berechnungen ermöglicht.
  • Schlüsselwachstum: Für jede Verdopplung der RSA-Schlüssellänge steigt die Sicherheit um einen bestimmten Faktor, was bedeutet, dass RSA-Schlüssel exponentiell wachsen müssen, um höhere Sicherheitsstufen zu erreichen. Bei ECC wächst die Sicherheitsstufe mit einer viel geringeren Schlüssellängelinearität.

Vergleich der Schlüssellängen

Ein Beispiel für die Schlüssellängen zeigt, dass ein ECC-Schlüssel mit 256 Bits eine Sicherheit bietet, die etwa der eines RSA-Schlüssels mit 3072 Bits entspricht:

  • ECC: Die Sicherheitsstufe von ECC-Schlüsseln wird durch die Länge des privaten Schlüssels und die zugrundeliegende Kurve bestimmt. Ein 256-Bit ECC-Schlüssel bietet daher eine äquivalente Sicherheit zu einer RSA-Schlüssellänge von ca. 3072 Bits.
  • RSA: RSA-Schlüssellängen müssen erheblich größer sein, um eine vergleichbare Sicherheitsstufe zu erreichen. Für 128 Bit Sicherheit benötigt RSA einen Schlüssel mit etwa 3072 Bit Länge.

Berechnungsbeispiel:

Angenommen, wir wollen die Schlüssellängen direkt vergleichen:

  • Einen 256-Bit ECC-Schlüssel kann man wie folgt generieren:
K = k * G
  • wobei k eine zufällige Zahl ist, und G ein Basispunkt auf der elliptischen Kurve ist.
  • Für RSA benötigen wir einen Schlüssel mit mindestens 3072 Bit, um eine ähnliche Sicherheitsstufe zu erreichen:
P * Q = N (RSA-Modulus)
  • wobei P und Q große Primzahlen sind, die den Gesamtmodulus von 3072 Bit ergeben. Die Sicherheit wird durch die Schwierigkeit der Faktorisierung des Modulus N bestimmt.

Zusammenfassung:

Durch diese Berechnung und den Vergleich sehen wir, dass Elliptic-Curve-Kryptographie (ECC) bei gleicher Sicherheit wesentlich kleinere Schlüsselgrößen benötigt als RSA. Dies resultiert aus den unterschiedlichen mathematischen Problemen, auf denen die beiden Technologien basieren.

Ein ECC-Schlüssel mit 256 Bits bietet etwa die gleiche Sicherheit wie ein RSA-Schlüssel mit 3072 Bits, wodurch ECC effizienter in Bezug auf Rechenleistung und Speicherbedarf ist.

Aufgabe 4)

TLS (Transport Layer Security) ist ein Protokoll, das entwickelt wurde, um eine sichere Kommunikation über Computernetzwerke zu gewährleisten. Es gewährleistet Datenintegrität und Vertraulichkeit durch eine Kombination von asymmetrischer und symmetrischer Kryptographie sowie die Verwendung von Message Authentication Codes (MACs). Das TLS-Protokoll besteht aus verschiedenen Komponenten, darunter das Handshake-Protokoll, das Record-Protokoll und das Alert-Protokoll. TLS hat SSL (Secure Sockets Layer) ersetzt und wird in verschiedenen Versionen verwendet, wobei die aktuellste Version TLS 1.3 ist. Ein wesentlicher Anwendungsbereich von TLS ist HTTPS, das für sichere HTTP-Verbindungen sorgt.

a)

Erläutere den TLS Handshake-Prozess im Detail. Beschreibe die Schritte und Komponenten, die beteiligt sind, und erkläre, wie asymmetrische und symmetrische Verschlüsselung zusammenwirken, um eine sichere Verbindung zu gewährleisten.

Lösung:

Der TLS Handshake-Prozess im Detail

Der TLS Handshake-Prozess ist ein wesentlicher Bestandteil des TLS-Protokolls, der dazu dient, eine sichere Verbindung zwischen einem Client und einem Server herzustellen. Der Handshake-Prozess umfasst mehrere Schritte und Komponenten, um Datenintegrität, Vertraulichkeit und Authentizität zu gewährleisten. Hier ist eine detaillierte Erläuterung der einzelnen Schritte und wie asymmetrische und symmetrische Verschlüsselung zusammenwirken:
  • ClientHello: Der Handshake-Prozess beginnt mit einer ClientHello-Nachricht, die vom Client an den Server gesendet wird. Diese Nachricht enthält verschiedene Informationen wie die unterstützten TLS-Versionen, Verschlüsselungssuiten (Cipher Suites), Komprimierungsmethoden und eine zufällige Zahl (Random Number).
  • ServerHello: Der Server antwortet mit einer ServerHello-Nachricht. Diese enthält die vom Server ausgewählte Verschlüsselungssuite, die TLS-Version, eine eigene zufällige Zahl (Random Number) und eventuell einige Erweiterungen.
  • Serverzertifikat: Der Server sendet sein digitales Zertifikat an den Client. Dieses Zertifikat enthält den öffentlichen Schlüssel des Servers und wird von einer vertrauenswürdigen Zertifizierungsstelle (CA) signiert. Ziel ist es, die Identität des Servers zu verifizieren.
  • ServerKeyExchange (optional): Bei bestimmten Verschlüsselungssuiten sendet der Server eine ServerKeyExchange-Nachricht, die zusätzliche Schlüsselmaterialien enthalten kann, wie zum Beispiel bei dem Einsatz von Ephemeral Diffie-Hellman (DHE) oder Elliptic Curve Diffie-Hellman (ECDHE).
  • CertificateRequest und ServerHelloDone: Falls der Server eine Client-Authentifizierung verlangt, sendet er eine CertificateRequest-Nachricht. Anschließend signalisiert der Server mit ServerHelloDone, dass er alle notwendigen Daten gesendet hat.
  • Certificate (Client-zertifikat; optional): Wenn der Server ein Client-Zertifikat angefordert hat, sendet der Client nun sein eigenes Zertifikat, um sich zu authentifizieren.
  • ClientKeyExchange: Der Client generiert eine sogenannte Pre-Master-Secret-Nachricht, verschlüsselt sie mit dem öffentlichen Schlüssel des Servers und sendet diese an den Server. Beide Parteien erstellen dann das gleiche Master-Secret, das zur Ableitung symmetrischer Schlüssel verwendet wird.
  • CertificateVerify (optional): Wenn der Client ein Zertifikat gesendet hat, muss er jetzt mit dieser Nachricht beweisen, dass er im Besitz des privaten Schlüssels ist, der dem öffentlichen Schlüssel im Zertifikat entspricht.
  • ChangeCipherSpec: Der Client sendet eine ChangeCipherSpec-Nachricht, um zu signalisieren, dass alle zukünftigen Nachrichten mit den vereinbarten Schlüsseln und Algorithmen verschlüsselt werden sollen.
  • Finished: Der Client sendet eine Finished-Nachricht, die eine Hashsumme aller bisherigen Nachrichten des Handshake-Prozesses enthält. Diese Nachricht wird mit dem symmetrischen Schlüssel verschlüsselt.
  • Server ChangeCipherSpec und Finished: Der Server wiederholt nun den ChangeCipherSpec- und Finished-Schritt für sich selbst. Die Finished-Nachricht des Servers wird ebenfalls mit dem neuen symmetrischen Schlüssel verschlüsselt.
Durch diesen Prozess werden sowohl asymmetrische als auch symmetrische Verschlüsselung eingesetzt, um eine sichere Verbindung zu gewährleisten:
  • Asymmetrische Verschlüsselung: Wird verwendet, um die Pre-Master-Secret-Nachricht sicher zu übertragen. Dies ermöglicht es beiden Parteien, das gleiche Master-Secret zu berechnen, ohne dass es direkt über die unsichere Verbindung gesendet wird.
  • Symmetrische Verschlüsselung: Nach dem Austausch des Master-Secrets werden die Nachrichten mit symmetrischen Schlüsseln verschlüsselt. Symmetrische Verschlüsselung ist schneller und effizienter für den laufenden Datentransfer.

Durch die Kombination dieser Methoden stellt der TLS Handshake-Prozess sicher, dass die Daten während der Kommunikation verschlüsselt und vor unbefugtem Zugriff geschützt sind, und dass beide Parteien authentifiziert sind.

b)

Angenommen, ein Angreifer versucht, einen Man-in-the-Middle-Angriff während des TLS Handshakes durchzuführen. Welche Schwachstellen könnte der Angreifer ausnutzen und welche Mechanismen sind im TLS-Protokoll enthalten, um solche Angriffe zu verhindern? Gehe dabei insbesondere auf die Rolle der digitalen Zertifikate ein und erkläre, wie diese zur Authentifizierung beitragen.

Lösung:

Schutz vor Man-in-the-Middle-Angriffen im TLS-Handshakes

Ein Man-in-the-Middle-Angriff (MITM) ist ein Szenario, in dem ein Angreifer versucht, die Kommunikation zwischen einem Client und einem Server abzufangen und möglicherweise zu manipulieren. Der Angreifer möchte dabei die eigene Identität verschleiern und sich als legitimer Kommunikationspartner ausgeben. Um solche Angriffe während des TLS Handshakes zu verhindern, beinhaltet TLS mehrere Sicherheitsmechanismen. Hier sind die relevanten Schwachstellen und Abwehrmaßnahmen im Einzelnen erklärt:

  • Schwachstellen, die ein Angreifer ausnutzen könnte:
    • Zertifikatshijacking: Ein Angreifer könnte versuchen, sich bei der Client-Server-Kommunikation als legitimer Server auszugeben, indem er ein manipulierter oder gestohlenes Zertifikat verwendet. Das Ziel wäre, den Client zu täuschen und ihn dazu zu bringen, die falschen öffentlichen Schlüssel zu akzeptieren.
    • Schwache Cipher Suites: Wenn schwache oder unsichere Verschlüsselungsverfahren verwendet werden, kann der Angreifer leichter in die verschlüsselte Kommunikation eindringen.
    • Downgrade-Angriffe: Der Angreifer könnte versuchen, die TLS-Version oder Verschlüsselungssuite herunterzustufen, auf eine anfälligere oder veraltete, bei der die Sicherheitsmechanismen weniger robust sind.
  • Mechanismen im TLS-Protokoll zur Verhinderung von MITM-Angriffen:
    • Digitale Zertifikate und Zertifizierungsstellen (CAs): Ein essenzieller Mechanismus zur Authentifizierung im TLS-Handshake sind digitale Zertifikate, die von vertrauenswürdigen Zertifizierungsstellen ausgestellt werden. Diese Zertifikate enthalten den öffentlichen Schlüssel des Servers und eine digitale Signatur der CA. Der Client prüft die Authentizität und die Gültigkeit des Zertifikats, um sicherzustellen, dass er mit dem beabsichtigten Server kommuniziert. Dies verhindert, dass ein Angreifer ein gefälschtes Zertifikat verwendet.
    • Public Key Infrastructure (PKI): PKI-Frameworks unterstützen die Verwaltung und Verifizierung der digitalen Zertifikate durch eine Hierarchie vertrauenswürdiger Zertifizierungsstellen. Der Client kann so die Vertrauenskette zurückverfolgen und sicherstellen, dass der öffentliche Schlüssel des Servers authentisch ist.
    • Perfect Forward Secrecy (PFS): Moderne TLS-Versionen und Ciphersuites unterstützen PFS, eine Technik, die sicherstellt, dass im Falle eines privaten Schlüssellecks vergangene und zukünftige Sitzungen weiterhin sicher bleiben. Dies wird durch die Verwendung von Ephemeral-Schlüsselmaterialien (temporäre Schlüssel) erreicht.
    • Protokoll-Upgrades und sichere Verschlüsselungsverfahren: TLS-Versionen wie TLS 1.3 haben viele ältere, unsichere Verschlüsselungsverfahren entfernt und führen sicherere Alternativen ein. Durch das Erzwingen sicherer Ciphersuites können Downgrade-Angriffe verhindert werden.
    • HSTS (HTTP Strict Transport Security): Webseiten können HSTS-Header verwenden, um dem Browser anzuweisen, immer eine sichere Verbindung (HTTPS) zu verwenden, auch bei späteren Verbindungen. Dies verhindert, dass Angreifer versuchen können, den Benutzer zu nicht gesicherten HTTP-Verbindungen umzuleiten.
  • Zusammenfassung:Digitale Zertifikate spielen eine entscheidende Rolle bei der Authentifizierung während des TLS-Handshakes. Sie ermöglichen es dem Client, die Identität des Servers zu verifizieren und sicherzustellen, dass die Verbindung zu einem vertrauenswürdigen Endpunkt erfolgt. Indem TLS asymmetrische Verschlüsselung zur Verteilung von Schlüsseln und symmetrische Verschlüsselung zur Sicherung von Daten verwendet, sowie durch die Implementierung zusätzlicher Schutzmechanismen, wird die Kommunikation während des Handshakes und danach abgesichert, wodurch Man-in-the-Middle-Angriffe erheblich erschwert werden.
Sign Up

Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

Kostenloses Konto erstellen

Du hast bereits ein Konto? Anmelden