Die Transport Layer Security ( TLS ) oder "Sicherheit der Transportschicht" und ihr Vorgänger das Secure Sockets Layer ( SSL ) oder "Layer Sockets Secure" sind Protokolle der Handelssicherheit für Computernetzwerke , einschließlich des Internets . Das Protokoll SSL wurde ursprünglich von der Netscape Communications Corporation für ihren Browser entwickelt. Das Standardisierungsgremium IETF entwickelte es weiter und benannte es in Transport Layer Security (TLS) um . Wir sprechen manchmal von SSL / TLS , um gleichgültig SSL oder TLS zu bezeichnen .
Das TLS (oder SSL ) arbeitet auf einem Mode- Client-Server . Es erfüllt die folgenden Sicherheitsziele:
Das Protokoll ist weit verbreitet, und ihre Umsetzung wird durch die Tatsache erleichtert , dass Anwendungsschicht - Protokolle, wie HTTP , müssen nicht drastisch um eine sichere Verbindung zu verwenden , geändert werden, sondern nur auf es implementiert. Die SSL / TLS , die für HTTP gab das Protokoll HTTPS .
Eine spezielle IETF Arbeitsgruppe ermöglichte die Schaffung von TLS und dessen UDP unverbundenen-Modus äquivalent , DTLS . Seit der Übernahme durch die IETF hat das TLS- Protokoll vier Versionen durchlaufen: TLS v1.0 im Jahr 1999, TLS v1.1 im Jahr 2006, TLS v1.2 im Jahr 2008 und TLS v1.3 im Jahr 2018.
Als das Internet wuchs, begannen immer mehr kommerzielle Unternehmen, Online-Shopping für Privatpersonen anzubieten. Das Angebot wuchs stetig, aber die E-Commerce- Umsätze blieben bescheiden, bis die Kunden genügend Vertrauen in die Zahlung per Kreditkarte hatten. Eine der Möglichkeiten, diese Zahlung abzusichern, bestand darin, Authentifizierungs- und Verschlüsselungsprotokolle wie SSL zu verwenden. Die verschlüsselte Sitzung wird verwendet, um zu verhindern, dass ein Dritter sensible Daten abfängt, die das Netzwerk passieren: Kartennummer bei Zahlung mit Bankkarte , Passwort, wenn sich der Benutzer auf einer Website identifiziert, usw.
Mit einem SSL-System wurde die Sicherheit erheblich verbessert und das Risiko für den Kunden im Vergleich zu den Tagen, als Internetzahlungen noch eine aufstrebende Technologie waren, erheblich reduziert. Obwohl SSL / TLS, wie jedes andere Verschlüsselungssystem, niemals absolut narrensicher sein kann, kann die große Anzahl von Banken und E-Commerce- Sites , die es zum Schutz der Transaktionen ihrer Kunden verwenden, als Beweis für seine Widerstandsfähigkeit angesehen werden.
Ab 2009 wird TLS von den meisten Webservern verwendet . Der Internetnutzer kann an mehreren Zeichen erkennen, dass eine Transaktion verschlüsselt ist:
Die erste veröffentlichte SSL-Version, SSL 2.0, wies eine Reihe von Sicherheitslücken auf, darunter die Möglichkeit, schwächere Verschlüsselungsalgorithmen zu erzwingen, oder der fehlende Schutz für Handshake und Kommunikation. Die Protokolle PCT 1.0, dann SSL 3.0 wurden entwickelt, um den größten Teil dieser Probleme zu lösen, wobei das zweite schnell das beliebteste Protokoll zur Sicherung des Austauschs im Internet wurde.
TLS unterscheidet sich strukturell nicht von Version 3 von SSL, aber Änderungen in der Verwendung von Hash-Funktionen führen dazu, dass die beiden Protokolle nicht direkt interoperabel sind. TLS enthält jedoch wie SSLv3 einen Rückwärtskompatibilitätsmechanismus mit früheren Versionen, dh zu Beginn der Verhandlungsphase handeln Client und Server die "beste" Version des Protokolls aus, die allen zur Verfügung steht. Aus Sicherheitsgründen, die im 2011 veröffentlichten RFC 6176 beschrieben sind , wird die Kompatibilität von TLS mit Version 2 von SSL aufgegeben.
Die Generierung symmetrischer Schlüssel ist bei TLS insofern etwas sicherer als bei SSLv3, insofern kein Schritt des Algorithmus ausschließlich auf MD5 beruht, bei dem Schwächen in der Kryptoanalyse aufgetreten sind .
Die erste professionelle Version von TLS 1.3 ist wolfSSL , die im Mai 2017 veröffentlicht wurde.
Moderne Industrienetzwerke, die in TCP/IP arbeiten, verwenden zunehmend TLS-Sicherheit. So kombinieren die Protokolle für die Steuerbefehle elektrischer Netze wie IEC-61850, IEC-60870 und DNP3 TLS zum Schutz vor Cyber-Angriffen.
Die meisten Browser sind auch TLS-Clients. Die Webbrowser, die standardmäßig die neueste TLS 1.2-Version unterstützen, sind:
Große Webbrowser-Entwickler haben angekündigt, den Support für TLS 1.1 und frühere Versionen zum Frühjahr 2020 einzustellen.
HTTPS Everywhere ist eine Erweiterung für Webbrowser , mit der die Verwendung von SSL / TLS auf bestimmten Websites erweitert werden kann. Es aktiviert die Verschlüsselung auf Seiten, auf denen es normalerweise deaktiviert ist. Dies kann natürlich nur funktionieren, wenn die betreffende Site bereits TLS unterstützt. Die Erweiterung wird seit 2010 gemeinsam vom Tor-Projekt und EFF betreut.
In den meisten Fällen authentifiziert der Benutzer den TLS-Server, zu dem er eine Verbindung herstellt. Diese Authentifizierung wird durch die Verwendung eines digitalen X.509-Zertifikats erreicht, das von einer Zertifizierungsstelle (CA) ausgestellt wurde. Webanwendungen können die Client-Workstation-Authentifizierung mit TLS verwenden. Es ist dann möglich, eine gegenseitige Authentifizierung zwischen Client und Server anzubieten. Das Client-Zertifikat kann im Softwareformat auf der Client-Workstation gespeichert oder von einem Hardwaregerät ( Smartcard , USB-Token) bereitgestellt werden . Diese Lösung ermöglicht es, starke Authentifizierungsmechanismen anzubieten .
Wenn sich ein Benutzer bei einer Website anmeldet, die TLSv1.2 (oder niedriger) verwendet, werden die folgenden Schritte ausgeführt:
Optional: Wenn der Server auch eine Authentifizierung des Clients erfordert, sendet der Client sein eigenes Zertifikat zusammen mit dem Sitzungsschlüssel. Der Server fährt dann wie in Punkt 3 beschrieben fort, um zu überprüfen, ob das Zertifikat des Clients gültig ist.
Seit TLSv1.3 muss der Austausch des Sitzungsschlüssels über Diffie-Hellman mit elliptischen Kurven ( ECDHE ) erfolgen: die RSA kann dafür nicht mehr verwendet werden.
2001 entdeckte Serge Vaudenay einen Auxiliary-Channel-Angriff gegen SSL. Durch das Standard-Update ist dieser Angriff nun völlig obsolet und kann nicht mehr verwendet werden. Dieser Angriff nutzte eine schlechte Implementierung von Padding, die verwendet wurde, wenn Eingaben von variabler Größe waren. Der Verschlüsselungsmodus CBC ( Cipher Block Chaining ) besteht darin, die Daten in mehrere Blöcke gleicher Größe aufzuteilen und die verkettete Art zu verschlüsseln (das vorherige Ergebnis wird bei der nachfolgenden Verschlüsselung verwendet). Der Vaudenay-Angriff nutzte die Reaktionszeiten der Server bei Fehlern bei der Befüllung. Mit etwas Glück war es möglich, die zuletzt gesendeten Daten herauszufinden und abzurufen. Der Angriff war jedoch mit der Verschlüsselung vom Typ RC4 wirkungslos und nur unter bestimmten Bedingungen gültig. Trotz allem wurde es erfolgreich gegen bestimmte "Webmails" eingesetzt, die mehrmals die gleichen Daten verschickten .
Im März 2014 wurde eine Software-Schwachstelle in der OpenSSL-Bibliothek entdeckt: Heartbleed , die irrtümlicherweise in einem zwei Jahre zuvor durchgeführten Update auf OpenSSL eingeführt wurde . Dieser Fehler wurde weithin bekannt gemacht, auch in den allgemeinen Medien, wie insbesondere der Ich liebe dich- Wurm im Jahr 2000.
Am 15. Oktober 2014 hat ein Forschungsteam von Google einen Fehler im Design von SSLv3 festgestellt, der die Entschlüsselung von Inhalten ermöglicht. Dieser Angriff wurde POODLE für Padding Oracle On Downgraded Legacy genannt . Es ist nur in SSLv3 vorhanden.
Am 2. März 2016 beschreiben Forscher den Fehler namens DROWN . Es besteht darin, die alte Version SSL v2 zu verwenden, um die TLS v1.2-Technologie zu entschlüsseln.
Ziel des DANE- Protokolls ist es, bestimmte Schwachstellen in TLS zu beheben, insbesondere für Angriffe vom Typ MIMT .
7 - Anwendungsschicht | HTTP , SMTP , FTP , SSH , IRC , SNMP , SIP ... |
6 - Präsentationsschicht | |
5 - Sitzungsebene | TLS, SSL, SSH-Benutzer , NetBIOS |
4 - Transportschicht | TCP , UDP , SCTP , RTP , DCCP ... |
3 - Netzwerkschicht | IPv4 , IPv6 , ARP , IPX ... |
2 - Bindeschicht | Ethernet , 802.11 WiFi , Token Ring , FDDI , ... |
1 - physikalische Schicht | Kabel, Glasfaser , Funkwellen ... |
Im TCP/IP- Protokollstack sitzt SSL zwischen der Anwendungsschicht (wie HTTP , FTP , SMTP usw.) und der TCP- Transportschicht .
Seine häufigste Verwendung bleibt jedoch unterhalb von HTTP. SSL wird von der Sitzungsschicht des Stapels implementiert, was zwei Konsequenzen hat:
Die Server- und Client-Authentifizierung kann über elektronische Zertifikate oder über Pre-Shared Secrets (oder Pre-Shared Key) erfolgen . Die Authentifizierung ist optional.
Über TLS ausgetauschte Nachrichten werden als Datensätze bezeichnet. Normalerweise werden diese Nachrichten in TCP-Datagramme gekapselt. Eine Variante von UDP existiert und heißt DTLS . Es gibt vier Arten von Datensätzen:
Die Sicherheit wird einerseits durch eine asymmetrische Verschlüsselung wie die RSA-Verschlüsselung erreicht , die nach Authentifizierung des öffentlichen Schlüssels des Servers die Bildung eines zwischen Client und Server geteilten Geheimnisses ermöglicht, andererseits durch eine symmetrische Verschlüsselung (viel schneller als asymmetrische Verschlüsselungen), wie AES , das in der Datenaustauschphase verwendet wird, wobei symmetrische Verschlüsselungsschlüssel aus dem gemeinsamen Geheimnis berechnet werden. Eine Hash-Funktion , wie SHA-1 , wird unter anderem auch verwendet, um die Datenintegrität und Authentifizierung (zB über HMAC ) sicherzustellen .
Genauer gesagt werden Anwendungsdatennachrichten mit einem Verschlüsselungsschlüssel und einem symmetrischen Blockverschlüsselungsalgorithmus wie AES 128 oder per Stream wie CHACHA20 verschlüsselt . Sie werden entweder durch eine HMAC- Funktion oder direkt durch die Betriebsart der symmetrischen Blockchiffre authentifiziert .
Chiffrierschlüssel und HMAC Schlüssel werden aus einem geheimen erzeugt ausgetauscht zwischen den beiden Peers ( pre-master secret) , die Zufallsdaten während der ausgetauschten Handshake - Phase und die Verwendung einer Schlüsselableitungsfunktion auf Basis von HMAC. Dieser geheime Austausch kann durch die Verwendung eines digitalen Signaturalgorithmus wie DSA oder des RSA-Algorithmus authentifiziert werden (oder nicht) .
Insgesamt gibt es fünf Arten von kryptografischen Schlüsseln, die während einer TLS-Sitzung verwendet werden:
Die verwendeten kryptografischen Suiten haben das folgende Format:
wobei KE einen geheimen Austauschalgorithmus, CIPHER einen symmetrischen Verschlüsselungsalgorithmus und HASH eine Hash-Funktion anzeigt . Die HMAC-Funktion wird von der Hash-Funktion abgeleitet.
Die kryptografische Suite TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 gibt beispielsweise an, dass der Peer den kurzlebigen Diffie-Hellman-Schlüsselaustauschalgorithmus für elliptische Kurven verwenden kann, die durch den ECDSA- Signaturalgorithmus , den symmetrischen AES 128-Verschlüsselungsalgorithmus im GCM- Modus und die SHA256-Hash-Funktion authentifiziert wurden .
In Version 1.2 kann der geheime Austauschalgorithmus RSA oder eine Variante des Diffie-Hellman-Algorithmus sein (authentifiziert oder nicht, kurzlebig oder nicht, auf elliptischen Kurven oder nicht), während für Version 1.3 nur der kurzlebige Diffie-Hellman-Algorithmus zulässig ist und die digitale Signaturfunktion wird in Erweiterungen zu den ClientHello-, ServerHello- und HelloRetryRequest-Nachrichten der Handshake- Phase angegeben .