> For the complete documentation index, see [llms.txt](https://n4shx.gitbook.io/wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://n4shx.gitbook.io/wiki/schule/allgemeines/tls-and-kryptografie.md).

# TLS & Kryptografie

TLS (Transport Layer Security) schützt die Kommunikation zwischen zwei Systemen, zum Beispiel zwischen Browser und Webserver.

Ziele von TLS:

* Vertraulichkeit: Daten sollen nicht mitgelesen werden
* Integrität: Daten sollen nicht unbemerkt verändert werden
* Authentizität: der Client kann prüfen, ob er mit dem richtigen Server spricht

Typische Einsätze:

* HTTPS
* SMTPS / IMAPS / POP3S
* APIs
* abgesicherte Remote-Verbindungen

***

### Wie funktioniert TLS grob?

Bevor Daten übertragen werden, wird zuerst eine sichere Verbindung aufgebaut.

Vereinfacht läuft das so ab:

1. Client verbindet sich zum Server
2. TLS-Version und kryptographische Verfahren werden ausgehandelt
3. der Server zeigt sein Zertifikat
4. der Client prüft das Zertifikat
5. ein gemeinsamer Sitzungsschlüssel wird aufgebaut
6. danach läuft die Kommunikation verschlüsselt

***

### Zertifikate

Ein Zertifikat bestätigt die Identität eines Servers.

Es enthält typischerweise:

* Domainname
* öffentlichen Schlüssel
* Aussteller (CA)
* Gültigkeitsdauer

Wichtige Probleme:

* Zertifikat abgelaufen
* Zertifikat passt nicht zur Domain
* Zertifikat ist nicht vertrauenswürdig signiert

***

### Ciphers und Cipher Suites

TLS ist das gesamte Schutzprotokoll.\
Ein Cipher ist ein kryptographischer Baustein darin.

Beispiele für moderne Verfahren:

* AES-GCM
* ChaCha20-Poly1305

Früher waren vor allem sogenannte Cipher Suites wichtig. Diese beschreiben, welche Verfahren zusammen verwendet werden, z. B. für:

* Schlüsselaustausch
* Authentisierung
* Verschlüsselung
* Integrität

Beispiel:

```
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
```

Grob bedeutet das:

* ECDHE für sicheren Schlüsselaustausch
* RSA für Authentisierung / Zertifikatsbezug
* AES-256-GCM für Verschlüsselung
* SHA384 als Teil der Suite-Bezeichnung

Bei TLS 1.3 wurde das deutlich vereinfacht.

***

### Wichtige kryptographische Begriffe

#### Symmetrische Verschlüsselung

Gleicher Schlüssel zum Ver- und Entschlüsseln.\
Schnell, deshalb für die eigentliche Datenübertragung verwendet.

Beispiele:

* AES
* ChaCha20

#### Asymmetrische Kryptographie

Arbeitet mit Public Key und Private Key.\
Wird für Authentisierung und Teile des Verbindungsaufbaus verwendet.

Beispiele:

* RSA
* ECC / ECDSA

#### Hash

Erzeugt einen Prüfwert für Daten und hilft bei der Integrität.

Beispiele:

* SHA-256
* SHA-384

#### AEAD

Moderne Verfahren, die Verschlüsselung und Integrität kombinieren.

Beispiele:

* AES-GCM
* ChaCha20-Poly1305

#### Perfect Forward Secrecy

Alte Sitzungen bleiben geschützt, auch wenn später ein Langzeitschlüssel kompromittiert wird.

Typisch mit:

* ECDHE

***

### TLS-Versionen

Veraltet und unsicher:

* SSL 2.0
* SSL 3.0
* TLS 1.0
* TLS 1.1

Heute relevant:

* TLS 1.2
* TLS 1.3

Prüfungslogik:

* TLS 1.2 ist noch weit verbreitet
* TLS 1.3 ist moderner, einfacher und sicherer

***

### Gute und schlechte Ciphers grob

#### Eher gut / modern

* AES-GCM
* ChaCha20-Poly1305
* ECDHE
* ECDSA oder RSA für Zertifikate, je nach Setup

#### Eher schlecht / veraltet

* RC4
* DES
* 3DES
* NULL Ciphers
* MD5
* SHA-1 in sicherheitsrelevanten Alt-Kontexten
* statischer RSA Key Exchange ohne Forward Secrecy

***

### TLS 1.2 vs. TLS 1.3

#### TLS 1.2

* weit verbreitet
* flexibler
* mehr Altlasten
* höheres Fehlkonfigurationsrisiko

#### TLS 1.3

* aufgeräumter
* moderne Verfahren im Fokus
* unsichere Altlasten entfernt
* schnellerer und sichererer Handshake

***

### Praktische Checks

Typische Prüfungen bei TLS:

* Welche TLS-Versionen sind aktiv?
* Welche Cipher Suites werden angeboten?
* Ist das Zertifikat gültig?
* Wird HTTPS sauber erzwungen?
* Gibt es schwache oder veraltete Verfahren?

Beispiel mit nmap:

```
nmap --script ssl-enum-ciphers -p 443 <target>
```

Weitere Checks:

* SSL Labs
* testssl.sh
* securityheaders.com

### CIA Triad

Grundprinzip der Sicherheit:

* Confidentiality (Vertraulichkeit)
* Integrity (Integrität)
* Availability (Verfügbarkeit)
