Rust für Kryptografie

Die Programmiersprache Rust [1] wird immer populärer und wird zunehmend zur Kryptografie eingesetzt. Für Rust spricht, dass die Sprache eine sehr sichere Speicherverwaltung verspricht, wodurch Fehler wie Pufferüberläufe und use after free unwahrscheinlicher werden. Angesichts der einer der bekanntesten TLS-Schwachstellen, dem OpenSSL Heartbleed-Bug [2], der die Speichersicherheit verletzt, ist diese Entwicklung nicht überraschend.

So wurde vor Kurzem für die curl-Bibliothek ein neues TLS-Backend mit Rustls [3] angekündigt [4]. Auch Hyper [5], eine in Rust geschriebene HTTP-Bibliothek, soll als Backend für Curl bereitgestellt werden [6].

Auch die Internet Security Research Group (ISRG) [7] kündigte an, dass sie ein Rust-basiertes TLS-Modul für den Apache-Webserver unterstützen werden [8]. Finanziert wird dies im Rahmen der Bemühungen von Google und der ISRG, Portierungen kritischer Open-Source-Software in speichersichere Sprachen zu überführen [9].

Der Umzug des Kryptographie-Pakets von Python führte jedoch zu heftigen Diskussionen un der Community, da vor allem einige ältere Plattformen ohne Rust-Compiler nicht mehr unterstützt würden [10]. Das cryptography [11]-Projekt hat bereits begonnen, Teile seines ASN1-Parsing-Codes in Rust zu reimplementieren, [12] [13] da ASN1-Parser in der Vergangenheit häufig Schwachstellen bei der Speichersicherheit aufwiesen.


[1]Rust
[2]The Heartbleed Bug
[3]Rustls
[4]curl supports rustls
[5]Hyper
[6]Rust in curl with hyper
[7]Internet Security Research Group
[8]A Memory Safe TLS Module for the Apache HTTP Server
[9]Google Security Blog: Mitigating Memory Safety Issues in Open Source Software
[10]Dependency on rust removes support for a number of platforms #5771
[11]github.com/pyca/cryptography
[12]Port a tiny tiny bit of the ASN.1 parsing to Rust
[13]Rust in pyca/cryptography