## 🔐 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!