TLS/Geschichte

Aus Foxwiki

Geschichte

Die erste Protokollversion von TLS wurde ab August 1986 im Rahmen des im September 1987 erstmals beschrieben Projektes Secure Data Network System (SDNS) entwickelt

  • 1994, neun Monate nach der ersten Ausgabe von Mosaic, dem ersten verbreiteten Webbrowser, stellte Netscape Communications die erste Version von SSL (1.0) fertig
  • Fünf Monate später wurde zusammen mit einer neuen Ausgabe des Netscape Navigator die nächste Version SSL 2.0 veröffentlicht
  • Ende 1995 veröffentlichte Microsoft die erste Version seines Webbrowsers Internet Explorer
  • Kurz darauf wurde auch die erste Version ihres SSL-Pendants bekannt, PCT 1.0 (Private Communication Technology)
  • PCT hatte einige Vorteile gegenüber SSL 2.0, die später in SSL 3.0 aufgenommen wurden
  • Im Sommer 1996 übergab Netscape die Versionskontrolle über sein Protokoll SSL 3.0 an die IETF zur Entwicklung eines Internet-Standards

Ab November 1996 entwickelte die IETF TLS WG auf Basis von Netscapes SSL 3.0 das verbesserte Protokoll „Transport Layer Security (TLS) Protocol Version 1.0“ (interne Versionsnummer 3.1), welches schließlich im Januar 1999 als RFC 2246 veröffentlicht wurde

  • Das finale Spezifikationsdokument von Netscapes SSL 3.0 war viele Jahre schwer zu finden und wurde im August 2011 nachträglich veröffentlicht als RFC 6101
  • Später wurde TLS durch weitere RFCs erweitert:
    • RFC 2712 – Addition of Kerberos Cipher Suites to Transport Layer Security (TLS)
    • RFC 2817 – Upgrading to TLS Within HTTP/1.1 erläutert die Benutzung des Upgrade-Mechanismus in HTTP/1.1, um Transport Layer Security (TLS) über eine bestehende TCP-Verbindung zu initialisieren
  • Dies erlaubt es, für unsicheren und für sicheren HTTP-Verkehr die gleichen „well-known“ TCP Ports (80 bzw. 443) zu benutzen
    • RFC 2818 – HTTP Over TLS trennt sicheren von unsicherem Verkehr durch getrennte Server-TCP-Ports
    • RFC 3268 – Advanced Encryption Standard (AES) Ciphersuites for Transport Layer Security (TLS) nutzt die Erweiterbarkeit von TLS und fügt den symmetrischen Verschlüsselungsalgorithmen (RC2, RC4, International Data Encryption Algorithm (IDEA), Data Encryption Standard (DES) und Triple DES) den Advanced Encryption Standard (AES) hinzu
    • RFC 3546 – Transport Layer Security (TLS) Extensions führt das Konzept der Erweiterungen ein, wodurch optionale Datenfelder oder Header vor allem bei der anfänglichen Aushandlung übertragen werden können
  • Eine dieser Erweiterungen ist Server Name Indication
  • Im April 2006 wurde in RFC 4346 die Version 1.1 von TLS standardisiert und damit RFC 2246 obsolet
  • In TLS 1.1 wurden kleinere Sicherheitsverbesserungen vorgenommen und Unklarheiten beseitigt
  • Im August 2008 erschien mit RFC 5246 die Version 1.2 von TLS, welche RFC 4346 obsolet machte
  • Hierbei wurde die Festlegung auf MD5/SHA-1 in der Pseudozufallsfunktion (PRF) und bei signierten Elementen ersetzt durch flexiblere Lösungen, bei denen die Hash-Algorithmen spezifiziert werden können
  • Im Februar 2015 wurde RFC 7465
  • Im Mai 2015 wurden mit RFC 7525

Empfehlungen zum sicheren Einsatz von TLS und DTLS veröffentlicht

  • Demnach sollen SSLv2, SSLv3, RC4 und sonstige durch Exportbeschränkungen auf unter 112 Bit Schlüssellänge beschränkte Verschlüsselungsalgorithmen nicht verwendet werden
  • Vom Einsatz von 3DES zur Verschlüsselung und RSA zum Schlüsselaustausch mit statischen Parametern wird abgeraten
  • Empfohlen werden Cipher Suiten, die zum Schlüsselaustausch Ephemeral Diffie-Hellman kombiniert mit RSA verwenden, was Forward Secrecy (gegen späteres nachträgliches Entschlüsseln) bietet, zur Verschlüsselung AES im Galois/Counter Mode mit 128 oder 256 Bit Schlüssellänge sowie die Hashfunktion SHA-256 oder SHA-384 für die Pseudozufallsfunktion von TLS
  • Im August 2018 wurde in RFC 8446 TLS-Version 1.3 veröffentlicht, das seit 2014 entwickelt wurde
  • Im Oktober 2018 gaben die Hersteller der Browser Firefox, Chrome, Edge und Safari an, die in die Jahre gekommenen Protokolle TLS 1.0 und 1.1 beginnend ab März 2020 nicht mehr zu unterstützen

TMP

Geschichte

  • Die erste Protokollversion von TLS wurde ab August 1986 im Rahmen des im September 1987 erstmals beschrieben Projektes Secure Data Network System (SDNS) entwickelt
  • 1994, neun Monate nach der ersten Ausgabe von Mosaic, dem ersten verbreiteten Webbrowser, stellte Netscape Communications die erste Version von SSL (1.0) fertig
  • Fünf Monate später wurde zusammen mit einer neuen Ausgabe des Netscape Navigator die nächste Version SSL 2.0 veröffentlicht
  • Ende 1995 veröffentlichte Microsoft die erste Version seines Webbrowsers Internet Explorer
  • Kurz darauf wurde auch die erste Version ihres SSL-Pendants bekannt, PCT 1.0 (Private Communication Technology)
  • PCT hatte einige Vorteile gegenüber SSL 2.0, die später in SSL 3.0 aufgenommen wurden
  • Im Sommer 1996 übergab Netscape die Versionskontrolle über sein Protokoll SSL 3.0 an die IETF zur Entwicklung eines Internet-Standards
  • Ab November 1996

entwickelte die IETF TLS WG auf Basis von Netscapes SSL 3.0 das verbesserte Protokoll „Transport Layer Security (TLS) Protocol Version 1.0“ (interne Versionsnummer 3.1), welches schließlich im Januar 1999 als RFC 2246 veröffentlicht wurde

  • Das finale Spezifikationsdokument von Netscapes SSL 3.0 war viele Jahre schwer zu finden und wurde im August 2011 nachträglich veröffentlicht als RFC 6101
  • Später wurde TLS durch weitere RFCs erweitert:
    • RFC 2712 – Addition of Kerberos Cipher Suites to Transport Layer Security (TLS)
    • RFC 2817 – Upgrading to TLS Within HTTP/1.1 erläutert die Benutzung des Upgrade-Mechanismus in HTTP/1.1, um Transport Layer Security (TLS) über eine bestehende TCP-Verbindung zu initialisieren
  • Dies erlaubt es, für unsicheren und für sicheren HTTP-Verkehr die gleichen „well-known“ TCP Ports (80 bzw. 443) zu benutzen
    • RFC 2818 – HTTP Over TLS

trennt sicheren von unsicherem Verkehr durch getrennte Server-TCP-Ports

    • RFC 3268 – Advanced Encryption Standard (AES) Ciphersuites for Transport Layer Security (TLS)

nutzt die Erweiterbarkeit von TLS und fügt den symmetrischen Verschlüsselungsalgorithmen (RC2, RC4, International Data Encryption Algorithm (IDEA), Data Encryption Standard (DES) und Triple DES) den Advanced Encryption Standard (AES) hinzu

    • RFC 3546 – Transport Layer Security (TLS) Extensions führt das Konzept der Erweiterungen ein, wodurch optionale Datenfelder oder Header vor allem bei der anfänglichen Aushandlung übertragen werden können
  • Eine dieser Erweiterungen ist Server Name Indication
  • Im April 2006 wurde in RFC 4346 die Version 1.1 von TLS standardisiert und damit RFC 2246 obsolet
  • In TLS 1.1 wurden kleinere Sicherheitsverbesserungen vorgenommen und Unklarheiten beseitigt
  • Im August 2008 erschien mit RFC 5246 die Version 1.2 von TLS, welche RFC 4346 obsolet machte
  • Hierbei wurde die Festlegung auf MD5/SHA-1 in der Pseudozufallsfunktion (PRF) und bei signierten Elementen ersetzt durch flexiblere Lösungen, bei denen die Hash-Algorithmen spezifiziert werden können
  • Im Februar 2015 wurde RFC 7465
  • Im Mai 2015 wurden mit RFC 7525

Empfehlungen zum sicheren Einsatz von TLS und DTLS veröffentlicht

  • Demnach sollen SSLv2, SSLv3, RC4 und sonstige durch Exportbeschränkungen auf unter 112 Bit Schlüssellänge beschränkte Verschlüsselungsalgorithmen nicht verwendet werden
  • Vom Einsatz von 3DES zur Verschlüsselung und RSA zum Schlüsselaustausch mit statischen Parametern wird abgeraten
  • Empfohlen werden Cipher Suiten, die zum Schlüsselaustausch Ephemeral Diffie-Hellman kombiniert mit RSA verwenden, was Forward Secrecy (gegen späteres nachträgliches Entschlüsseln) bietet, zur Verschlüsselung AES im Galois/Counter Mode mit 128 oder 256 Bit Schlüssellänge sowie die Hashfunktion SHA-256 oder SHA-384 für die Pseudozufallsfunktion von TLS
  • Im August 2018 wurde in RFC 8446 TLS-Version 1.3 veröffentlicht, das seit 2014 entwickelt wurde
  • Im Oktober 2018 gaben die Hersteller der Browser Firefox, Chrome, Edge und Safari an, die in die Jahre gekommenen Protokolle TLS 1.0 und 1.1 beginnend ab März 2020 nicht mehr zu unterstützen