Entschuldigung für eine so grundlegende Frage, ich kann online keine gute Erklärung finden. Warum brauchen wir 2 Phasen, wenn nach Phase 1 bereits ein Tunnel besteht?
Der Punkt ist, um die Verschlüsselung und die Schlüssel, die die Daten selbst verwenden werden, “zu verschleiern”.
Die Details in Phase 1 werden mehr oder weniger im Klartext übertragen. Wenn du Daten über einen Tunnel in Phase 1 sendest, hast du die meisten Details, die du benötigst, um den Datenverkehr zu entschlüsseln.
Wenn die einzige Daten, die du über diesen Tunnel überträgst, die anfängliche Aushandlung des Phase-2-Tunnels ist, gibt es viel weniger für jemanden in der Mitte, um den Datenverkehr zu entschlüsseln, und keine der Details, die verwendet werden könnten, um zu ermitteln, womit die Daten selbst verschlüsselt sind.
Es gibt ein Argument, zu sagen, dass wenn man Phase 1 kompromittiert, Phase 2 nicht viel schwerer zu kompromittieren ist. Allerdings wird Phase 1 nicht ständig genutzt, und mit den Lebensdauern, die man einstellen kann, könnte es sein, dass, wenn jemand es dechiffriert hat, bereits eine neue Phase-1-Verhandlung begonnen hat. Dies würde die vom Angreifer gefundenen Informationen mehr oder weniger nutzlos machen.
Edit:
Es scheint, dass einiges von dem, was ich geschrieben habe, entweder falsch oder irreführend ist (wie von ein paar Leuten erwähnt). Ich denke, es gibt einige Lücken in meinem Verständnis, da dies das war, was ich für den Fall hielt.
Siehe andere Antworten in diesem Thread für bessere Erklärungen.
Gute Frage.
In IPsec VPNs ist IPsec das Protokoll, das deinen Datenverkehr sichert. IPsec bietet Vertraulichkeit, Integrität, Anti-Wiedergabe, und (indirekt) Authentifizierung.
Authentifizierung ist der Prozess, die andere Seite der Kommunikation zu identifizieren und sicherzustellen, dass sie wirklich diejenige ist, die sie vorgibt zu sein. IPsec führt die Authentifizierung nur indirekt durch, weil die Schlüssel, die IPsec für Vertraulichkeit und Integrität verwendet, aus Material abgeleitet werden, das beiden Parteien vor der VPN-Aushandlung bekannt ist. Wenn beide Parteien die gleichen Schlüssel erzeugen können, bedeutet das, dass sie beide das gleiche anfängliche Authentifizierungsmaterial hatten.
In alten VPNs wurde dieses IPsec-Schlüsselmateral manuell konfiguriert.
In modernen VPNs wird dieses Material automatisch durch ISAKMP erstellt.
ISAKMP, das Internet Security Association and Key Management Protocol, ist verantwortlich für die Erstellung dieses Schlüsselmateral. Das geschieht durch die Konfiguration eines isakmp pre-shared-key
.
Dieser pre-shared-key
wird von ISAKMP genutzt, um drei Schlüssel zu erstellen: einen Verschlüsselungsschlüssel, einen Authentifizierungsschlüssel und einen Derivat-Schlüssel.
Die Verschlüsselungs- und Authentifizierungsschlüssel werden von ISAKMP genutzt, um den Austausch im Main Mode zu sichern und die folgende IPsec-Verhandlung zu schützen.
Der Derivat-Schlüssel wird von ISAKMP eigentlich nicht direkt verwendet, sondern nur an IPsec übergeben, damit IPsec ihn nutzen kann, um eigene Verschlüsselungs- und Authentifizierungsschlüssel zu erstellen.
Dies ermöglicht IPsec, indirekt Authentifizierung zu bieten – die Schlüssel, die für Integrität und Vertraulichkeit verwendet werden, hängen davon ab, dass beide Parteien den gleichen ISAKMP pre-shared-key
haben. Wenn auf beiden Enden die gleichen Schlüssel abgeleitet werden, haben beide Parteien den gleichen pre-shared-key
, was die Authentifizierung bedeutet.
Das IPsec-Protokoll selbst beinhaltet keine Möglichkeit, die andere Partei direkt zu authentifizieren. Es verlässt sich auf eine externe Quelle, um das Authentifizierungsmaterial zu konfigurieren.
Der Unterschied zwischen der manuellen Konfiguration eines IPsec-Schlüssels (alt) und der automatischen Konfiguration eines ISAKMP-Schlüssels (modern) ist, dass bei der Methode mit dem ISAKMP pre-shared-key
der tatsächliche IPsec-Schlüssel standardmäßig alle 8 Stunden (bei Cisco-Geräten) automatisch rotiert wird. Wenn du einen IPsec-Schlüssel manuell konfigurierst, ist dieser der einzige Schlüssel für die Erzeugung der Verschlüsselungs- und HMAC-Schlüssel.
Ein weiterer Grund ist, dass du verschiedene Verschlüsselungs- und Hash-Levels haben kannst, um deine Leistung zu optimieren. Du kannst wirklich starke Verschlüsselung/Hashing wie AES256/SHA256 für P1 verwenden, aber eine niedrigere Verschlüsselung wie AES128/MD5 für P2. Dies erhöht die Leistung deines Tunnels erheblich, während die Sicherheit erhalten bleibt.
Es geht um die Architektur von PKI.
Natürlich kannst du Phase-1-Tunnel für die Datenübertragung verwenden, aber das erfordert viele Hardware-Ressourcen wegen asymmetrischer Verschlüsselungsalgorithmen. Deshalb wird P1 genutzt, um PSK für symmetrische Verschlüsselungsalgorithmen zu übertragen, während P2 mit weniger Einfluss auf deine Hardware arbeitet.
Der große Grund: Zu der Zeit, als IPsec entwickelt wurde, wurde gedacht, dass es Fälle geben könnte, in denen zwischen Endpunkten zwei oder mehr VPN-Tunnel bestehen, sodass die Arbeitsgruppe die Fähigkeit eingebaut hat, mehr als nur einen VPN-Tunnel zu haben, während eine einzelne IKE-Sitzung für die Schlüsselaushandlung erhalten bleibt.
Beispiel: IPsec kann Zugriffssteuerung anhand von Src- und/oder Dest-IP-Adressen durchführen. Wenn du also zwei große Standorte hast und willst, dass Subnetz A nur mit Subnetz B spricht, und Subnetz M nur mit Subnetz N, könntest du eine IKE-Sitzung und 2 VPN-Tunnel konfigurieren (je einen für jedes Subnetz-Paar). Das wären 1 IKE Phase-1-Sicherheitsassoziation und 2 IKE Phase-2-Sicherheitsassoziationen.
Du kannst auch jeden VPN-Tunnel mit eigener IKE-Sitzung haben.
Was alle anderen gesagt haben – plus Leistung. Phase 2 verwendet in der Regel einen Blockcipher, typischerweise AES. Blockcipher sind relativ schnell und können in Hardware oder Mikrocode optimiert werden.
Phase 1 verwendet öffentliche Schlüsselverschlüsselung, die rechenintensiver ist (absichtlich).
Weil Phase 1 kein Transportprotokoll ist, zumindest nicht wie TCP, das du verwenden würdest, um andere Daten zu übertragen.
“Während IKE Phase Zwei verwenden die IKE-Partner den sicheren Kanal, der in Phase 1 eingerichtet wurde, um Sicherheitsassoziationen im Namen anderer Dienste wie IPsec auszuhandeln.”
Ich liebe diese Jungs, aber hier gibt es viel Fehlinformation.
IPSec ist Paket-Encapsulation, IKE (Phase 1) dient nur der Aushandlung, welche verschlüsselten Dienste verwendet werden sollen. Der vollständige RFC ist im verlinkten Artikel.
Die zweite Phase weist zwei interessante Punkte auf:
- Sie verwendet die Verschlüsselung, die in Phase 1 bereitgestellt wird, wodurch es verschleiert ist.
- Sie authentifiziert und kapselt unabhängig von den Vorgängen in Phase 1, was eine Trennung der Exposition bietet. Das heißt, das Zerwürfnis von Phase 1 würde nicht die Schlüssel für Phase 2 preisgeben.
Die einfachste Antwort ist, Ressourcen zu sparen. Phase 1 wird nur verwendet, um Schlüssel sicher auszutauschen. Es ist keinenotwendig, eine hochgesicherte Verschlüsselungsmethode zu verwenden, da die Daten ohne die Schlüssel nicht wiedergegeben werden können.
Mein Ansatz, dies zu erklären:
Phase 1: das Wer bist du – das ist sozusagen die öffentliche Tür, auf die fast alle zugreifen können, aber nicht unbedingt hinein.
Innerhalb dieses Parameters, wenn du dich authentifizieren kannst, darfst du rein.
Phase 2: das Was wir nach der Authentifizierung vorhaben.
Die in dieser Phase festgelegten Parameter kontrollieren die eigentlichen Daten.
Beispiel – wenn du eine Website einer Bank aufrufst, während diese Seite auf deinem Bildschirm geladen/angezeigt wird, entspricht das Phase 1. Hier darf fast jeder hinkommen, aber nicht unbedingt darüber hinaus. Nachdem du deine Anmeldedaten eingegeben hast, kannst du deine Bankdaten ansehen. Das ist Phase 2, wo die eigentlichen Daten sind.
Ich erkenne, dass dieses Beispiel nicht IPSec ist, aber die Analogie lässt sich herleiten. Wenn ich eine site-to-site-Tunnel zwischen der Firewall in meinem Haus und <hier ein Unternehmen einfügen> einrichten wollte, gäbe es fast nichts, was das verhindern könnte. Das bedeutet aber nicht, dass ich das erfolgreich tun werde.
Kryptographie 101:
- Public-Key-Kryptografie ist sehr sicher, aber auch sehr langsam.
- Symmetrische Kryptografie ist weniger sicher, aber viel schneller.
Die Faustregel ist also, öffentlichen Schlüssel für die Verbindungsherstellung und den Austausch von Schlüsseln zu verwenden, symmetrisch für die Datenübertragung. Du kannst an “Phase 1” denken wie an einen SSL/TLS-Handshake. Dann kannst du an “Phase 2” denken wie an das Herunterladen einer großen Datei über SSL/TLS.
Du kannst das ziemlich schnell googeln.
In IKE Phase 1 authentifizieren sich die beiden Endpunkte gegenseitig und verhandeln die Schlüsselmaterialien. Das ergibt einen verschlüsselten Tunnel, der von Phase 2 für die Verhandlung der ESP-Sicherheitsassoziationen benutzt wird.
In IKE Phase 2 verwenden die beiden Endpunkte den in Phase 1 erstellten sicheren Tunnel, um ESP-SAs zu verhandeln. Die ESP-SAs sind es, die benutzt werden, um die eigentlichen Nutzdaten zwischen den Endpunkten zu verschlüsseln.
Die Details in Phase 1 werden mehr oder weniger im Klartext übertragen. Wenn du Daten über einen Phase-1-Tunnel schickst, hast du die meisten Details, die du brauchst, um den Datenverkehr zu entschlüsseln.
Das ist nicht ganz richtig.
Der Kernschutz in Phase 1 ist das Diffie-Hellman Protokoll. Das ist das gleiche “Kern” des Schutzes wie bei SSH und modernen SSL/TLS-Ciphers.
Zu sagen, dass Daten, die durch den Phase-1-Tunnel gesendet werden, nicht sicher sind oder nur verschleiert, ist etwas irreführend. Es sei denn, man würde dasselbe auch für SSH/SSL sagen.
Man könnte argumentieren, dass im Aggressive Mode der pre-shared-Key-Hash im Klartext geteilt wird (zusammen mit einigen anderen Werten), was einem offline-Brute-Force-Angriff ausgesetzt ist… aber wenn du im Aggressive Mode bist, solltest du auch Perfect Forward Secrecy (PFS) verwenden, sodass die Keys in Phase 2 aus einer eigenen, unabhängigen Diffie-Hellman-Verhandlung stammen.
Antworten wie diese sind einer der Gründe, warum ich hier lese. Danke.
Ja! Einfach und dennoch detailliert. Danke!
Danke, ich habe mich das auch immer gefragt. Deine Antwort kommt der Erklärungen am nächsten, die ich gesehen habe. Danke.
Eine weitere großartige Antwort. Danke.
OP fragt, warum, nicht was passiert.
Guter Punkt, obwohl in Bezug auf den letzten Punkt das voraussetzen würde, dass “sollte” bedeutet, dass es jeder macht.
Auch ich denke, dass der Punkt darin besteht, dass wenn du Aggressive Mode benutzt, aber keine Phase-2-Verhandlung existiert (was das OP gerade zu verstehen versucht), hast du tatsächlich viele der notwendigen Informationen, um die Daten zu entschlüsseln.
Ich denke, was ich sagen möchte, ist, dass ohne einen PKI-basierten Austausch zwei Endpunkte etwas miteinander übertragen müssen, um den erwartetenOutput zu erzeugen. Das kann nicht sofort verschlüsselt werden, weil sie keine gemeinsamen Werte haben, um die Verschlüsselung zu entwickeln. Das bedeutet, dass wenn jemand mögliche Verschlüsselungs- und Hash-Algorithmen sowie DH-Gruppen kennt (was Standard ist), und etwas über den Austausch selber weiß (die geteilten Werte), er theoretisch einen verschlüsselten Output erreichen könnte, der mit den gefundenen Daten übereinstimmt. Je mehr Daten sie zum Abgleichen haben, desto besser können sie ihre Ergebnisse überprüfen.
Wenn nur ein paar Pakete, die überprüft werden können, vorhanden sind, wird es viel schwieriger, die Ergebnisse zu verifizieren.
Edit: Entschuldigung, falls ich ganz falsch liege, und korrigiert mich gern.