Was ist ein Session Key?
Ein Session Key (deutsch „Sitzungsschlüssel) ist ein einmalig gültiger und zufällig generierter kryptografischer Schlüssel für eine einzelne Verbindung (Session) zwischen dem Sender und Empfänger einer Nachricht. Diese kommen besonders bei der hybriden Verschlüsselung zum Einsatz. Nach der Erzeugung wird der Session Key über ein asymmetrisches Verschlüsselungsverfahren sicher übertragen. Die Übertragung des eigentlichen Inhalts erfolgt symmetrisch verschlüsselt mithilfe des Sitzungsschlüssels. Da der Sitzungsschlüssel zum Ver- und Entschlüsseln der Nachricht verwendet wird, wird dieser auch als symmetrischer Schlüssel bezeichnet. Der Vorteil: Wird ein Session Key von einem Dritten ausgespäht, lässt sich dieser nicht zur Entschlüsselung vergangener oder zukünftiger Daten verwenden. Session Keys vereinen so die Vorteile der symmetrischen und asymmetrischen Verschlüsselung. Der Empfänger der Nachricht nutzt zur Entschlüsselung seinen geheimen Schlüssel und macht die enthaltenen Informationen so lesbar.
Wie wird ein Session Key generiert?
Die Generierung eines Session Keys kann unter Verwendung eines Hash-Wertes und der CryptDeriveKey-Funktion erfolgen. Häufig wird dieser zwischen einem Client und Server ausgehandelt. Der Schlüssel wird mit jeder verschickten Nachricht übertragen und mit dem öffentlichen Schlüssel des Empfängers verschlüsselt. Zur Erhöhung der Sicherheit kann für jede Nachricht ein anderer Session Key generiert werden. In der Regel gilt ein Session Key für die Dauer einer Sitzung.
Wie sicher sind mit Session Keys aufgebaute Verbindungen?
Wie sicher das Verfahren mit Session Keys ist, hängt davon ob, ob ein eingesetzter Session Key tatsächlich zufällig generiert wurde. Teilweise nutzen Softwarelösungen nur pseudozufällige Schlüssel, die eine Analyse ermöglichen und die Möglichkeit für einen Entschlüsselungsangriff bieten. Um die Zufälligkeit sicherzustellen, sollte solch ein Session Key daher zum Beispiel mithilfe zufälliger Mausbewegungen des Anwenders generiert werden. Das Programm fordert den Anwender dazu auf, seine Maus für 30 Sekunden oder länger zufällig hin und her zu bewegen, die Koordinaten der Bewegungen werden dann für die Generierung des Einmalschlüssels genutzt. Kommt der Session Key auf diese Weise zustande, gilt das Verfahren als sicher.