Login
Newsletter
Werbung

Do, 9. August 2018, 15:19

Software::Security

Fizz: Schnelle freie Implementation von TLS 1.3

Facebook hat für den eigenen Gebrauch eine Bibliothek entwickelt, die TLS 1.3 implementiert. Ab sofort ist die Bibliothek, Fizz genannt, als freie Software verfügbar.

Mirko Lindner

TLS (Transport Layer Security) ist das Protokoll, mit dem sich andere Protokolle verschlüsselt abwickeln lassen. Die Entwicklung begann in den 1990er-Jahren unter dem Namen SSL. Nach TLS 1.0 und 1.1, die nach Möglichkeit nicht mehr verwendet werden sollen, ist seit zehn Jahren TLS 1.2 die jüngste offizielle Version. Seit mehreren Jahren ist jedoch TLS 1.3 in Entwicklung, das zwar noch nicht offiziell freigegeben ist, aber seit März 2018 als Standardisierungsvorschlag vorliegt. Einige Anwendungen unterstützen TLS 1.3 schon jetzt.

Auch Facebook, das an der Standardisierung von TLS 1.3 mitwirkte, nutzt TLS 1.3 bereits kräftig. Dazu entwickelte das Unternehmen zunächst für den eigenen Gebrauch die Bibliothek Fizz. Fizz ist nach Angaben der Entwickler sehr schnell und soll alle Vorteile von TLS 1.3 nutzen. Der Code wurde in C++14 geschrieben. Da Fizz laut den Entwicklern bei Facebook bereits weit verbreitet im Einsatz ist, dürfte der Code entsprechend robust sein. Jetzt hat Facebook die Bibliothek als freie Software unter der Drei-Klausel-BSD-Lizenz veröffentlicht, um, wie die Entwickler schreiben, den Einsatz von TLS 1.3 im Internet zu fördern.

Zu den Vorteilen von TLS 1.3 zählen unter anderem neue und stärkere kryptografische Algorithmen und der Verzicht auf einige nicht mehr so sichere und veraltete Algorithmen, die Verschlüsselung der Handshake-Pakete, um die Zertifikate geheim zu halten, ein anderes Erzeugungsverfahren für geheime Schlüssel und einiges mehr. Für die Benutzer dürfte außerdem von großer Bedeutung sein, dass der Verbindungsaufbau mit deutlich weniger Paketen abgewickelt werden kann und damit die Latenzzeit senkt. Im Idealfall kommt ein 0-RTT-Verfahren zum Einsatz, das die Verbindung mit nur einem Paket und dem zugehörigen Antwortpaket etabliert.

Neben dem 0-RTT-Verfahren nutzt Fizz weitere Optimierungen, um möglichst effizient zu arbeiten. Standardmäßig verwendet es asynchrone Operationen, beim Schreiben von Paketen kommt ein Zero Copy-Verfahren zum Einsatz, um Kopieroperationen zu vermeiden, und schnelles Senden der ersten Daten (»Early Data«), wobei letzteres einige Risiken birgt und nur verwendet werden sollte, wenn die Risiken unter Kontrolle sind. Die Entwickler erheben zudem den Anspruch, dass Fizz besonders sorgfältig gegen Programmierfehler abgesichert wurde. Unter anderem wurde, um Probleme mit dem komplexen TLS-Zustandsautomaten zu vermeiden, die in anderen Implementationen bereits zu schweren Sicherheitslücken geführt haben, der Zustandsautomat im Code explizit definiert.

Werbung
Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung