Anteriormente en RedesZone hemos hablado de OpenSSL y LibreSSL, dos librerías criptográficas para nuestros sistemas. Ahora os damos a conocer BearSSL, una nueva librería SSL que aún está en fase Alpha, pero que está centrada específicamente en dos aspectos: la seguridad por defecto, y el bajo consumo de recursos, lo que es ideal para dispositivos de networking e incluso dispositivos IoT.
Principales características de BearSSL
BearSSL está escrito en lenguaje C, la principal característica de esta nueva librería criptográfica es que es segura por defecto, no incorpora algoritmos de cifrado ni protocolos inseguros por diseño, nunca se soportará protocolos como SSL v2 y v3, ni tampoco algoritmos de cifrado débiles.
Otro punto fuerte de esta librería, es que tan solo ocupa 25KB de memoria RAM con la implementación mínima, algo ideal para los dispositivos de networking y también para los dispositivos del Internet de las Cosas. De hecho, se está programando para ser totalmente portables, el objetivo de esta librería no es solo para sistemas operativos grandes como Windows o Linux, sino para sistemas embebidos.
Otro aspecto destacable es que BearSSL se ha diseñado para que sea extensible, es decir, a medida que aparezcan nuevos algoritmos de cifrado, se podrá implementar la gran mayoría de ellos, e incluso de terceros.
Estado del proyecto BearSSL
Actualmente esta librería se encuentra en la versión 0.1, por lo que aún está en fase Alpha. Debido a esto, no es recomendable utilizarlo en producción ya que seguramente haya bugs e incluso fallos importantes de seguridad. Algunos protocolos implementados actualmente en BearSSL son TLS 1.0, TLS 1.1 y TLS 1.2, por diseño no se soporta SSLv2 ni v3. Respecto al intercambio de claves, soporta RSA, ECDH y ECDHE, ECDHE soporta Forward Secrecy. Un detalle muy importante es que BearSSL no soporte DHE, ya que no tiene ninguna ventaja sobre ECDHE, además de que esta última es más rápida.
La validación de certificados X.509 también está implementado, pero una versión mínima, por lo que aún no soporta una validación completa de los certificados. Los algoritmos RSA y ECDSA son soportados para dichos certificados, asimismo las funciones hash como SHA-1 y la familia SHA-2 también lo es, pero MD5 está excluido por ser completamente inseguro.
Los cifrados simétricos como AES y 3DES también están soportados, además, soporta AES-GCM, AES-CBC y 3DES-CBC, también soporta RSA y la compatibilidad con curvas elípticas.
¿Qué no se ha implementado todavía en BearSSL?
El protocolo TLS 1.3 aún no se ha implementado, además, tampoco se han incorporado los algoritmos ChaCha20+Poly1305, ni se ha implementado AES para la aceleración por hardware (AES-NI), tampoco se ha optimizado las implementaciones para procesadores ARM y un largo etcétera de funciones necesarias para funcionar correctamente.
Os recomendamos visitar la página web oficial de BearSSL donde encontraréis toda la información sobre esta librería criptográfica. Aún se encuentra en estado Alpha, pero esperamos que con el tiempo crezca y se convierta en una alternativa a OpenSSL, sobre todo para dispositivos IoT.