WolfSSL
wolfSSL (aussi connu sous les anciens noms CyaSSL et yet another SSL) est une bibliothèque logicielle SSL/TLS à faible empreinte mémoire. Elle est écrite dans le langage de programmation C ANSI et cible les environnements embarqués, systèmes temps réels et à ressources limitées, grâce à sa petite taille, sa vitesse et ses fonctionnalités. Elle est aussi implémentée dans les environnements d'exploitation standards comme Linux. 

Son modèle économique est exempt de royalties. wolfSSL implémente des standards industriels comme TLS 1.3 et DTLS 1.2. Elle est jusqu'à vingt fois plus petite qu'OpenSSL et supporte des algorithmes récents tels que ChaCha20, Curve25519, NTRUEncrypt, Blake2b et SHA-3. Les benchmarks et les retours utilisateur montrent une meilleure performance en utilisant wolfSSL au lieu d'OpenSSL.

yaSSL, un prédécesseur de wolfSSL, est une bibliothèque cliente SSL, écrite en C++, pour les environnements embarqués et les systèmes d'exploitation temps réel (RTOS) ayant des ressources limitées.

Plateformes 
La bibliothèque embarquée wolfSSL fonctionne sans problème avec des environnements de bureau, d'entreprise et d'informatique en nuage. 

wolfSSL soutient les normes d'industrie jusqu'au TLS 1.3 actuel ainsi que DTLS 1.2. Elle est jusqu'à vingt fois plus petite qu'OpenSSL et offre une API simple ainsi qu'une couche compatible avec la bibliothèque OpenSSL. Elle est sécurisée par la bibliothèque de cryptographie wolfCrypt.

wolfSSL est actuellement disponible pour Win32/64, Linux, macOS, Solaris, Threadx, VxWorks, FreeBSD, NetBSD, OpenBSD, embedded Linux, WinCE, Haiku, OpenWrt, iPhone, Android, Nintendo Wii et Gamecube avec le soutien DevKitPro, QNX, MontaVista, Tron variants, NonStop, OpenCL, MicroC/OS-II de Micrium, FreeRTOS, SafeRTOS, Freescale MQX, Nucleus, TinyOS, TI-RTOS, HP-UX, uTasker, ainsi qu’embOS.

Historique 
La genèse de yaSSL, ou yet another SSL, remonte à 2004. OpenSSL était disponible à l'époque et était sous licence double « OpenSSL License » et « SSLeay License ». La bibliothèque alternative yaSSL a été développée et mise à disposition sous deux licences, l'une commerciale et l'autre GPL. yaSSL offrait une API plus moderne, le support des développeurs d'un produit commercial et était complète avec une couche de compatibilité OpenSSL. Le premier utilisateur majeur de wolfSSL / CyaSSL / yaSSL a été MySQL. Par l'intermédiaire d'un bundle avec MySQL, yaSSL a atteint des volumes de distribution extrêmement élevés (plusieurs millions).

Protocoles 

La bibliothèque wolfSSL légère met en œuvre les protocoles suivants : 
 SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3
 DTLS 1.0, DTLS 1.2

Le protocole SSL 2.0 a été interdit en 2011 par la  et wolfSSL ne le prend pas en charge. 

Le protocole SSL 3.0 a été interdit en 2015 par . En réponse à l'attaque POODLE, SSL 3.0 a été désactivé par défaut depuis la version 3.6.6 de wolfSSL mais peut être activé via une option de compilation.

Algorithmes

wolfCrypt 
wolfSSL utilise les bibliothèques cryptographiques suivantes :

Par défaut, wolfSSL utilise les services cryptographiques fournis par wolfCrypt. wolfCrypt met en œuvre les algorithmes RSA, ECC, DSS, Diffie–Hellman, , NTRUEncrypt, DES, Triple DES, AES (CBC, CTR, CCM, GCM), Camellia, IDEA, ARC4, , ChaCha20, MD2, MD4, MD5, SHA-1, SHA-2, , RIPEMD-160, . wolfCrypt fournit également un générateur de nombres aléatoires, le support des grands entiers, l'encodage/décodage en base 16 et 64. Un algorithme de chiffrement expérimental par flot appelé Rabbit, qui est un algorithme dans le domaine public émanant du projet eSTREAM de l'Union Européenne, est également inclus. Rabbit est potentiellement utile pour ceux qui chiffrent des flux dans des environnements à forte demande et requérant des performances de vitesses élevées.

wolfCrypt inclut également le support des récents algorithmes Curve25519 et Ed25519.

wolfCrypt est utilisé comme implémentation cryptographique de bas niveau pour plusieurs logiciels et bibliothèques connus, dont notamment  MIT Kerberos (où il peut être activé à l'aide d'une option de compilation).

NTRUEncrypt 
CyaSSL+ inclut l'algorithme de chiffrement à clef publique NTRUEncrypt. L'ajout de NTRUEncrypt dans CyaSSL+ est le résultat d'un partenariat entre yaSSL et Security Innovation. NTRUEncrypt fonctionne très bien dans les environnements mobiles et embarqués grâce à la taille réduite des clefs requises pour obtenir le même niveau de sécurité que d'autres algorithmes de chiffrement à clef publique. De plus, NTRUEncrypt n'est pas connu pour être vulnérable aux attaques quantiques. Plusieurs suites de chiffrement utilisant NTRUEncrypt sont disponibles dans CyaSSL+ avec AES-256, RC4, et HC-128.

Plates-formes d'accélération matérielle prises en charge 
Les tables ci-dessous présentent le support par wolfSSL de diverses plates-formes matérielles avec différents algorithmes.

- La mention « Toutes » signifie que des blocs d'une taille de 128, 192, et 256 bits sont supportés.

Octroi de licence 
wolfSSL est en code source ouvert, sous licence GNU General Public License GPLv2.

Notes et références

Voir aussi 
 Transport Layer Security
 GnuTLS
 OpenSSL

Liens externes 
 wolfSSL/CyaSSL Homepage
 wolfSSL Now With ChaCha20 and Poly1305

Protocole de communication chiffrée
Protocole réseau sur la couche session
wolfSSL ( aussi connu sous les anciens noms CyaSSL et yet another SSL ) est une bibliothèque logicielle SSL / TLS à faible empreinte mémoire . Elle est écrite dans le langage de programmation C ANSI et cible les environnements embarqués , systèmes temps réels et à ressources limitées , grâce à sa petite taille , sa vitesse et ses fonctionnalités . Elle est aussi implémentée dans les environnements d' exploitation standards comme Linux . Son modèle économique est exempt de royalties . wolfSSL implémente de les standards industriels comme TLS3 et DTLS2 . Elle est jusqu' à vingt fois plus petite qu' OpenSSL et supporte de les algorithmes récents tels que ChaCha20 , Curve25519 , NTRUEncrypt , Blake2b et SHA -3 . Les benchmarks et les retours utilisateur montrent une meilleure performance en utilisant wolfSSL à le lieu d' OpenSSL . yaSSL , un prédécesseur de wolfSSL , est une bibliothèque cliente SSL , écrite en C++ , pour les environnements embarqués et les systèmes d' exploitation temps réel ( RTOS ) ayant de les ressources limitées . Plateformes La bibliothèque embarquée wolfSSL fonctionne sans problème avec de les environnements de bureau , d' entreprise et d' informatique en nuage . wolfSSL soutient les normes d' industrie jusqu' à le TLS3 actuel ainsi que DTLS2 . Elle est jusqu' à vingt fois plus petite qu' OpenSSL et offre une API simple ainsi qu' une couche compatible avec la bibliothèque OpenSSL . Elle est sécurisée par la bibliothèque de cryptographie wolfCrypt . wolfSSL est actuellement disponible pour Win32 / 64 , Linux , macOS , Solaris , Threadx , VxWorks , FreeBSD , NetBSD , OpenBSD , embedded Linux , WinCE , Haiku , OpenWrt , iPhone , Android , Nintendo Wii et Gamecube avec le soutien DevKitPro , QNX , MontaVista , Tron variants , NonStop , OpenCL , MicroC/ OS-II de Micrium , FreeRTOS , SafeRTOS , Freescale MQX , Nucleus , TinyOS , TI-RTOS , HP-UX , uTasker , ainsi qu’ embOS . Historique La genèse de yaSSL , ou yet another SSL , remonte à OpenSSL était disponible à l' époque et était sous licence double « OpenSSL License » et « SSLeay License » . La bibliothèque alternative yaSSL a été développée et mise à disposition sous deux licences , l' une commerciale et l' autre GPL . yaSSL offrait une API plus moderne , le support de les développeurs d' un produit commercial et était complète avec une couche de compatibilité OpenSSL . Le premier utilisateur majeur de wolfSSL / CyaSSL / yaSSL a été MySQL . Par l' intermédiaire d' un bundle avec MySQL , yaSSL a atteint de les volumes de distribution extrêmement élevés ( plusieurs millions ) . Protocoles La bibliothèque wolfSSL légère met en œuvre les protocoles suivants \ : SSL0 , TLS0 , TLS1 , TLS2 , TLS3 DTLS0 , DTLS2 Le protocole SSL0 a été interdit enpar la et wolfSSL ne le prend pas en charge . Le protocole SSL0 a été interdit enpar \ . En réponse à l' attaque POODLE , SSL0 a été désactivé par défaut depuis la version6.6 de wolfSSL mais peut être activé via une option de compilation . Algorithmes wolfCrypt wolfSSL utilise les bibliothèques cryptographiques suivantes \ : Par défaut , wolfSSL utilise les services cryptographiques fournis par wolfCrypt. wolfCrypt met en œuvre les algorithmes RSA , ECC , DSS , Diffie–Hellman , , NTRUEncrypt , DE LES , Triple DE LES , AES ( CBC , CTR , CCM , GCM ) , Camellia , IDEA , ARC4 , , ChaCha20 , MD2 , MD4 , MD5 , SHA-1 , SHA-2 , , RIPEMD-160 , \ . wolfCrypt fournit également un générateur de nombres aléatoires , le support de les grands entiers , l' encodage / décodage en baseet Un algorithme de chiffrement expérimental par flot appelé Rabbit , qui est un algorithme dans le domaine public émanant de le projet eSTREAM de l' Union Européenne , est également inclus . Rabbit est potentiellement utile pour ceux qui chiffrent de les flux dans de les environnements à forte demande et requérant de les performances de vitesses élevées . wolfCrypt inclut également le support de les récents algorithmes Curve25519 et Ed25519 . wolfCrypt est utilisé comme implémentation cryptographique de bas niveau pour plusieurs logiciels et bibliothèques connus , dont notamment MIT Kerberos ( où il peut être activé à l' aide d' une option de compilation ) . NTRUEncrypt CyaSSL + inclut l' algorithme de chiffrement à clef publique NTRUEncrypt . L' ajout de NTRUEncrypt dans CyaSSL + est le résultat d' un partenariat entre yaSSL et Security Innovation . NTRUEncrypt fonctionne très bien dans les environnements mobiles et embarqués grâce à la taille réduite de les clefs requises pour obtenir le même niveau de sécurité que d' autres algorithmes de chiffrement à clef publique . De plus , NTRUEncrypt n' est pas connu pour être vulnérable à les attaques quantiques . Plusieurs suites de chiffrement utilisant NTRUEncrypt sont disponibles dans CyaSSL + avec AES-256 , RC4 , et HC-128 . Plates-formes d' accélération matérielle prises en charge Les tables ci-dessous présentent le support par wolfSSL de diverses plates-formes matérielles avec différents algorithmes . - La mention « Toutes » signifie que de les blocs d' une taille de etbits sont supportés . Octroi de licence wolfSSL est en code source ouvert , sous licence GNU General Public License GPLv2 . Notes et références Voir aussi Transport Layer Security GnuTLS OpenSSL Liens externes wolfSSL / CyaSSL Homepage wolfSSL Now With ChaCha20 and Poly1305 Protocole de communication chiffrée Protocole réseau sur la couche session