Netzsicherheit Tutorial #23 - Schlüsselgenerierung bei TLS
Summary
TLDRWillkommen zurück zu TLS! In diesem Video erfahren Sie, wie Schlüssel generiert werden, ein Prozess, der anscheinend trivial ist, aber nicht ohne seine Komplexitäten. Es werden sechs Schlüssel erzeugt, alle basierend auf einem vom Server gesendeten Nonce, der im Klartext übertragen wird. Dieser Nonce wird zusammen mit einem vom Client gesendeten Nonce über einen HMAC authentifiziert, um sicherzustellen, dass er nicht manipuliert wurde. Zusätzlich wird ein bereits ausgetauschter pre-master secret genutzt. Um zu verstehen, wie diese drei Elemente ausgetauscht werden, empfiehlt es sich, das Video über den Handshaking-Prozess anzusehen. Beide Nonces und das pre-master secret sind auf Server- und Client-Seite vorhanden und bilden die Grundlage für die Schlüsselberechnungen, die im Video näher erläutert werden. Der Prozess umfasst die Verwendung eines pseudo-zufälligen Funktions, die den Master-Secret und die beiden Nonces einbindet, um eine feste Länge zu erreichen und dadurch die Schlüssel zu erzeugen. Die resultierenden Schlüssel werden dann in sechs Unter-Schlüssel aufgeteilt, einschließlich HMAC-Schlüssel für Client und Server, Schlüssel für die Verschlüsselung und Initialisierungsvektoren für beide Seiten. Dieses Verfahren ist zwar nicht trivial, aber durch das Video wird es verständlich und faszinierend präsentiert.
Takeaways
- 🔑 **Schlüsselgenerierung in TLS ist komplexer als man denkt**: Es werden mehr als nur ein Schlüssel benötigt, insgesamt sechs Schlüssel werden generiert.
- 🔗 **Server-Nonce und Client-Nonce**: Diese werden im Klartext übertragen und sind durch HMAC authentifiziert, um sicherzustellen, dass sie nicht verändert wurden.
- 🤝 **Pre-Master-Secret**: Ein bereits ausgetauschtes Geheimnis, das zusammen mit den Nonces zur Schlüsselerzeugung verwendet wird.
- 📚 **Handshake-Verfahren**: Wichtiger Prozess, der vor der Schlüsselerzeugung stattfindet und in einem separaten Video erklärt wird.
- 🛑 **Pseudo-Zufallsfunktion (PRF)**: Schlüssel werden mithilfe einer PRF erzeugt, die einsehbar zufälliges Output liefert.
- 🔀 **Hash-Funktion**: Die PRF ähnelt einer Hash-Funktion, die die Eingabe ohne einen Schlüssel verformt.
- 🔐 **Master-Secret**: Aus den genannten drei Elementen (Pre-Master-Secret, Server-Nonce, Client-Nonce) wird der Master-Secret berechnet.
- ⚖️ **Gleichgewicht von Kontrolle**: Der Master-Secret wird zusammen mit den Nonces aus Client und Server in die PRF eingegeben, um sicherzustellen, dass böswillige Clients keine vollständige Kontrolle darüber erhalten.
- 🔩 **Feste Länge**: Durch die Verwendung des Master-Secrets zusammen mit den Nonces wird eine feste Länge gewährleistet, was für die Schlüsselerzeugung wichtig ist.
- 🗝️ **Unvorhersehbarkeit**: Die Kombination aus Master-Secret und Nonces ist unvorhersehbar, was die Sicherheit erhöht.
- 📦 **Zweck der Schlüssel**: Die generierten Schlüssel werden für HMACs, Datenverschlüsselung und Initialisierungsvektoren verwendet.
Q & A
Wie viele Schlüssel werden im Prozess zur Schlüsselerzeugung im TLS-Protokoll generiert?
-Im Prozess zur Schlüsselerzeugung im TLS-Protokoll werden insgesamt sechs Schlüsse generiert.
Was ist der Zweck des Servers' Nonce im Schlüsselerzeugungsprozess?
-Der Server's Nonce wird zusammen mit dem Nonce des Clients und dem Pre-Master Secret verwendet, um die Schlüsse zu generieren. Es wird im Klartext übertragen und durch einen HMAC authentifiziert, um sicherzustellen, dass es nicht verändert wurde.
Was ist der Unterschied zwischen einem HMAC und einem normalen MAC?
-HMAC (Hash-based Message Authentication Code) ist ein spezieller Typ von MAC (Message Authentication Code), der eine Nachricht mit einem Geheimschlüssel verschlüsselt, um Authentizität und Integrität zu gewährleisten. Ein normaler MAC kann auch ohne HMAC verwendet werden, aber HMAC ist häufiger und sicherer.
Was ist der Zweck des Pre-Master Secrets im TLS-Handshake?
-Das Pre-Master Secret ist ein Geheimnis, das während des Handshakes zwischen Server und Client ausgetauscht wird und als Grundlage für die Schlüsselerzeugung dient.
Was ist ein Pseudo-Zufallsfunktion?
-Eine Pseudo-Zufallsfunktion ist eine Funktion, deren Ausgabe zufällig aussieht, aber tatsächlich auf einer deterministischen Methode basiert. Sie ähnelt einer Hashfunktion, die die Eingabe ohne einen Schlüssel verändert und am Ende ein Ergebnis erzeugt, das nicht auf die ursprünglichen Eingaben zurückgeführt werden kann.
Wie wird der Master Secret im Schlüsselerzeugungsprozess verwendet?
-Der Master Secret wird in einer Pseudo-Zufallsfunktion zusammen mit den beiden Nonces verwendet, um die Schlüsse zu generieren. Er ist für die Erzeugung der Schlüsse verantwortlich und sorgt für eine feste Länge des Prozesses.
Was sind die sechs Schlüsse, die aus dem Master Secret erstellt werden?
-Die sechs Schlüsse sind: der HMAC-Schlüssel für den Client, der HMAC-Schlüssel für den Server, der Schlüssel für den Client, der Schlüssel für den Server, sowie die Initialisierungsvektoren für den Client und den Server.
Warum ist es wichtig, den Nonce des Clients und Servers zu verwenden, um den Master Secret zu schützen?
-Der Einsatz der Nonces verhindert, dass böswillige Clients vollen Kontrolle über den Master Secret erhalten. Da man nie sicher sein kann, dass der Client nicht böswillig ist, schützen die Nonces vor Manipulationen.
Was ist der IT-Sicherheitskanal, in dem das Video über den Handshake und die Schlüsselerzeugung zu finden ist?
-Das Video über den Handshake und die Schlüsselerzeugung befindet sich auf der IT-Sicherheitsseite, auf der das aktuelle Video auch gehostet wird.
Wie wird sichergestellt, dass die Schlüsse, die aus dem Master Secret erstellt werden, vor Manipulationen durch Dritte geschützt sind?
-Die Schlüsse werden durch die Verwendung von HMACs, die den Nonce des Clients und Servers authentifizieren, sowie durch die Verwendung des Pre-Master Secrets geschützt, was sicherstellt, dass sie nicht manipuliert werden können.
Was ist der Hauptvorteil der Verwendung von Pseudo-Zufallsfunktionen in der Schlüsselerzeugung?
-Der Hauptvorteil ist, dass die Ausgabe der Pseudo-Zufallsfunktion zufällig aussieht und nicht auf die ursprünglichen Eingaben zurückgeführt werden kann, was die Sicherheit der generierten Schlüsse erhöht.
Wie kann man sicherstellen, dass die Schlüsse, die im TLS-Handshake generiert werden, sicher sind?
-Man kann dies sicherstellen, indem man sicherstellt, dass alle beteiligten Elemente (Nonce des Clients, Nonce des Servers und Pre-Master Secret) authentifiziert sind und nicht manipuliert werden können, und indem man sicherstellt, dass die Schlüsse durch Pseudo-Zufallsfunktionen erzeugt werden, die vor Manipulationen durch Dritte geschützt sind.
Outlines
🔑 TLS Schlüsselgenerierung - Der Prozess
Dieser Absatz erklärt, wie in TLS (Transport Layer Security) Schlüssel generiert werden. Es geht um mehr als nur eine einfache mathematische Operation. Der Prozess erfordert die Verwendung von sechs Schlüsseln, die alle durch einen Server-Nonce, der im Klartext übertragen wird, abgerufen werden. Der Client sendet ebenfalls einen Nonce, der zusammen mit dem Server-Nonce über einen HMAC authentifiziert wird, um sicherzustellen, dass sie nicht manipuliert wurden. Zusätzlich wird ein bereits ausgetauschter pre-master secret genutzt. Die Erstellung der Schlüssel beinhaltet die Verwendung eines pseudo-zufälligen Funktions, die mit den genannten drei Elementen arbeitet und einen Output liefert, der nicht auf diese Elemente zurückgeführt werden kann. Der Master-Secret wird dann zusammen mit den beiden Nonces in die Funktion eingegeben, um einen festen Längenwert zu erhalten und einen Schlüssel zu erzeugen, der in sechs Unter-Schlüssel aufgeteilt wird: den HMAC-Schlüssel für den Client, den HMAC-Schlüssel für den Server, den Schlüssel für den Client, den Schlüssel für den Server, und die Initialisierungsvektoren für Client und Server.
Mindmap
Keywords
💡TLS
💡Keys
💡Server's nonce
💡HMAC
💡Pre-master secret
💡Pseudo-random function
💡Master secret
💡Initialization vector
💡Client and server
💡Handshake
💡Security
Highlights
The process of generating keys in TLS involves more than just simple math
A total of 6 keys are generated through this process
The server's nonce is transferred in plain text and plays a key role in key generation
The client's nonce is also important and is authenticated via HMAC to ensure it wasn't tampered with
The pre-master secret that was previously exchanged between client and server is another key component
A video about the handshake process provides important context for understanding key generation
The three key components (server nonce, client nonce, pre-master secret) are present on both client and server
A pseudo-random function is used to generate the keys, making the output appear random
The input to the pseudo-random function is distorted to make it untraceable to the original components
The master secret is derived from the pseudo-random function output
Using the client and server nonces with the master secret helps prevent evil clients from gaining control
The master secret, along with the two nonces, is put through another pseudo-random function
The resulting output has a fixed length and is unpredictable due to the use of nonces
The final key is created from the pseudo-random function output and is then divided into six sub-keys
The sub-keys include the HMAC key for client, HMAC key for server, encryption key for client, encryption key for server, and initialization vectors
This process is not overly complicated and is a key part of how TLS secures communications
Understanding this key generation process is crucial for anyone working with IT security
Transcripts
Hello and welcome back to TLS
Today I want to show you how to generate the keys
It's not as trivial as you might think
I won't show you math here
but only the methods you need to chain
to actually generate the keys
We need more than one key
In total we will get 6 keys
and we will get all of them via the server's nonce
which will be transferred in plain text
the nonce which the client sends
but these two are authenticated via an HMAC
so that it is proven that they were not changed
and via the pre-master secret that has already been exchanged
If you don't know how these three things are exchanged
then please watch the video about the handshake
which is also in the IT security sheet
but also in this one
which is very important
but these three things are on both server and client
and from these you can calculate the keys
and I want to show you how it works
First of all, the whole thing is put into a pseudo-random function
which means that the output of this pseudo-random function
looks random and is somehow calculated
so please imagine a hash function
which means that the input of the pseudo-random function
without a key or something
is somehow distorted
and in the end something is generated
which cannot be traced back to these three things
and then the master secret is used
and please make sure that you use nonce from the client and server
so that you don't give the evil clients full control over the master secret
because you can't be sure that the client is not evil
and then the master secret is put into a pseudo-random function
with the two nonces
and you do that so that the whole thing has a fixed length
and the master secret is not responsible for the key
so it's a bit crazy that you can put it in there again
but it actually works
and you can't really predict it with the nonces
so you can't predict what will come out of it
thanks to the two nonces
and from that the key is created
which is first cut into six sub-keys
so this is the complete key
and it is cut into the key that the client uses for the HMAC
so any MAC, it doesn't have to be HMAC, but you normally use it
then the HMAC key for the server, that's the second block
the key for the client and the key for the server
and the initialization vector for client and server
that's the complete key
and that's the magic, not complicated
and that's all I wanted to show you today
it was really fast
it wasn't complicated, but that's how the key is created in TLS
I hope you liked it
and we'll see each other next time
Bye!
Посмотреть больше похожих видео
Netzsicherheit Tutorial #10 - Das Ticket Granting Ticket
Netzsicherheit Tutorial #8 - Authentifikation bei mehreren Ressourcen
BEST SETTINGS, TIPS and TRICKS on NBA 2K25 (NEW SHOT TIMING PROFILE)
Normalisierung in Datenbanken (1. bis 3. Normalform)
How To Get First 1000 Subscribers on YouTube 2024 (REAL RESULTS)
How to Generate Offline (G0) Transactions Using SMS
5.0 / 5 (0 votes)