GnuTLS
| |
---|---|
Basisdaten
| |
Entwickler | Free Software Foundation |
Erscheinungsjahr | 2003 |
Aktuelle Version | 3.8.5[1] (4. April 2024) |
Betriebssystem | Unix-Derivate |
Programmiersprache | C |
Kategorie | Kryptographie |
Lizenz | GPL[2]/LGPLv2[3] |
deutschsprachig | nein |
www.gnutls.org |
GnuTLS (GNU Transport Layer Security Library) ist eine freie Implementierung von SSL-, TLS- und DTLS-Protokollen zum Aufbau von verschlüsselten Netzwerkverbindungen.
GnuTLS bietet einen ähnlichen Funktionsumfang wie OpenSSL, ist aber unter GPL bzw. LGPLv2[2][3] lizenziert und kann damit im Gegensatz zu OpenSSL auch auf Systemen, bei denen OpenSSL nicht zum normalen Distributionsumfang gehört, ohne weiteres in GPL-lizenzierte Software wie Gnome, Exim, Lynx u. ä. eingebunden werden.
Zusätzlich zu den meisten in OpenSSL implementierten Funktionen unterstützt GnuTLS TLSv1.1, TLSv1.2, zlib-Kompression, Authentifizierung über Secure Remote Protocol (SRP), X.509- und OpenPGP-Schlüssel. Mit GnuTLS wird die Konsolenanwendung gnutls-cli
, das Dienstprogramm gnutls-serv
und zur Fehlerbeseitigung der TLS/SSL-Verbindungen das Anwendungsprogramm gnutls-cli-debug
eingerichtet.
Obwohl ursprünglich als GNU-Projekt begonnen, löste im Dezember 2012 der Hauptentwickler Nikos Mavrogiannopoulos GNU TLS vom GNU-Projekt los. Grund waren Kontroversen mit der Free Software Foundation über Policies.[4][5] Ein Widerspruch von Richard Stallman, welcher Forking empfahl, blieb wirkungslos.[6] Im selben Monat folgte der GNU-Sed-Maintainer Paolo Bonzini und legte seine Funktionen nieder.[7]
Bei GnuTLS 3.6.4[8], welches am 24. September 2018 veröffentlicht wurde, hatte eine Regression die Implementierung des TLS-Protokolls beschädigt (CVE-2020-13777[9]). Aufgrund dieses Fehlers erstellte der TLS-Server keinen sicheren Schlüssel für das Sitzungsticket und nutzte für Ver- und Entschlüsselung bis zur ersten Schlüsselrotation ausschließlich Nullen.[10] In der Protokollversion TLS 1.3 können Angreifer die Authentifizierung umgehen und fremde Sitzungen übernehmen. Bei TLS 1.2 ist es sogar möglich, gespeicherte Aufzeichnungen früherer Sitzungen nachträglich zu entschlüsseln.[11] Behoben wurde der Fehler am 3. Juni 2020 in GnuTLS 3.6.14[12].