Das TLS-Protokoll (früher bekannt als „SSL“) verwendet sowohl asymmetrische/Public-Key- als auch symmetrische Kryptographie, und für jede Kommunikationssitzung müssen neue Schlüssel für die symmetrische Verschlüsselung erzeugt werden. Solche Schlüssel werden als „Sitzungsschlüssel“ bezeichnet.
Nach Lektüre dieses Artikels können Sie Folgendes:
Ähnliche Inhalte
Abonnieren Sie theNET, Cloudflares monatliche Zusammenfassung der beliebtesten Einblicke in das Internet!
Link zum Artikel kopieren
Ein Sitzungsschlüssel ist ein symmetrischer kryptografischer Schlüssel, der zur Verschlüsselung von nur einer Kommunikationssitzung verwendet wird. Mit anderen Worten, es handelt sich um einen temporären Schlüssel, der nur einmal, während einer bestimmten Zeitspanne, für die Ver- und Entschlüsselung von Daten zwischen zwei Parteien verwendet wird; zukünftige Gespräche zwischen den beiden Parteien würden mit anderen Sitzungsschlüsseln verschlüsselt. Ein Sitzungsschlüssel ist wie ein Passwort, das bei jeder Anmeldung zurückgesetzt wird.
Bei TLS (früher bekannt als „SSL“) erzeugen die beiden kommunizierenden Parteien (Client und Server) zu Beginn jeder Kommunikationssitzung während des TLS-Handshakes Sitzungsschlüssel.Der offizielle RFC für TLS nennt diese Schlüssel nicht „Sitzungsschlüssel“, aber funktionell sind sie genau das.
Eine Sitzung ist im Wesentlichen ein einziges Gespräch zwischen zwei Parteien. Eine Sitzung findet über ein Netzwerk statt und beginnt, wenn sich zwei Geräte gegenseitig bestätigen und eine virtuelle Verbindung herstellen. Sie endet, wenn die beiden Geräte die benötigten Informationen voneinander erhalten haben und „close_notify“-Nachrichten senden, wodurch die Verbindung beendet wird. Eine Analogie wäre, wenn sich zwei Personen gegenseitig Textnachrichten schicken und die Konversation mit den Worten „Bis später“ beenden. Die Verbindung kann auch aufgrund von Inaktivität beendet werden; das ist so, wie wenn sich zwei Personen Textnachrichten schicken und dann einfach nicht mehr antworten.
Eine Sitzung kann entweder eine festgelegte Zeitspanne lang dauern oder so lange, wie die beiden Parteien miteinander kommunizieren. Ist Ersteres der Fall, läuft die Sitzung nach einer gewissen Zeit ab; um die Verbindung wieder zu öffnen, müssten die beiden Geräte für die TLS-Verschlüsselung dann Informationen austauschen und neue Sitzungsschlüssel generieren.
In der Kryptographie ist es üblich, von Schlüsseln (in der Regel ein kurzes Datenstück) zu sprechen, um auf spezielle Eingaben eines kryptographischen Algorithmus hinzuweisen. Die gebräuchlichsten Schlüssel werden für die Verschlüsselung von Daten verwendet; es gibt jedoch auch andere Arten von Schlüsseln für verschiedene Zwecke.
Ein Datenverschlüsselungsalgorithmus verwendet einen (geheimen) Schlüssel, um eine Nachricht in einen Chiffretext umzuwandeln – also in eine verschlüsselte, unlesbare Version der Nachricht. Mit Hilfe eines Entschlüsselungsschlüssels kann man die ursprüngliche Nachricht aus dem Chiffretext wiederherstellen.
Bei einem symmetrischen Verschlüsselungsalgorithmus sind sowohl der Verschlüsselungs- als auch der Entschlüsselungsschlüssel identisch. Somit kann jeder, der den geheimen Schlüssel besitzt, Daten verschlüsseln und entschlüsseln. Deshalb wird oft der Begriff symmetrische Schlüssel verwendet.
Im Gegensatz dazu gibt es bei einem asymmetrischen Verschlüsselungsalgorithmus, der auch als Public-Key-Verschlüsselung bekannt ist, zwei Schlüssel: Einer ist öffentlich und kann nur zum Verschlüsseln von Daten verwendet werden, während der andere privat bleibt und nur zum Entschlüsseln von Chiffretexten verwendet wird.
HTTPS (also HTTP in Kombination mit dem TLS-Protokoll) verwendet beide Arten der Verschlüsselung.Jede Kommunikation über TLS beginnt mit einem TLS-Handshake.Die asymmetrische Kryptographie ist für das Funktionieren des TLS-Handshakes von entscheidender Bedeutung.
Im Verlauf eines TLS-Handshakes legen die beiden kommunizierenden Geräte die Sitzungsschlüssel fest, die für den Rest der Sitzung zur symmetrischen Verschlüsselung verwendet werden (es sei denn, die Geräte entscheiden sich, ihre Schlüssel während der Sitzung zu aktualisieren). In der Regel handelt es sich bei den beiden kommunizierenden Geräten um einen Client, d. h. ein Benutzergerät wie ein Laptop oder ein Smartphone, und einen Server, d. h. einen Webserver, der eine Website hostet. (Weitere Informationen finden Sie unter Was ist das Client-Server-Modell?)
Beim TLS-Handshake sind auch der Client und der Server beteiligt:
Das Master-Secret ist das Ergebnis der Kombination einer vom Client gesendeten Zeichenkette aus Zufallsdaten, vom Server gesendeten Zufallsdaten und einer weiteren Zeichenkette, die als „Premaster-Secret“ bezeichnet wird, und zwar mittels eines Algorithmus. Der Client und der Server verfügen jeweils über diese drei Nachrichten, sodass sie beim Master-Secret zum gleichen Ergebnis kommen sollten.
Der Client und der Server verwenden dann das Master-Secret, um mehrere Sitzungsschlüssel zu berechnen, die nur in dieser Sitzung verwendet werden. Sie sollten am Ende die gleichen Sitzungsschlüssel erhalten.
Erfahren Sie mehr darüber, wie TLS funktioniert: Was passiert bei einem TLS-Handshake?