De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

wolfSSL es una biblioteca SSL / TLS pequeña, portátil e integrada destinada a los desarrolladores de sistemas integrados. Se trata de un código abierto aplicación de TLS (SSL 3.0, TLS 1.0, 1.1, 1.2, 1.3 y 1.0 DTLS, 1.2, y 1.3) escrito en el lenguaje de programación C . Incluye bibliotecas de cliente SSL / TLS y una implementación de servidor SSL / TLS, así como soporte para múltiples API, incluidas las definidas por SSL y TLS . wolfSSL también incluye una interfaz de compatibilidad OpenSSL con las funciones OpenSSL más utilizadas. [3] [4]

Un predecesor de wolfSSL, yaSSL es una biblioteca SSL basada en C ++ para entornos embebidos y sistemas operativos en tiempo real con recursos limitados.

Plataformas [ editar ]

wolfSSL está disponible actualmente para Win32 / 64 , Linux , macOS , Solaris , Threadx , VxWorks , FreeBSD , NetBSD , OpenBSD , Linux integrado , Yocto Project , OpenEmbedded , WinCE , Haiku , OpenWrt , iPhone , Android , Nintendo Wii y Gamecube a través del soporte de DevKitPro. , QNX , MontaVista , Tronvariantes, NonStop OS , OpenCL , MicroC / OS-II de Micrium , FreeRTOS , SafeRTOS , Freescale MQX , Nucleus , TinyOS , TI-RTOS , HP-UX , uTasker, uT-kernel, embOS, INtime , mbed , RIOT , CMSIS-RTOS , HELADO, Green Hills INTEGRITY , Keil RTX, TOPPERS, PetaLinux, Apache Mynewt y PikeOS . [5]

Historia [ editar ]

La génesis de yaSSL, u otro SSL más, se remonta a 2004. OpenSSL estaba disponible en ese momento y tenía una licencia doble de OpenSSL License y SSLeay . [6] yaSSL, alternativamente, fue desarrollado y con doble licencia bajo una licencia comercial y la GPL. [7] yaSSL ofrecía una API más moderna, soporte para desarrolladores de estilo comercial y se completaba con una capa de compatibilidad con OpenSSL. [3] El primer usuario importante de wolfSSL / CyaSSL / yaSSL fue MySQL . [8] A través del paquete con MySQL, yaSSL ha logrado volúmenes de distribución extremadamente altos en millones.

En febrero de 2019, Daniel Stenberg , el creador de cURL , se unió al proyecto wolfSSL. [9]

Protocolos [ editar ]

La biblioteca SSL liviana wolfSSL implementa los siguientes protocolos: [10]

  • SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3
  • DTLS 1.0, DTLS 1.2, DTLS 1.3

Notas de protocolo:

  • SSL 2.0 : SSL 2.0 quedó obsoleto (prohibido) en 2011 por RFC 6176. wolfSSL no lo admite.
  • SSL 3.0 : SSL 3.0 fue obsoleto (prohibido) en 2015 por RFC 7568. En respuesta al ataque POODLE , SSL 3.0 se ha deshabilitado de forma predeterminada desde wolfSSL 3.6.6, pero se puede habilitar con una opción de tiempo de compilación. [11]

Algoritmos [ editar ]

wolfSSL utiliza las siguientes bibliotecas de criptografía:

wolfCrypt [ editar ]

De forma predeterminada, wolfSSL utiliza los servicios criptográficos proporcionados por wolfCrypt. [12] wolfCrypt Proporciona RSA , ECC , DSS , Diffie-Hellman , EDH , NTRU , DES , Triple DES , AES (CBC, CTR, CCM, GCM), Camellia , IDEA , ARC4 , HC-128 , ChaCha20 , MD2 , MD4 , MD5 , SHA-1 , SHA-2 , SHA-3 , BLAKE2 ,RIPEMD-160 , Poly1305 , generación de números aleatorios , compatibilidad con números enteros grandes y codificación / decodificación base 16/64. También se incluye un cifrado experimental llamado Rabbit , un cifrado de flujo de software de dominio público del proyecto eSTREAM de la UE. Rabbit es potencialmente útil para aquellos que cifran medios de transmisión en entornos de alto rendimiento y alta demanda.

wolfCrypt también incluye soporte para los algoritmos recientes Curve25519 y Ed25519 .

wolfCrypt actúa como una implementación de cifrado de back-end para varios paquetes de software y bibliotecas populares, incluido MIT Kerberos [13] (donde se puede habilitar mediante una opción de compilación).

NTRU [ editar ]

CyaSSL + incluye cifrado de clave pública NTRU [14] . La incorporación de NTRU en CyaSSL + fue el resultado de la asociación entre yaSSL y Security Innovation. [14] NTRU funciona bien en entornos móviles e integrados debido al tamaño de bit reducido necesario para proporcionar la misma seguridad que otros sistemas de clave pública. Además, no se sabe que sea vulnerable a los ataques cuánticos. Varios conjuntos de cifrado que utilizan NTRU están disponibles con CyaSSL +, incluidos AES-256, RC4 y HC-128.

SGX [ editar ]

wolfSSL admite el uso de Intel SGX ( Extensiones de protección de software ). [15] Intel SGX permite un área de superficie de ataque más pequeña y se ha demostrado que proporciona un mayor nivel de seguridad para ejecutar código sin un impacto negativo significativo en el rendimiento.

Plataformas de aceleración de hardware compatibles [ editar ]

Elementos de confianza admitidos [ editar ]

Actualmente, wolfSSL tiene los siguientes elementos de confianza admitidos:

  • STSAFE
  • ATECC508A

Soporte de cifrado de hardware [ editar ]

Las siguientes tablas enumeran el soporte de wolfSSL para usar el cifrado de hardware de varios dispositivos con varios algoritmos.

- "Todos" indica tamaños de bloque admitidos de 128, 192 y 256 bits

Licencias [ editar ]

wolfSSL es software libre, con licencia GNU General Public License GPLv2. [dieciséis]

Ver también [ editar ]

  • Transport Layer Security
  • Comparación de implementaciones de TLS
  • Comparación de bibliotecas de criptografía
  • GnuTLS
  • Servicios de seguridad de red
  • OpenSSL

Referencias [ editar ]

  1. ^ "WolfSSL ChangeLog" .
  2. ^ "WolfSSL ChangeLog" . 2021-02-16 . Consultado el 16 de febrero de 2021 .
  3. ^ a b wolfSSL - Productos de comunicaciones integrados
  4. ^ "Lo que necesita saber sobre el protocolo TLS 1.3 y las bibliotecas SSL / TLS de wolfSSL" . www.allaboutcircuits.com . Consultado el 28 de diciembre de 2018 .
  5. ^ "WolfSSL Embedded SSL / TLS Library | Productos wolfSSL" . Consultado el 31 de enero de 2019 .
  6. ^ OpenSSL: fuente, licencia
  7. ^ wolfSSL - Licencia
  8. ^ "MySQL, construcción de MySQL con soporte para conexiones seguras" . Archivado desde el original el 6 de julio de 2017 . Consultado el 12 de junio de 2016 .
  9. ^ Daniel Stenberg, fundador y arquitecto jefe de cURL, se une a wolfSSL
  10. ^ wolfSSL - Documentos | Manual CyaSSL - Capítulo 4 (Funciones)
  11. ^ "wolfSSL 3.6.6 ya está disponible" .
  12. ^ wolfSSL - Documentos | Manual de wolfSSL - Capítulo 10 (Referencia de uso de wolfCrypt)
  13. ^ Kerberos: el protocolo de autenticación de red
  14. ^ a b NTRU CryptoLabs Archivado el 2 de febrero de 2013 en archive.today
  15. ^ wolfSSL - wolfSSL con Intel® SGX
  16. ^ Licencia GNU

Enlaces externos [ editar ]

  • Página de inicio de wolfSSL / CyaSSL
  • wolfSSL ahora con ChaCha20 y Poly1305