Ssl/tls Grundsätzliches

Aus Xinux Wiki
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.