
rustls v/0.23.44
Bibliothèque TLS à sûreté mémoire écrite en Rust, implémentant TLS 1.2 et 1.3 avec des fournisseurs cryptographiques enfichables, des modes client/serveur et une authentification par certificats.
Rustls est une bibliothèque TLS moderne écrite en Rust.
Statut
Rustls est utilisé en production dans de nombreuses organisations et projets. Nous visons à maintenir une stabilité raisonnable de la surface d'API, mais celle-ci peut évoluer à mesure que nous apportons des modifications pour accueillir de nouvelles fonctionnalités ou améliorations de performances.
Nous avons une feuille de route pour nos futurs projets. Nous disposons également de benchmarks pour prévenir les régressions de performances et vous permettre d'évaluer rustls sur votre matériel cible.
Si vous souhaitez contribuer, veuillez consulter CONTRIBUTING.md.
Les mainteneurs prononcent "rustls" comme rustles (plutôt que rust-TLS), mais nous n'avons pas d'opinion tranchée à ce sujet.
Journal des modifications
La liste détaillée des changements de chaque version est disponible à l'adresse https://github.com/rustls/rustls/releases.
Documentation
Approche
Rustls est une bibliothèque TLS qui vise à offrir un bon niveau de sécurité cryptographique, ne nécessite aucune configuration pour atteindre cette sécurité et ne fournit par défaut aucune fonctionnalité unsafe ni cryptographie obsolète.
Rustls implémente TLS1.2 et TLS1.3 pour les clients comme pour les serveurs. Voir la liste complète des fonctionnalités du protocole.
Prise en charge des plateformes
Bien que Rustls soit indépendant de la plateforme, il nécessite l'utilisation de primitives
cryptographiques pour implémenter les algorithmes cryptographiques utilisés dans TLS. Dans Rustls, un
crypto::CryptoProvider représente un ensemble d'implémentations de primitives cryptographiques.
En fournissant une instance personnalisée de la structure crypto::CryptoProvider, vous
pouvez remplacer toutes les dépendances cryptographiques de rustls. C'est une voie vers la portabilité
sur un plus large éventail d'architectures et d'environnements, ou vers le respect d'exigences de
conformité. Voir la documentation de crypto::CryptoProvider pour plus de détails.
Fournisseurs cryptographiques
Depuis Rustls 0.22, il est possible de choisir le fournisseur des primitives cryptographiques utilisées par Rustls. Cela peut être intéressant si vous avez des exigences spécifiques en matière de plateforme, de conformité ou de fonctionnalités.
Depuis la version 0.24, les utilisateurs doivent fournir explicitement un fournisseur cryptographique lors de la construction des instances ClientConfig ou
ServerConfig. Voir la documentation de crypto::CryptoProvider pour plus de détails.
Fournisseurs de première partie
Le projet Rustls maintient actuellement deux fournisseurs cryptographiques :
rustls-aws-lc-rs- un fournisseur qui utilise la crateaws-lc-rspour la cryptographie. Bien que ce fournisseur puisse être plus difficile à compiler sur certaines plateformes, il offre d'excellentes performances et un ensemble de fonctionnalités complet (y compris des algorithmes post-quantiques).rustls-ring- un fournisseur qui utilise la crateringpour la cryptographie. Ce fournisseur est plus facile à compiler sur diverses plateformes, mais son ensemble de fonctionnalités est plus limité (par exemple, il ne prend pas en charge les algorithmes post-quantiques).
L'équipe Rustls recommande d'utiliser la crate rustls-aws-lc-rs pour son ensemble de fonctionnalités complet
et ses performances. Voir la FAQ aws-lc-rs pour plus de détails sur les
contraintes de prise en charge des plateformes/architectures dans aws-lc-rs.
Voir la documentation de crypto::CryptoProvider pour plus de détails sur la façon dont les fournisseurs sont
sélectionnés.
(Pour les versions de rustls antérieures à 0.24, ces deux fournisseurs étaient inclus dans la crate rustls,
et des fonctionnalités Cargo étaient utilisées pour sélectionner le fournisseur préféré. La fonctionnalité aws-lc-rs
était activée par défaut.)
Fournisseurs tiers
La communauté a également commencé à développer des fournisseurs tiers pour Rustls :
boring-rustls-provider- un fournisseur en cours de développement qui utiliseboringsslpour la cryptographie.rustls-ccm- ajoute des suites de chiffrement AES-CCM (TLS 1.2 et 1.3) utilisantRustCrypto, pour les protocoles IoT/appareils contraints (IEEE 2030.5, Matter, RFC 7925).rustls-graviola- un fournisseur qui utilisegraviolapour la cryptographie.rustls-mbedtls-provider- un fournisseur qui utilisembedtlspour la cryptographie.rustls-openssl- un fournisseur qui utilise OpenSSL pour la cryptographie.rustls-rustcrypto- un fournisseur expérimental qui utilise les primitives cryptographiques deRustCryptopour la cryptographie.rustls-symcrypt- un fournisseur qui utilise la bibliothèque SymCrypt de Microsoft.rustls-wolfcrypt-provider- un fournisseur en cours de développement qui utilisewolfCryptpour la cryptographie.
Voir la section Création d'un CryptoProvider personnalisé de la documentation pour plus d'informations sur ce sujet.