update to local git repo

This commit is contained in:
fzzinchemical
2025-07-02 13:08:03 +02:00
commit 269b8a31ba
136 changed files with 12257 additions and 0 deletions

View File

@@ -0,0 +1,106 @@
## 🔐 GRUNDLAGEN VON SSL / TLS
### Was ist SSL/TLS?
- SSL (Secure Socket Layer): ursprünglich von Netscape entwickelt.
- TLS (Transport Layer Security): Weiterentwicklung von SSL 3.0 durch IETF.
- Ziel: **Ende-zu-Ende sichere Kommunikation** über TCP/IP.
### Hauptfunktionen
- **Datenverschlüsselung**
- **Server-Authentifizierung**
- **Nachrichtenintegrität (MAC / HMAC)**
- **(Optional) Client-Authentifizierung**
---
## 🧱 PROTOKOLLARCHITEKTUR
### SSL-Protokoll besteht aus:
- **Handshake Protocol**: Aushandlung der Sicherheitsparameter
- **Change Cipher Spec**: Aktivierung neuer Sicherheitsparameter
- **Alert Protocol**: Fehler- und Warnmeldungen
- **Record Protocol**: Verschlüsselung und MAC auf Anwendungsebene
### Protokollstapel:
SSL liegt zwischen TCP/IP und der Anwendungsschicht (z.B. HTTP, FTP).
---
## 🔁 VERBINDUNGSAUFBAU (SSL Handshake)
### Ablauf
1. **Client → Server**: `Client_Hello`
- Protokollversion, Zufallswert, Session-ID, unterstützte Cipher Suites & Kompression
2. **Server → Client**: `Server_Hello`
- Auswahl aus Vorschlägen + Server-Zertifikat (X.509)
- optional: `Certificate_Request` → Client-Zertifikat
- `Server_Hello_Done`
3. **Client → Server**:
- Optional: `Certificate`, `Certificate_Verify` (Authentifizierung)
- `Client_Key_Exchange`: Pre-Master Secret (verschlüsselt mit Server-Public-Key)
- `Change_Cipher_Spec`
- `Finished`: verifizierbarer Hash
4. **Server → Client**:
- `Change_Cipher_Spec`
- `Finished`
### Wichtig:
- **Pre-Master Secret → Master Secret (384 Bit) → Key Block**
- **Schlüssel werden symmetrisch genutzt**
---
## 🗝️ SCHLÜSSELERZEUGUNG
Aus dem **Master Secret** werden erzeugt:
- MAC-Schlüssel (Client/Server)
- Verschlüsselungsschlüssel
- Initialisierungsvektoren (IVs)
**Aufteilung (Key Block)**:
- `Client_Write_MAC_Secret`
- `Server_Write_MAC_Secret`
- `Client_Write_Key`
- `Server_Write_Key`
- `Client/Server_Write_IV`
---
## 📄 ZUSAMMENHÄNGE: SESSION & VERBINDUNG
|Begriff|Beschreibung|
|---|---|
|**Session**|Kommunikationskanal, definiert durch Handshake|
|**Verbindung**|Instanz mit eigener Schlüsselverwendung|
- Mehrere Verbindungen können zu einer Session gehören.
- Session-ID dient zur Wiederaufnahme (Session Resumption).
---
## 🧾 SSL RECORD LAYER
### Verarbeitungsschritte
1. Fragmentierung (max. 16 KB)
2. **Optionale Kompression**
3. **MAC-Berechnung** (z.B. mit SHA/MD5)
4. **Verschlüsselung** mit vereinbarten Algorithmen
5. Versand
### Empfängerseite:
- Umgekehrte Schritte (Decryption → MAC-Prüfung → Dekompression)
---
## ⚙️ WICHTIGE PROTOKOLLDETAILS
- **Alert Protocol**: Meldet Fehler (z.B. Handshake Failure)
- **Cipher Suites** enthalten:
- Verschlüsselungsalgorithmus (z.B. AES, RC4, 3DES)
- MAC-Algorithmus (MD5, SHA-1)
- Schlüsselaustausch (z.B. RSA, Diffie-Hellman)
- **Wiederverwendbare Sitzungen** verbessern Performance:
- Session-ID beim `Client_Hello` senden
- Bei Erfolg: `Server_Hello` mit derselben Session-ID
---
## 📦 PORTS FÜR SSL/TLS (laut IANA)
|Dienst|SSL-Port|
|---|---|
|HTTPS|443|
|SMTP|465|
|POP3|995|
|IMAP|993|
|NNTP|563|
|LDAP|636|
|FTP|990|
---
## ✅ ZUSAMMENFASSUNG FÜR DIE KLAUSUR
- TLS = Weiterentwicklung von SSL
- Ziel: Verschlüsselung, Authentifizierung, Integrität
- SSL-Handshake:
- Aushandlung der Cipher Suites
- Authentifizierung via Zertifikaten (X.509)
- Session Keys für symmetrische Verschlüsselung
- SSL ist **applikationsunabhängig**
- **SSL Record Layer** = zentrale Schicht zur Absicherung der Nutzdaten
---
Wenn du willst, kann ich dir daraus auch **Karteikarten**, ein **Quiz**, oder eine **grafische Übersicht** (z.B. Ablaufdiagramm) für den Handshake oder die Schlüsselableitung erstellen. Sag einfach Bescheid!