Netzsicherheit Tutorial #23 - Schlüsselgenerierung bei TLS

The Morpheus Tutorials
21 Jan 201903:41

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

00:00

🔑 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

TLS steht für Transport Layer Security und ist ein kryptografisches Protokoll, das Kommunikation zwischen einem Server und einem Client sicher macht. Im Video wird gezeigt, wie Schlüssel in TLS generiert werden, was für die Verschlüsselung von Daten und die Sicherung der Kommunikation entscheidend ist.

💡Keys

Schlüssel sind in der Kryptografie kryptografische Werte, die zur Verschlüsselung und Entschlüsselung von Daten verwendet werden. Im Kontext des Videos sind sie für die sichere Übertragung von Daten im Rahmen von TLS von zentraler Bedeutung.

💡Server's nonce

Ein Nonce (Number used once) ist ein Wert, der nur einmal verwendet wird, um die Sicherheit von TLS zu gewährleisten. Im Video wird erläutert, dass der Server ein Nonce in Klartext sendet, das zur Schlüsselerzeugung beitragen wird.

💡HMAC

HMAC steht für Hash-based Message Authentication Code und ist ein Verfahren zur Authentifizierung von Nachrichten. Im Video wird betont, dass der Server- und der Client-Nonce über einen HMAC authentifiziert werden, um sicherzustellen, dass sie nicht manipuliert wurden.

💡Pre-master secret

Der Pre-Master-Secret ist ein Geheimnis, das von beiden Kommunikationspartnern (Client und Server) gemeinsam bekannt ist und zur Generierung des Master-Secrets verwendet wird. Im Video wird darauf hingewiesen, dass dieser bereits ausgetauscht wurde und für die Schlüsselerzeugung relevant ist.

💡Pseudo-random function

Eine Pseudo-Zufallsfunktion ist ein mathematisches Konzept, das eine deterministische Methode zur Erzeugung von Werten darstellt, die wie zufällig sind. Im Video wird diese Funktion verwendet, um aus den bekannten Werten (wie dem Pre-Master-Secret) Schlüssel zu generieren.

💡Master secret

Das Master-Secret ist ein kryptografisches Geheimnis, das aus dem Pre-Master-Secret und anderen Parametern generiert wird und als Grundlage für die Erzeugung aller weiteren Schlüssel in einem TLS-Handshake dient. Im Video wird gezeigt, wie es mithilfe von Nonces und Pseudo-Zufallsfunktionen erzeugt wird.

💡Initialization vector

Ein Initialisierungsvektor (IV) ist ein Wert, der in der Verschlüsselung verwendet wird, um sicherzustellen, dass die Verschlüsselung nicht deterministisch ist. Im Video wird erwähnt, dass sowohl der Client als auch der Server einen eigenen IV erhalten.

💡Client and server

Client und Server sind die beiden Hauptakteure im TLS-Handshake. Der Client ist die Entität, die sich mit dem Server verbindet, während der Server die Entität ist, die die Anfrage erhält und mit dem Client kommuniziert. Im Video wird darauf eingegangen, wie Schlüssel für beide Entitäten generiert werden.

💡Handshake

Der Handshake ist ein Prozess, bei dem zwei Kommunikationspartner sich sicher identifizieren und die Bedingungen für eine sichere Kommunikation abschließen. Im Video wird darauf hingewiesen, dass das Verständnis des Handshakes wichtig ist, um zu verstehen, wie die Schlüssel generiert werden.

💡Security

Sicherheit ist ein zentrales Thema des Videos, da es sich mit der Generierung von Schlüsseln in TLS befasst, die zur Sicherung der Datenübertragung zwischen Client und Server beitragen. Die Verfahren, die im Video beschrieben werden, sind darauf ausgelegt, Manipulationen zu verhindern und die Integrität der Kommunikation zu gewährleisten.

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

play00:00

Hello and welcome back to TLS

play00:03

Today I want to show you how to generate the keys

play00:08

It's not as trivial as you might think

play00:12

I won't show you math here

play00:14

but only the methods you need to chain

play00:18

to actually generate the keys

play00:23

We need more than one key

play00:25

In total we will get 6 keys

play00:29

and we will get all of them via the server's nonce

play00:33

which will be transferred in plain text

play00:35

the nonce which the client sends

play00:37

but these two are authenticated via an HMAC

play00:39

so that it is proven that they were not changed

play00:42

and via the pre-master secret that has already been exchanged

play00:46

If you don't know how these three things are exchanged

play00:50

then please watch the video about the handshake

play00:53

which is also in the IT security sheet

play00:55

but also in this one

play00:57

which is very important

play00:59

but these three things are on both server and client

play01:02

and from these you can calculate the keys

play01:09

and I want to show you how it works

play01:11

First of all, the whole thing is put into a pseudo-random function

play01:18

which means that the output of this pseudo-random function

play01:21

looks random and is somehow calculated

play01:27

so please imagine a hash function

play01:32

which means that the input of the pseudo-random function

play01:35

without a key or something

play01:37

is somehow distorted

play01:42

and in the end something is generated

play01:44

which cannot be traced back to these three things

play01:47

and then the master secret is used

play01:53

and please make sure that you use nonce from the client and server

play01:59

so that you don't give the evil clients full control over the master secret

play02:07

because you can't be sure that the client is not evil

play02:12

and then the master secret is put into a pseudo-random function

play02:18

with the two nonces

play02:20

and you do that so that the whole thing has a fixed length

play02:24

and the master secret is not responsible for the key

play02:31

so it's a bit crazy that you can put it in there again

play02:37

but it actually works

play02:39

and you can't really predict it with the nonces

play02:42

so you can't predict what will come out of it

play02:45

thanks to the two nonces

play02:47

and from that the key is created

play02:51

which is first cut into six sub-keys

play02:55

so this is the complete key

play02:57

and it is cut into the key that the client uses for the HMAC

play03:02

so any MAC, it doesn't have to be HMAC, but you normally use it

play03:06

then the HMAC key for the server, that's the second block

play03:10

the key for the client and the key for the server

play03:15

and the initialization vector for client and server

play03:18

that's the complete key

play03:21

and that's the magic, not complicated

play03:24

and that's all I wanted to show you today

play03:29

it was really fast

play03:31

it wasn't complicated, but that's how the key is created in TLS

play03:35

I hope you liked it

play03:37

and we'll see each other next time

play03:39

Bye!

Rate This

5.0 / 5 (0 votes)

Related Tags
TLS-SchlüsselSchlüsselerzeugungIT-SicherheitHandshake-VerfahrenPseudo-ZufallsfunktionHMAC-AuthentifizierungMaster-SecretNonce-SicherheitKryptografieSicherheitsprotokollOnline-Sicherheit
Do you need a summary in English?