TLS de MBed

Biblioteca de software libre que implementa TLS
TLS de MBed
Desarrollador(es)Proyecto colaborativo gestionado por TrustedFirmware (anteriormente por Arm )
Lanzamiento inicial15 de enero de 2009 (2009-01-15)
Versión estable3.6.2 [1](15 de octubre de 2024 ; hace 31 días ) [±] (15 October 2024)
Repositorio
  • github.com/Mbed-TLS/mbedtls
Escrito endo
Sistema operativoMultiplataforma
TipoBiblioteca de seguridad
LicenciaApache dual 2.0 o GPL 2.0 o posterior
Sitio webwww.trustedfirmware.org/projects/mbed-tls/

Mbed TLS (anteriormente PolarSSL ) es una implementación de los protocolos TLS y SSL y de los respectivos algoritmos criptográficos y códigos de soporte necesarios. Se distribuye bajo la licencia Apache versión 2.0. En el sitio web se afirma que Mbed TLS tiene como objetivo ser "fácil de entender, usar, integrar y expandir".

Historia

La biblioteca SSL PolarSSL es la continuación oficial de la biblioteca SSL XySSL . XySSL fue creada por el " hacker de sombrero blanco " francés Christophe Devine y se lanzó por primera vez el 1 de noviembre de 2006, bajo las licencias GNU GPL v2 y BSD . En 2008, Christophe Devine ya no pudo dar soporte a XySSL y permitió que Paul Bakker creara la bifurcación oficial, llamada PolarSSL. [2] En noviembre de 2014, PolarSSL fue adquirida por ARM Holdings . [3]

En 2011, el gobierno holandés aprobó una integración entre OpenVPN y PolarSSL, denominada OpenVPN-NL. Esta versión de OpenVPN ha sido aprobada para su uso en la protección de las comunicaciones gubernamentales hasta el nivel Restringido. [4]

A partir del lanzamiento de la versión 1.3.10, PolarSSL ha cambiado su nombre a Mbed TLS para mostrar mejor su adaptación dentro del ecosistema Mbed . [5] A partir de la versión 2.1.0, la biblioteca se puso a disposición bajo la licencia GPL v2 y Apache v2.0. [6]

En 2020, Mbed TLS se unió al proyecto TrustedFirmware. [7]

Biblioteca

La biblioteca SSL principal está escrita en el lenguaje de programación C e implementa el módulo SSL, las funciones criptográficas básicas y proporciona varias funciones de utilidad. A diferencia de OpenSSL y otras implementaciones de TLS, Mbed TLS es como wolfSSL en el sentido de que está diseñado para adaptarse a pequeños dispositivos integrados, con la pila TLS completa mínima que requiere menos de 60 KB de espacio de programa y menos de 64 KB de RAM. También es altamente modular: cada componente, como una función criptográfica, se puede utilizar independientemente del resto del marco. También hay versiones disponibles para Microsoft Windows y Linux . Debido a que Mbed TLS está escrito en el lenguaje de programación C , sin dependencias externas, funciona en la mayoría de los sistemas operativos y arquitecturas.

Desde la versión 1.3.0, cuenta con capas de abstracción para la asignación de memoria y subprocesamiento al núcleo "para soportar una mejor integración con los sistemas operativos integrados existentes". [8]

Prioridades de diseño

La biblioteca Mbed TLS se centra en la legibilidad del código, la documentación, las pruebas de regresión automatizadas, un diseño acoplado de forma flexible y un código portable. [9]

Documentación de desarrollo

La siguiente documentación está disponible para los desarrolladores:

  • Diseño de alto nivel: [10] una descripción de alto nivel de los diferentes módulos dentro de la biblioteca, con diagramas UML, casos de uso e interacciones en escenarios comunes.
  • Documentación de la API: [11] Documentación generada por Doxygen a partir de los archivos de encabezado de la biblioteca.
  • Documentación del código fuente: [12] El código fuente de la biblioteca está documentado para aclarar estructuras, decisiones y construcciones de código.

Pruebas automatizadas

Las pruebas automatizadas de Mbed TLS incluyen:

  • Se incluye un marco de pruebas con el código fuente que contiene más de 5000 pruebas automatizadas (según la cantidad de pruebas en la versión 1.3.2 de la biblioteca) para probar regresiones y compatibilidad en diferentes plataformas.
  • Un script de compatibilidad (compat.sh [13] ) que prueba la compatibilidad de la comunicación SSL con OpenSSL y GnuTLS .
  • Un sistema de integración continua basado en Travis CI y Jenkins . [14]

Usar

Mbed TLS se utiliza como componente SSL en grandes proyectos de código abierto:

Plataformas

Mbed TLS está actualmente disponible para la mayoría de los sistemas operativos, incluidos Linux , Microsoft Windows , OS X , OpenWrt , Android , iOS , RISC OS [15] y FreeRTOS . Los chipsets compatibles incluyen al menos ARM, x86, PowerPC, MIPS.

Algoritmos

Mbed TLS admite varios algoritmos criptográficos diferentes:

Funciones hash criptográficas
MD2 , MD4 , MD5 , RIPEMD160 , SHA-1 , SHA-2 , SHA-3
Modos MAC
CMA , HMAC
Cifras
AES , ARIA , Blowfish , Camellia , ChaCha , DES , RC4 , Triple DES , XTEA
Modos de cifrado
BCE , CBC , CFB , CTR , OFB , XTS
Modos de cifrado autenticados
CCM , GCM , envoltura de claves NIST ,
ChaCha20-Poli1305
Derivación de claves
Fuerza Aérea de Hong Kong
Estiramiento de claves
Derivación de claves PBKDF2 , PKCS #5 PBE2, PKCS #12
Criptografía de clave pública
RSA , intercambio de claves Diffie-Hellman ,
Criptografía de curva elíptica (ECC) , criptografía de curva elíptica Diffie–Hellman (ECDH) , criptografía de curva elíptica DSA (ECDSA) , criptografía de curva elíptica J-PAKE

Véase también

Referencias

  1. ^ "Versión 3.6.2". 15 de octubre de 2024. Consultado el 22 de octubre de 2024 .
  2. ^ "Acerca de nosotros". PolarSSL . Consultado el 8 de mayo de 2014 .
  3. ^ "PolarSSL ahora es parte de ARM". 24 de noviembre de 2014.
  4. ^ [1] Archivado el 29 de enero de 2013 en Wayback Machine .
  5. ^ "Se lanzó mbed TLS 1.3.10". 2015-02-08 . Consultado el 2015-02-09 .
  6. ^ "Descargar". Mbed TLS . Arm. Archivado desde el original el 2019-03-24 . Consultado el 2021-04-05 .
  7. ^ "Hafnium, MbedTLS y PSA Crypto se unen al proyecto Trusted Firmware". TrustedFirmware . Archivado desde el original el 2020-08-12 . Consultado el 2021-04-05 .
  8. ^ "Nuevas funciones en PolarSSL 1.3.0 – Actualizaciones técnicas". Polarssl.org . Consultado el 8 de mayo de 2014 .
  9. ^ "Características de PolarSSL: biblioteca SSL fácil de usar y bien documentada". Polarssl.org . Consultado el 8 de mayo de 2014 .
  10. ^ "Diseño de alto nivel de PolarSSL". Polarssl.org . Consultado el 8 de mayo de 2014 .
  11. ^ "Documentación del código fuente de la versión 1.3.6: documentación de la API". PolarSSL . Consultado el 8 de mayo de 2014 .
  12. ^ "polarssl/polarssl — GitHub". Github.com . Consultado el 8 de mayo de 2014 .
  13. ^ Archivo ejecutable (26 de abril de 2020). "mbedtls/compat.sh en desarrollo · ARMmbed/mbedtls · GitHub". Github.com . Consultado el 5 de abril de 2021 .
  14. ^ "Integración continua de Mbed TLS". Firmware confiable . Firmware confiable . Consultado el 5 de abril de 2021 .
  15. ^ "Conectarse con el siglo XXI". RISC OS Open . Steve Revill . Consultado el 19 de abril de 2022 .
  • Sitio web oficial
Retrieved from "https://en.wikipedia.org/w/index.php?title=Mbed_TLS&oldid=1199196789"