Grundlagen · Netzwerksicherheit
Vier Bausteine, auf denen fast jede sichere Verbindung aufbaut — vom gemeinsamen Geheimnis bis zum Schlüsselaustausch, ohne den Schlüssel je zu übertragen.
Sender und Empfänger benutzen denselben Schlüssel — zum Verschlüsseln und zum Entschlüsseln. Schnell und effizient, solange beide Seiten den Schlüssel schon sicher kennen.
Das Problem: Der Schlüssel muss vorher irgendwie sicher ausgetauscht werden. Genau dafür braucht man gleich Diffie-Hellman.
Verschlüsseln und Entschlüsseln benutzen exakt dieselbe Operation mit demselben Schlüssel — deshalb „symmetrisch".
Statt einem gemeinsamen Schlüssel gibt es ein Schlüsselpaar: einen Public Key, den jeder kennen darf, und einen Private Key, der geheim bleibt. Was mit dem einen verschlossen wird, öffnet nur der andere.
Dadurch muss vorher kein Geheimnis ausgetauscht werden — jeder kann einfach den öffentlichen Schlüssel des Gegenübers benutzen.
Public Key und Private Key sind zwei verschiedene Werte, die zusammenpassen. Verschlüsseln und Entschlüsseln sind hier zwei unterschiedliche Operationen — deshalb „asymmetrisch".
Eine Hash-Funktion macht aus beliebigen Daten einen kurzen, festen Wert. Gleiche Eingabe → immer gleicher Hash. Schon ein einziges verändertes Zeichen ergibt einen komplett anderen Hash. Und: Aus dem Hash lässt sich die Eingabe nicht zurückrechnen — Einwegfunktion.
Damit prüft man Integrität: Wurden Daten unterwegs verändert?
Ändere ein einziges Zeichen und beobachte, wie sich der komplette Hash ändert.
Farbmisch-Analogie: Client und Server einigen sich öffentlich auf eine Startfarbe. Jede Seite mischt eine eigene Geheimfarbe dazu und schickt nur das Mischergebnis. Aus dem Mischergebnis der Gegenseite plus der eigenen Geheimfarbe entsteht auf beiden Seiten dieselbe Endfarbe — ein Lauscher sieht nur die Mischungen, nie die Geheimfarben.
Genau so einigen sich Client und Server beim SSH-Verbindungsaufbau auf den Session Key.
Diffie-Hellman erzeugt den gemeinsamen Session Key, Hash bildet daraus die Session-ID, der Host Key (asymmetrisch) beweist die Serveridentität, und der Session Key selbst verschlüsselt die Verbindung anschließend symmetrisch.