Ssl/tls Grundsätzliches
Zur Navigation springen
Zur Suche springen
Begriffserklärung
- SSL (Secure Sockets Layer) und TLS (Transport Layer Security) sind kryptografische Protokolle, die Datenverbindungen absichern.
- TLS ist der moderne und sichere Nachfolger von SSL. SSL gilt heute als veraltet.
- TLS stellt Vertraulichkeit, Integrität und Authentizität sicher.
Ziele von TLS
- Vertraulichkeit: Daten werden verschlüsselt, sodass Dritte sie nicht lesen können.
- Integrität: Manipulationen werden erkannt, da jedes Datenpaket kryptografisch geprüft wird.
- Authentizität: Der Client kann überprüfen, ob er wirklich mit dem legitimen Server kommuniziert.
Warum TLS notwendig ist
- Unverschlüsselter HTTP-Verkehr kann vollständig mitgelesen und verändert werden.
- Angriffe wie Man-in-the-Middle, Session Hijacking, Phishing oder Spoofing wären ohne TLS trivial.
- TLS schützt Logins, Zahlungen, E-Mails, APIs, VPNs und alle sicherheitskritischen Dienste.
- TLS ist somit ein grundlegender Baustein moderner IT-Sicherheit.
Kryptografische Grundlagen
- Asymmetrische Kryptografie (z.B. RSA, ECDSA) wird zur Authentifizierung und zum Schlüsselaustausch verwendet.
- Symmetrische Kryptografie (z.B. AES-GCM, ChaCha20-Poly1305) schützt die eigentlichen Nutzdaten.
- Hashfunktionen (z.B. SHA-256, SHA-384) dienen zur Integritätsprüfung und Signaturerstellung.
Aufbau eines Zertifikats
- Ein Zertifikat enthält den öffentlichen Schlüssel eines Servers und zusätzliche Identitätsinformationen.
- Es wird von einer Zertifizierungsstelle (CA) digital signiert.
- Ein Zertifikat bestätigt: Dieser öffentliche Schlüssel gehört zu diesem Servernamen.
- Moderne Zertifikate verwenden X.509 als Standardformat.
Zertifikatskette
- Server-Zertifikat: gehört zum konkreten Host (z.B. www.example.com).
- Intermediate CA: signiert viele Server-Zertifikate, hängt unter einer Root CA.
- Root CA: im Betriebssystem oder Browser fest hinterlegt und vertrauenswürdig.
- Der Client prüft die gesamte Zertifikatskette, bevor er dem Server vertraut.
Funktionsweise von TLS (zwei Phasen)
- Handshake-Phase: Server-authentifizierung, Aushandeln der Parameter, Ableitung des Sitzungsschlüssels.
- Datenphase: Verschlüsselte Kommunikation mit dem ausgehandelten symmetrischen Schlüssel.
TLS Handshake im Überblick
- Client meldet sich beim Server und sendet unterstützte Protokoll- und Verschlüsselungsverfahren.
- Server wählt ein gemeinsames Verfahren und sendet sein Zertifikat.
- Der Client prüft die Signatur des Zertifikats gegen die CA-Kette.
- Beide Seiten erzeugen gemeinsam einen Sitzungsschlüssel (Session Key).
- Nach Abschluss des Handshakes beginnt die verschlüsselte Datenübertragung.
Bedeutung der Signatur im TLS-Handschlag
- Der Server signiert einen Hash aus bestimmten Sitzungsparametern.
- Der Client prüft diese Signatur mit dem öffentlichen Schlüssel des Servers.
- Stimmt der Hash, ist sicher: Der Server besitzt den zugehörigen privaten Schlüssel.
- Dies legitimiert den Server als „echten“ Host.
Symmetrische Verschlüsselung in der Datenphase
- Nach dem Handshake wird nur noch der Session Key verwendet.
- Das ist effizienter und schneller als asymmetrische Kryptografie.
- Durch Perfect Forward Secrecy (PFS) kann ein später kompromittierter Schlüssel frühere Sitzungen nicht entschlüsseln.
TLS Cipher Suites
- Eine Cipher Suite definiert, welche Algorithmen verwendet werden.
- Beispiel: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- ECDHE: Schlüsselaustausch (Elliptic Curve Diffie-Hellman Ephemeral)
- RSA: Signaturverfahren
- AES_256_GCM: Symmetrische Verschlüsselung
- SHA384: Hashfunktion
- TLS 1.3 vereinfacht Cipher Suites erheblich und verbessert die Sicherheit.
Sicherheitsmerkmale moderner TLS-Versionen
- Perfect Forward Secrecy wird standardmäßig erzwungen.
- Vereinfachter und sicherer Handshake.
- Reduzierte Anzahl kryptografischer Optionen zur Fehlervermeidung.
- Abschaltung unsicherer Verfahren wie RC4, 3DES, MD5 oder SHA-1.
- Strenge Überprüfung der Zertifikatskette.
Risiken bei falscher TLS-Konfiguration
- Verwendung veralteter Protokolle (SSL 3.0, TLS 1.0, TLS 1.1).
- Schwache Cipher Suites ohne PFS.
- Ungültige oder abgelaufene Zertifikate.
- Zertifikate mit falschen Hostnamen.
- Selbstsignierte Zertifikate ohne Vertrauenskette.
- HSTS fehlt → Gefahr von Downgrade- und MitM-Angriffen.
Moderne TLS-Versionen
- SSL 2.0/3.0: komplett unsicher, verboten.
- TLS 1.0/1.1: veraltet, viele Angriffe möglich.
- TLS 1.2: weit verbreiteter, sicherer Standard.
- TLS 1.3: moderne Version mit stark reduziertem Handshake, hoher Sicherheit und besserer Performance.
- Empfehlung: Nur TLS 1.2 und TLS 1.3 aktiv verwenden.
Einsatzgebiete von TLS
- HTTPS / Webanwendungen
- VPN-Protokolle (TLS-basierte Lösungen)
- E-Mail-Schutz (IMAPS, SMTPS, POP3S)
- APIs und Microservices
- IoT-Kommunikation
- Remote-Administration
- Verzeichnisdienste und Authentifizierung
Typische Angriffe ohne TLS
- Abhören des Traffics (Eavesdropping)
- Manipulation von Daten (Tampering)
- Man-in-the-Middle-Angriffe
- Session Hijacking
- DNS-Spoofing in HTTP-Verbindungen
- Passwortdiebstahl über Formularübertragung
Best Practices für den Einsatz
- Mindestversion TLS 1.2 aktivieren, ideal TLS 1.3.
- Schwache Cipher Suites deaktivieren (3DES, RC4, ohne PFS).
- HSTS aktivieren.
- Zertifikate regelmäßig erneuern.
- Nur vertrauenswürdige CAs verwenden.
- Private Schlüssel sicher speichern.
- Server Name Indication (SNI) nutzen.
- Keine veralteten Protokollerweiterungen aktiv lassen.
Zusammenfassung
- TLS ist der zentrale Baustein der sicheren Internetkommunikation.
- Schützt Daten vor Mitlesen, Manipulation und Identitätsfälschung.
- Kombiniert asymmetrische, symmetrische und hashbasierte Verfahren.
- Authentifiziert den Server über Zertifikate und die CA-Kette.
- Perfekt geeignet für Web, E-Mail, VPN, APIs und alle sicherheitskritischen Dienste.