Article de reference

Mbed TLS

( Learn how and when to remove this message ) Mbed TLS (anciennement PolarSSL ) est une implémentation des protocoles TLS et SSL ainsi que des algorithmes cryptographiques et du...

(Learn how and when to remove this message)

Mbed TLS (anciennement PolarSSL ) est une implémentation des protocoles TLS et SSL ainsi que des algorithmes cryptographiques et du code de support correspondants requis. Il est distribué sous la licence Apache version 2.0. Il est indiqué sur le site Web que Mbed TLS vise à être « facile à comprendre, à utiliser, à intégrer et à développer ».

Histoire

La bibliothèque SSL PolarSSL est la continuation officielle de la bibliothèque SSL XySSL . XySSL a été créée par le « white hat hacker » français Christophe Devine et a été publiée pour la première fois le 1er novembre 2006, sous les licences GNU GPL v2 et BSD . En 2008, Christophe Devine n'était plus en mesure de prendre en charge XySSL et a permis à Paul Bakker de créer le fork officiel, nommé PolarSSL. En novembre 2014, PolarSSL a été acquise par ARM Holdings .

En 2011, le gouvernement néerlandais a approuvé une intégration entre OpenVPN et PolarSSL, baptisée OpenVPN-NL. Cette version d'OpenVPN a été approuvée pour protéger les communications gouvernementales jusqu'au niveau Restreint.

Depuis la sortie de la version 1.3.10, PolarSSL a été rebaptisé Mbed TLS pour mieux montrer son adéquation au sein de l' écosystème Mbed . À partir de la version 2.1.0, la bibliothèque a été mise à disposition sous la licence GPL v2 et la licence Apache v2.0.

En 2020, Mbed TLS a rejoint le projet TrustedFirmware.

Bibliothèque

La bibliothèque SSL principale est écrite dans le langage de programmation C et implémente le module SSL, les fonctions cryptographiques de base et fournit diverses fonctions utilitaires. Contrairement à OpenSSL et aux autres implémentations de TLS, Mbed TLS est comme wolfSSL dans le sens où il est conçu pour s'adapter aux petits appareils intégrés, la pile TLS complète minimale nécessitant moins de 60 Ko d'espace programme et moins de 64 Ko de RAM. Il est également hautement modulaire : chaque composant, comme une fonction cryptographique, peut être utilisé indépendamment du reste du framework. Des versions sont également disponibles pour Microsoft Windows et Linux . Comme Mbed TLS est écrit dans le langage de programmation C , sans dépendances externes, il fonctionne sur la plupart des systèmes d'exploitation et des architectures.

Depuis la version 1.3.0, il dispose de couches d'abstraction pour l'allocation de mémoire et le threading jusqu'au cœur « pour prendre en charge une meilleure intégration avec les systèmes d'exploitation embarqués existants ».

Priorités de conception

La bibliothèque Mbed TLS met l'accent sur la lisibilité du code, la documentation, les tests de régression automatisés, une conception faiblement couplée et un code portable.

Documentation de développement

La documentation suivante est disponible pour les développeurs :

  • Conception de haut niveau : une description de haut niveau des différents modules à l'intérieur de la bibliothèque, avec des diagrammes UML, des cas d'utilisation et des interactions dans des scénarios courants.
  • Documentation API : Doxygen à partir des fichiers d'en-tête de la bibliothèque.
  • Documentation du code source : Le code source de la bibliothèque est documenté pour clarifier les structures, les décisions et les constructions de code.

Tests automatisés

Les tests automatisés de Mbed TLS comprennent :

  • Un framework de test est inclus avec le code source qui contient plus de 5000 tests automatisés (basés sur le nombre de tests dans la version 1.3.2 de la bibliothèque) pour tester les régressions et la compatibilité sur différentes plates-formes.
  • Un script de compatibilité (compat.sh ) qui teste la compatibilité de la communication SSL avec OpenSSL et GnuTLS .
  • Un système d'intégration continue basé sur Travis CI et Jenkins .

Utiliser

Mbed TLS est utilisé comme composant SSL dans les grands projets open source :

Plateformes

Mbed TLS est actuellement disponible pour la plupart des systèmes d'exploitation, notamment Linux , Microsoft Windows , OS X , OpenWrt , Android , iOS , RISC OS et FreeRTOS . Les chipsets pris en charge incluent au moins ARM, x86, PowerPC, MIPS.

Algorithmes

Mbed TLS prend en charge un certain nombre d'algorithmes cryptographiques différents :

Fonctions de hachage cryptographiques
MD2 , MD4 , MD5 , RIPEMD160 , SHA-1 , SHA-2 , SHA-3
Modes MAC
CMAC , HMAC
Chiffres
AES , ARIA , Blowfish , Camellia , ChaCha , DES , RC4 , Triple DES , XTEA
Modes de chiffrement
BCE , BCC , BFC , CTR , OFB , XTS
Modes de cryptage authentifiés
CCM , GCM , enveloppe de clé NIST ,
ChaCha20-Poly1305
Dérivation de clé
Fédération de Hong Kong
Étirement des clés
Dérivation de clés PBKDF2 , PKCS #5 PBE2, PKCS #12
Cryptographie à clé publique
RSA , échange de clés Diffie–Hellman ,
Cryptographie à courbe elliptique (ECC) , Courbe elliptique Diffie–Hellman (ECDH) , Courbe elliptique DSA (ECDSA) , Courbe elliptique J-PAKE

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index