[[start|zurück]] ====== Verschlüsselung – Grundlagen (TLS, HTTPS, Zertifikate, PKI, Hashing) ====== Verschlüsselung schützt Daten vor unerlaubtem Mitlesen und Manipulation. Sie ist überall in der IT unverzichtbar – bei Webservern, E-Mails, VPN, WLAN, Backups, Passwortspeicherung und Identitätsverwaltung. Diese Seite behandelt: * symmetrische & asymmetrische Verschlüsselung * Hashing * TLS & HTTPS * Zertifikate * Public-Key-Infrastruktur (PKI) * CA, Intermediate, Chain of Trust --- ====== 1. Symmetrische Verschlüsselung ====== Ein Schlüssel → für **Ver- und Entschlüsselung derselbe Schlüssel**. Beispiele: * AES (Standard heute) * ChaCha20 * DES (veraltet) * 3DES (veraltet) verschlüsselt .-------. .-------------. | | | | | Daten +---->+ Schlüssel K | | | | | '-------' '------+------' | v .-----+------. | | | slkgj34fwe | verschlüsselte Daten | | '-----+------' | entschlüsselt v .-------. .------+------. | | | | | Daten +<----+ Schlüssel K | | | | | '-------' '-------------' Vorteile: * sehr schnell * ideal für große Datenmengen (Backups, VPN) Nachteile: * sicherer Schlüsselaustausch schwierig * Schlüsselverlust = Datenverlust --- ====== 2. Asymmetrische Verschlüsselung ====== Zwei Schlüssel: * **Public Key** (öffentlicher Schlüssel) * **Private Key** (geheimer Schlüssel) Was der eine verschlüsselt, kann nur der andere entschlüsseln. Beispiele: * RSA * ECC (moderne Alternative, schneller) * Ed25519 (Shadowsocks, SSH etc.) Public Key → verschlüsselt Private Key → entschlüsselt Vorteile: * einfacher Schlüsseltausch * Grundlage für TLS, Zertifikate, digitale Signaturen Nachteile: * langsamer als symmetrische Verfahren --- ====== 3. Digitale Signaturen & Integrität ====== Mit Private Key signieren → mit Public Key prüfen. Schützt vor: * Manipulation * Identitätsdiebstahl * gefälschten Updates Beispiel: * apt-get prüft digitale Signaturen Private Key → Signatur Public Key → Prüfung: gültig? --- ====== 4. Hashing (wichtig für Passwörter) ====== Hash = Einwegfunktion → nicht rückrechenbar. Beispiele: * SHA-256 (stark) * SHA-1 (veraltet) * MD5 (gebrochen) Moderne Passwort-Hashverfahren: * Argon2id (Standard!) * bcrypt * scrypt Eigenschaften: * kein Entschlüsseln möglich * kleine Änderungen → komplett anderer Hash --- ====== 5. TLS & HTTPS ====== TLS (Transport Layer Security) verschlüsselt Verbindungen im Internet. HTTPS = HTTP + TLS. Schützt: * Vertraulichkeit * Integrität * Authentizität des Servers Ablauf in Kurzform: 1) Client verbindet sich 2) Server sendet Zertifikat 3) Client prüft Signatur & Gültigkeit 4) Es wird ein symmetrischer Sitzungsschlüssel ausgehandelt 5) Daten fließen verschlüsselt Browser → TLS Handshake → Server ← Zertifikat --- ====== 6. Zertifikate ====== Ein Zertifikat enthält: * Public Key des Servers * Name / Domain * Gültigkeitszeitraum * Signatur der CA * ggf. zusätzliche Informationen (SANs) Wichtig: * Private Key bleibt IMMER geheim * Zertifikate laufen ab (LE: 90 Tage) * Chain of Trust muss vollständig sein Arten von Zertifikaten: ===== DV – Domain Validated (Standard) ===== * bestätigt Domain-Besitz * einfache Validierung (z. B. DNS-01 von LE) ===== OV – Organization Validated ===== * bestätigt zusätzlich Unternehmen ===== EV – Extended Validation ===== * höchste Validierungsstufe * wird heute kaum noch genutzt --- ====== 7. Public-Key-Infrastruktur (PKI) ====== Eine PKI ist ein Vertrauensmodell basierend auf Zertifikaten. Bestandteile: * **CA (Certificate Authority)** – stellt Zertifikate aus * **Intermediate CA** – bildet Kette * **Root CA** – höchstes Vertrauen * **CRL** – Sperrliste * **OCSP** – Online-Statusprüfung ASCII: Chain of Trust Root CA ↓ signiert Intermediate CA ↓ signiert Server Zertifikat Der Client vertraut → Root CA → Intermediate → Server → wenn eine Stufe fehlt: „Zertifikat nicht vertrauenswürdig“. --- ====== 8. Zertifikatsarten nach Einsatz ====== ===== Server-Zertifikate ===== * TLS für Webserver (HTTPS) * Mailserver (IMAP/SMTP/TLS) * LDAP over TLS (StartTLS) ===== Client-Zertifikate ===== * Zugriff auf VPN * Maschinenauthentifizierung (z. B. RADIUS) ===== Code-Signing Zertifikate ===== * Signieren von Software / Treibern ===== Dokumentensignatur ===== * PDF-Signaturen * elektronische Unterschriften (LibreSign, eIDAS) --- ====== 9. Zertifikatsvalidierung ====== Ein Client prüft: * Ist die CA vertrauenswürdig? * Passt die Domain zum Zertifikat? * Ist das Zertifikat abgelaufen? * Wurde es widerrufen? * Ist die Chain vollständig? --- ====== 10. Moderne Verschlüsselung in der Praxis ====== ===== Webserver ===== * HTTPS per TLS 1.2+ * Let’s Encrypt via ACME (Traefik) ===== Mailserver ===== * STARTTLS * SMTPS (465) * DANE optional ===== VPN ===== * WireGuard (modern) → Curve25519 * OpenVPN → TLS ===== Container & Microservices ===== * interne TLS-Kommunikation * mTLS (Mutual TLS) in Service Meshes (z. B. Istio) ===== Backups ===== * AES-Verschlüsselung * GPG für signierte Archive --- ====== 11. Best Practices für Verschlüsselung ====== ===== 1) Nur moderne Protokolle verwenden ===== * TLS 1.2 / 1.3 * keine alten Ciphers (RC4, 3DES, MD5, SHA1) ===== 2) Private Keys gut schützen ===== * 600-Rechte * niemals teilen * nie per E-Mail versenden ===== 3) Zertifikate automatisch erneuern ===== * Let’s Encrypt (ACME) * Cronjobs oder Traefik-Auto-Renewal ===== 4) HSTS aktivieren ===== * Browser erzwingt HTTPS ===== 5) Passwort-Hashverfahren modern halten ===== * Argon2id * bcrypt ===== 6) Nutzung von MFA erzwingen ===== ===== 7) Backups verschlüsselt speichern ===== ===== 8) interne TLS-Verbindungen prüfen ===== * LDAP StartTLS * Datenbankverbindungen (MariaDB SSL) --- ====== Zusammenfassung ====== * Symmetrisch = schnell, gleicher Schlüssel * Asymmetrisch = Public/Private Key, Grundlage für TLS * Hashes dienen der Integrität & Passwortspeicherung * TLS verschlüsselt Web-, Mail- und API-Verkehr * Zertifikate basieren auf PKI & Chain of Trust * Let’s Encrypt ermöglicht automatische Zertifikate * Moderne Sicherheit = starke Verschlüsselung + sichere Schlüsselverwaltung