Kryptografischer Schlüsselaustausch

Jan 01 2023
Wir haben zuvor den Unterschied zwischen symmetrischer und asymmetrischer Verschlüsselung besprochen, und heute werden wir darüber sprechen, wie die Schlüssel tatsächlich ausgetauscht werden. Im Allgemeinen funktionieren kryptografische Schlüsselaustausch- oder verschlüsselte Schlüsselaustauschprotokolle (EKE), indem sie es den beiden Parteien ermöglichen, ein gemeinsames Geheimnis zu generieren, ohne das Geheimnis an Dritte weiterzugeben.

Wir haben zuvor den Unterschied zwischen symmetrischer und asymmetrischer Verschlüsselung besprochen , und heute werden wir darüber sprechen, wie die Schlüssel tatsächlich ausgetauscht werden.

Im Allgemeinen funktionieren kryptografische Schlüsselaustausch- oder verschlüsselte Schlüsselaustauschprotokolle (EKE), indem sie es den beiden Parteien ermöglichen, ein gemeinsames Geheimnis zu generieren, ohne das Geheimnis an Dritte weiterzugeben. Dies erfolgt typischerweise unter Verwendung einer Kombination aus Public-Key-Kryptografie und mathematischen Algorithmen. Das gemeinsame Geheimnis kann dann als Schlüssel für eine symmetrische Chiffre verwendet werden, die es den beiden Parteien ermöglicht, sicher zu kommunizieren.

Verwendung

Da das Verfahren öffentliche Schlüssel verwendet, gilt dies natürlich nur für die asymmetrische Verschlüsselung, da bei der symmetrischen Verschlüsselung die Schlüssel nicht geteilt werden – bekannt und im Voraus vereinbart.

Kryptografischer Schlüsselaustausch ist eine Methode zum sicheren Austausch kryptografischer Schlüssel über ein Netzwerk. Es ist ein grundlegender Aspekt vieler kryptografischer Protokolle, da es zwei Parteien ermöglicht, ein gemeinsames Geheimnis festzulegen, das verwendet werden kann, um sicher miteinander zu kommunizieren.

Der Austausch wird in einer Vielzahl von Anwendungen verwendet, einschließlich sicherer Kommunikation, sicherer Online-Transaktionen und Zugangskontrolle. Es wird häufig verwendet, um eine sichere Verbindung zwischen zwei Parteien herzustellen, z. B. einem Client und einem Server, oder zwischen zwei Geräten. Bevor also Dateien sicher über Protokolle wie FTPS, HTTPS und SFTP gesendet werden können, müssen die beiden kommunizierenden Parteien zunächst einen Schlüsselaustausch durchführen.

Überblick

In der allgemeinsten Form von EKE verschlüsselt mindestens eine Partei einen kurzlebigen (einmaligen) öffentlichen Schlüssel mit einem Passwort und sendet ihn an eine zweite Partei, die ihn entschlüsselt und verwendet, um einen gemeinsamen Schlüssel mit der ersten Partei auszuhandeln.

Es gibt eine andere Variante dieses Schemas, die Augmented-EKE genannt wird. Erweiterte Methoden haben das zusätzliche Ziel, sicherzustellen, dass von einem Server gestohlene Passwortverifizierungsdaten nicht von einem Angreifer verwendet werden können, um sich als Client auszugeben, es sei denn, der Angreifer ermittelt zuerst das Passwort (z. B. durch Ausführen eines Brute-Force-Angriffs auf die gestohlenen Daten).

Die beiden beliebtesten Schlüsselaustauschalgorithmen sind RSA und Diffie-Hellman (jetzt bekannt als Diffie-Helmlman-Merkle). Es wäre wahrscheinlich nicht übertrieben zu sagen, dass das Aufkommen dieser beiden Schlüsselaustauschprotokolle das Wachstum des Internets beschleunigt hat, insbesondere in geschäftlicher Hinsicht. Das liegt daran, dass diese beiden Protokolle es Clients und Servern sowie Servern und Servern ermöglichten, kryptografische Schlüssel über ein unsicheres Medium (das Internet) auszutauschen und es ihnen wiederum ermöglichten, auf sichere Weise elektronisch Transaktionen durchzuführen.

In letzter Zeit hat das Aufkommen der Kryptografie mit elliptischen Kurven neue Austauschprotokolle wie ECDH (Elliptic Curve Diffie-Hellman) und ECDHE (Elliptic Curve Diffie-Hellman Ephemeral) eingeführt.

Wir konzentrieren uns auf die Diffie-Hellman-Familie, bekannt als DH-EKE, die im Laufe der Jahre mehrere Angriffe überstanden hat und zu verbesserten Variationen geführt hat.

Diffie-Hellman

1976 veröffentlichten Whitfield Diffie und Martin Hellman ein kryptografisches Protokoll namens Diffie-Hellman Key Exchange (D–H), das auf Konzepten basiert, die von Hellmans Doktorand Ralph Merkle entwickelt wurden. Das Protokoll ermöglicht es Benutzern, geheime Schlüssel sicher auszutauschen, selbst wenn ein Gegner diesen Kommunikationskanal überwacht. Es basiert auf der Idee, Potenzierung in einem endlichen Feld zu verwenden, um ein gemeinsames Geheimnis zu erzeugen, das zum Verschlüsseln und Entschlüsseln von Nachrichten verwendet werden kann.

Hier ist ein Beispiel für den Diffie-Hellman-Schlüsselaustauschprozess und wie im folgenden Diagramm dargestellt:

Alice und Bob einigen sich auf ein endliches Feld und eine Primzahl innerhalb dieses Feldes (dies wird als „Modulus“ bezeichnet). Nehmen wir an, sie wählen den endlichen Körper GF(23), p , und die Primzahl 5, g .

  1. Alice wählt eine geheime ganze Zahl, „a“, und Bob wählt eine geheime ganze Zahl, „b“. Diese Ganzzahlen werden verwendet, um das gemeinsame Geheimnis zu generieren.
  2. Alice berechnet A = 5^a mod 23 und sendet A an Bob. Bob berechnet B = 5^b mod 23 und sendet B an Alice.
  3. Alice berechnet das gemeinsame Geheimnis, indem sie die folgende Berechnung durchführt: sharedSecret = B^a mod 23. Bob berechnet das gemeinsame Geheimnis unter Verwendung derselben Berechnung: sharedSecret = A^b mod 23.
  4. Sowohl Alice als auch Bob haben jetzt das gemeinsame Geheimnis, das sie als Schlüssel zum Verschlüsseln und Entschlüsseln von Nachrichten verwenden können.

# Alice's side of thNote that in this example, the shared secret is the same for both Alice and Bob, even though they used different secret integers to generate it. This is because the shared secret is generated using a mathematical function that is commutative, meaning that the order of the operands does not affect the result. This property is what allows Alice and Bob to establish a shared secret without revealing their secret integers to each other.e key exchange

# Choose finite field and prime number
field = GF(23)
prime = 5

# Choose secret integer
secretA = 6

# Compute A and send to Bob
A = (prime ^ secretA) mod field
send A to Bob

# Receive B from Bob
B = receive from Bob

# Compute shared secret
sharedSecret = (B ^ secretA) mod field

# Bob's side of the key exchange

# Choose secret integer
secretB = 15

# Compute B and send to Alice
B = (prime ^ secretB) mod field
send B to Alice

# Receive A from Alice
A = receive from Alice

# Compute shared secret
sharedSecret = (A ^ secretB) mod field

Diese Eigenschaft ermöglicht es Alice und Bob, ein gemeinsames Geheimnis festzulegen, ohne sich gegenseitig ihre geheimen Ganzzahlen preiszugeben.

Der Grund, warum der DH-Austausch funktioniert, ist die Diskrete-Logarithmus-Kryptografie, die auf der Schwierigkeit basiert, das Diskrete-Logarithmus-Problem zu lösen.

Kurz gesagt handelt es sich um ein mathematisches Problem, bei dem es darum geht, die ganze Zahl „x“ in der Gleichung „g^x = y mod p“ zu finden, wobei „g“ und „y“ bekannt sind und „p“ eine Primzahl ist. Dieses Problem wird als schwierig zu lösen angesehen, weil es keinen bekannten effizienten Algorithmus gibt, um den Wert von „x“ für beliebige Werte von „g“, „y“ und „p“ zu finden.

Obwohl Diffie-Hellman ein weit verbreitetes und effektives Schlüsselaustauschprotokoll ist, gibt es insgesamt einige praktische Einschränkungen, die Elliptic Curve Diffie-Hellman (ECDH) nach Möglichkeit zu einer bevorzugten Wahl machen.

Elliptische Kurve Diffie-Hellman (ECDH)

Elliptic Curve Diffie-Hellman (ECDH) ist eine Variante des Diffie-Hellman-Schlüsselaustauschprotokolls, das Elliptic-Curve-Kryptographie anstelle der traditionellen Potenzierung in einem endlichen Feld verwendet. ECDH hat mehrere Vorteile gegenüber gewöhnlichem Diffie-Hellman:

  1. ECDH ist effizienter: Operationen mit elliptischen Kurven sind im Allgemeinen schneller und erfordern weniger Rechenleistung als Finite-Field-Operationen, wodurch ECDH effizienter als gewöhnliches Diffie-Hellman wird. Lesen Sie mehr darüber, wie es funktioniert und welche Vorteile es hat, im vorherigen Artikel.
  2. ECDH ist sicherer: Elliptische-Kurven-Kryptographie gilt im Allgemeinen als sicherer als Finite-Field-Kryptographie, da sie widerstandsfähiger gegen bestimmte Arten von Angriffen ist.
  3. ECDH-Schlüssel sind kürzer: Da Elliptische-Kurven-Operationen kleinere Zahlen verwenden, sind ECDH-Schlüssel im Allgemeinen kürzer als gewöhnliche Diffie-Hellman-Schlüssel, wodurch sie einfacher zu übertragen und zu speichern sind.
  4. ECDH hat eine kleinere Schlüsselgröße: Da Elliptische-Kurven-Operationen effizienter und sicherer sind, kann ECDH mit einer kleineren Schlüsselgröße das gleiche Sicherheitsniveau wie gewöhnliches Diffie-Hellman erreichen. Dies kann besonders in Anwendungen nützlich sein, in denen die Schlüsselgröße ein begrenzender Faktor ist, wie z. B. in bestimmten Arten von Hardwaregeräten.

Elliptische Kurve Diffie-Hellman Ephemeral (ECDHE)

Elliptic Curve Diffie-Hellman Ephemeral (ECDHE) ist eine Variante von Elliptic Curve Diffie-Hellman (ECDH), die flüchtige Schlüssel verwendet.

Bei ECDHE generiert jede Partei für jede Sitzung ein neues, kurzlebiges Schlüsselpaar, anstatt wie bei ECDH ein langlebiges statisches Schlüsselpaar zu verwenden. Dies hat mehrere Vorteile:

  1. Verbesserte Sicherheit: Da ECDHE flüchtige Schlüssel verwendet, die nur für eine einzige Sitzung verwendet werden, ist es widerstandsfähiger gegen bestimmte Arten von Angriffen, wie z. B. Replay-Angriffe, bei denen ein Angreifer einen Schlüssel aus einer vorherigen Sitzung erfasst und wiederverwendet.
  2. Forward Secrecy: In ECDHE wird das Shared Secret aus den flüchtigen Schlüsseln abgeleitet, die nach der Sitzung verworfen werden. Das bedeutet, dass selbst wenn ein Angreifer eine Kopie der vergänglichen Schlüssel erhält, er nicht in der Lage ist, vergangene Kommunikation zu entschlüsseln, da das gemeinsame Geheimnis nicht mehr bekannt ist.
  3. Vereinfachte Schlüsselverwaltung: In ECDHE generiert jede Partei ein neues Schlüsselpaar für jede Sitzung, anstatt ein langlebiges statisches Schlüsselpaar zu verwalten. Dies kann die Schlüsselverwaltung vereinfachen und das Risiko einer Schlüsselkompromittierung verringern.