GnuTLS
GnuTLS (GNU Transport Layer Security Library) ist eine freie Implementierung von SSL-, TLS- und DTLS-Protokollen zum Aufbau von verschlüsselten Netzwerkverbindungen.
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 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.
Kontroverse
BearbeitenObwohl 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]
Massive Sicherheitslücke zwischen 2018 und 2020
BearbeitenBei 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].
Einzelnachweise
Bearbeiten- ↑ gnutls 3.8.5.
- ↑ a b Nikos Mavrogiannopoulos: The perils of LGPLv3. gnutls.org, 26. März 2013, abgerufen am 18. November 2015: „LGPLv3 is the latest version of the GNU Lesser General Public License. It follows the successful LGPLv2.1 license, and was released by Free Software Foundation as a counterpart to its GNU General Public License version 3. The goal of the GNU Lesser General Public Licenses is to provide software that can be used by both proprietary and free software. This goal has been successfully handled so far by LGPLv2.1, and there is a multitude of libraries using that license. Now we have LGPLv3 as the latest, and the question is how successful is LGPLv3 on this goal? In my opinion, very little. If we assume that its primary goal is to be used by free software, then it blatantly fails that.“
- ↑ a b 2013-03-14 Nikos Mavrogiannopoulos (nmav@gnutls.org) * COPYING.LESSER, README: gnutls 3.1.10 is LGPLv2.1
- ↑ GnuTLS, copyright assignment, and GNU project governance auf lwn.net von Michael Kerrisk (20. Dezember 2012, englisch).
- ↑ Nikos Mavrogiannopoulos: gnutls is moving. 18. Dezember 2012, abgerufen am 11. Dezember 2012.
- ↑ GNUTLS is not going anywhere on lists.gnu.org "you cannot take GNUTLS out of the GNU Project." (11. Dezember 2012).
- ↑ Subject: GNU sed 4.2.2 released, and a rant from the maintainer ( vom 29. Januar 2016 im Internet Archive) auf gmane.comp.lang.smalltalk.gnu.general von Paolo Bonzini (vom 22. Dezember 2012, englisch).
- ↑ gnutls 3.6.4 Versionshinweise, lists.gnupg.org
- ↑ CVE-2020-13777, cve.mitre.org
- ↑ CVE-2020-13777: TLS 1.3 session resumption works without master key, allowing MITM, gitlab.com
- ↑ Schlüssel genullt: GnuTLS sofort aktualisieren, forum.au-ja.de
- ↑ gnutls 3.6.14 Versionshinweise, lists.gnupg.org