106 lines
3.8 KiB
Markdown
106 lines
3.8 KiB
Markdown
## 🔐 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! |