RusTLS a été initié en 2016 par Joseph Birr-Pixton. Il s'agit d'une implémentation de TLS (Transport Layer Security) écrite en Rust. Et fait remarquable, RusTLS selon les derniers benchmarksde son développeur, ferait mieux, bien mieux que le standard OpenSSL.
Rust est l'oeuvre de Mozilla et sa première release date de 2010 (la première version stable de 2015), c'est donc un langage relativement jeune, mais déjà mature. Rust propose comme l'un de ses principaux avantages de palier des problèmes assez classiques de gestion de la mémoire, sans pour autant utiliser de ramasse miettes (garbage collector). La gestion de la mémoire approximative que l'on retrouve fréquemment dans du code en C et C++ peut introduire des problèmes de sécurité. Rust fait par exemple appel à des variables par défauts immuables, et met en pratique les concepts de propriété (ownership) et d'emprunt (borrowing) pour toutes valeurs.
Rust est un langage compilé multi-paradigme qui se veut "sécurisé, concurrent et pratique", et s'insert élégament dans l'écosystème C/C++ à la différence de Java ou même Golang. Un peu raillé à ses début, le vent a bien tourné pour Rust à en croire l'engouement qu'il suscite depuis maintenant 5 ans au sein de la communauté StackOverflow. Joseph Birr-Pixton a en grande partie fait le choix de Rust pour ces problèmes de sécurité liés à la corruption de la mémoire.
Rust a également le bon goût d'être très performant et c'est précisément le point qui nous intéresse pour RusTLS. Joseph Birr-Pixton a récemment publié les résultats de ses tests comparatifs de performances.
A l'établissement d'une première connexion RusTLS est 10% plus rapide qu'OpenSSL, de 20 à 40% plus rapide lors d'une nouvelles connexion client... et il fait encore mieux sur des sessions pour lesquelles il y a déjà eu une négociation TLS préalable : de 10 à 20% pour la reprise d'une session serveur et de 30 à 70% pour la reprise d'une session client. Côté transfert de données, même constat car toujours selon Joseph Birr-Pixton, l'envoi de données est 15% plus rapide et la réception 5% plus rapide. Cerise sur le gateau, RustTLS se montre moitié moins gourmand en mémoire.
Nous retiendrons donc qu'en plus d'être une librairie cryptographique robuste, sécurisée, performante et exploitable dés aujourd'hui par l'industrie logicielle, RusTLS repose sur un langage qui séduit de plus en plus de gros acteurs de cette même industrie pour sa faculté à interagir avec le système à un bas niveau de manière plus sécurisée qu'en C, C++ Java ou même en Go.
Nous n'avons plus qu'à attendre un bel audit de sécurité du code et son intégration dans les distributions majeures de Linux.