M 5.66 Verwendung von TLS/SSL
Verantwortlich für Initiierung: IT-Sicherheitsbeauftragter, Leiter IT
Verantwortlich für Umsetzung: Administrator, Benutzer
Das bei der Web-Nutzung am häufigsten verwendete Sicherheitsprotokoll ist TLS / SSL (Transport Layer Security/Secure Socket Layer). SSL ist von Netscape entwickelt worden. Neuere Versionen sind unter der Bezeichnung TLS in verschiedenen RFC s standardisiert. TLS/SSL wird von allen aktuelleren Browsern unterstützt. Mit TLS/SSL können Verbindungen abgesichert werden
- durch Verschlüsselung der Verbindungsinhalte,
- durch Überprüfung der Vollständigkeit und Korrektheit der übertragenen Daten,
- durch Prüfung der Identität des Servers und
- optional durch Prüfung der Identität der Client-Seite.
Bei TLS/SSL wird eine Verbindung zwischen dem Browser eines Benutzers und dem Server eines Anbieters aufgebaut, über die zunächst die Zertifikate mit den öffentlichen Schlüsseln ausgetauscht werden. Mit Hilfe eines asymmetrischen Verschlüsselungsverfahrens wird anschließend ein symmetrischer Schlüssel sicher ausgetauscht. Für die Verschlüsselung der eigentlichen Datenübertragung wird nun ein symmetrisches Verfahren benutzt, da dies große Datenmengen schneller verschlüsseln kann. Bei jeder Transaktion wird ein anderer symmetrischer Schlüssel als "Session Key" ausgehandelt, mit dem dann die Verbindung verschlüsselt wird.
Ein Benutzer kann Web-Seiten, die eine TLS/SSL-gesicherte Datenübertragung ermöglichen, beispielsweise daran erkennen, dass die Internet-Adresse um ein "s" erweitert ist (https://www...). Zusätzlich werden solche Webseiten bei den meisten gängigen Browsern auch besonders gekennzeichnet, beispielsweise durch ein angezeigtes Symbol (Schlüssel, Vorhängeschloss etc.) oder durch eine farbliche Markierung der Internet-Adresse.
Die Nutzung von TLS/SSL ist nicht auf HTTP -Clients und -Server beschränkt. Auch Protokolle wie SMTP oder LDAP können TLS/SSL zur sicheren Kommunikation nutzen. Allerdings setzt dies voraus, dass die betreffenden Clients und Server diese Sicherheitsfunktion jeweils unterstützen.
TLS/SSL besteht aus zwei Schichten. Auf der oberen Schicht arbeitet das TLS/SSL Handshake Protokoll. Dieses dient dem Client und dem Server dazu, sich gegenseitig zu identifizieren und zu authentisieren sowie dazu, für den anschließenden Datenverkehr einen Schlüssel und einen Verschlüsselungsalgorithmus auszuhandeln. Die untere Schicht, das TLS/SSL Record Protokoll, das die Schnittstelle zur TCP -Schicht bildet, ver- und entschlüsselt den eigentlichen Datenverkehr. Da TLS/SSL für den Zugriff auf TCP auf der Socket-Schnittstelle aufsetzt und diese durch eine sicherheitserweiterte Version ersetzt, ist es auch für andere Dienste verwendbar.
TLS und SSL verwenden unterschiedliche Versionsnummern. Es sollte nur TLS 1.0 oder höher bzw. SSL 3.0 oder höher eingesetzt werden, da erst ab diesen Versionen eine Server-Authentikation stattfindet. SSL 2.x sollte hingegen nicht verwendet werden, da diese Versionen keinen Schutz vor "Man-in-the-Middle"-Angriffen bieten.
Algorithmen und Schlüssellängen
Bei TLS/SSL können verschiedene kryptographische Algorithmen mit verschiedenen Schlüssellängen eingesetzt werden (siehe hierzu auch M 3.23 Einführung in kryptographische Grundbegriffe ). Beim Verbindungsaufbau einigen sich Client und Server auf die in der Sitzung verwendeten Verfahren.
Durch die Auswahl der Produkte (Browser, Webserver, Plug-In etc.) und geeignete Konfiguration ist sicherzustellen, dass bei der TLS/SSL-geschützten Kommunikation ausschließlich Algorithmen und Schlüssellängen zum Einsatz kommen, die dem Stand der Technik und den Sicherheitsanforderungen der Institution entsprechen. Weitere Hinweise hierzu finden sich in der Maßnahme M 2.164 Auswahl eines geeigneten kryptographischen Verfahrens .
Zertifikate
Es ist schwierig, bei der Datenkommunikation über offene Netze die Identität der Kommunikationspartner zu überprüfen, da man sich nicht darauf verlassen kann, dass Namensangaben korrekt sind. Bei TLS/SSL erfolgt die Überprüfung der Identität des Kommunikationspartners über so genannte Zertifikate. Zertifikate enthalten deren öffentliche Schlüssel sowie eine Bestätigung einer weiteren Instanz über die korrekte Zuordnung des öffentlichen Schlüssels zu dessen "Besitzer", hier also ein Server oder Client. Der Wert eines Zertifikates hängt also nicht zuletzt davon ab, wie vertrauenswürdig diese Bestätigungsinstanz (auch Trustcenter oder Zertifizierungsstelle genannt) ist. Die Echtheit des Zertifikates lässt sich wiederum mit dem öffentlichen Schlüssel der Bestätigungsinstanz überprüfen.
Bei TLS/SSL sind drei Varianten von Zertifikaten zu unterscheiden:
- Benutzerzertifikate, die für eine Client-Authentisierung benötigt werden,
- Zertifikate von Zertifizierungsstellen, wobei manche Zertifizierungsstellen mehrere Zertifikate haben, je nach der zugrunde gelegten Sicherheitsrichtlinie, und
- Zertifikate von Software-Herstellern bzw. Betreibern von Webseiten.
Alle gängigen Browser enthalten bereits bei der Installation TLS/SSL-Zertifikate einiger Zertifizierungsstellen. Diese Zertifizierungsstellen haben sehr unterschiedliche Sicherheitsleitlinien und Bedingungen, unter denen sie Zertifikate erteilen. Bevor sicherheitskritische Informationen über eine TLS/SSL-geschützte Verbindung übertragen werden, sollte deshalb die Sicherheitsrichtlinie der jeweiligen Zertifizierungsstellen geprüft werden.
Bei der Aufnahme eines neuen Zertifikates sollte darauf geachtet werden, dieses erst nach Überprüfung des "Fingerprints" zu aktivieren. Der Fingerprint ist eine hexadezimale Zahl, die zusammen mit dem Zertifikat übermittelt wird. Zusätzlich sollte sie auf einem anderen Weg übermittelt und verglichen werden, da diese die Korrektheit des Zertifikats sicherstellen soll.
Betreiber von Web-Servern, die mit den Besuchern ihrer Web-Seiten sicherheitsrelevante Daten austauschen wollen, sollten hierzu einen kryptographisch abgesicherten Weg anbieten, also z. B. TLS/SSL.
Hinweis: Beim Einsatz von TLS/SSL ist zu beachten, dass verschlüsselte Daten hinsichtlich aktiver Inhalte und Schadprogramme nicht zentral, also z. B. am Sicherheitsgateway, überprüft werden können. Dies muss bei der Sicherheitskonzeption berücksichtigt werden, damit keine Sicherheitslücken entstehen. Weitere Empfehlungen hierzu finden sich unter anderem im Baustein B 1.6 Schutz vor Schadprogrammen .
Prüffragen:
- Unterstützen die eingesetzten Server- bzw. Client-Produkte eine sichere Version von TLS / SSL ?
- Ist sichergestellt, dass sich Client und Server auf kryptographische Algorithmen und Schlüssellängen einigen, die dem Stand der Technik und den Sicherheitsanforderungen der Institution entsprechen?
- Wird die Sicherheitsrichtlinie der jeweiligen Zertifizierungsstellen geprüft, bevor sicherheitskritische Informationen über eine TLS / SSL -geschützte Verbindung übertragen werden?
- Wird auch bei der Nutzung von TLS / SSL ein ausreichender Schutz vor Schadprogrammen und unerlaubten aktiven Inhalten gewährleistet?