Files
2025-07-02 14:34:34 +02:00

104 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 🔐 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