Una red de confianza cero es un enfoque de seguridad que se basa asumiendo que cada conexión y punto final se considera una amenaza, incluso si están dentro de la red corporativa o de confianza. En lugar de confiar implícitamente en los dispositivos o usuarios, una red de confianza cero verifica constantemente la identidad y el estado de seguridad de cada componente de la red antes de otorgar acceso a recursos o datos.
El modelo de seguridad de confianza cero garantiza que los datos y los recursos sean inaccesibles por defecto. Los usuarios solo pueden acceder a ellos de forma limitada en circunstancias específicas, lo que se conoce como acceso con privilegios mínimos. Este modelo verifica y autoriza cada conexión, como cuando un usuario conecta una aplicación o software a un conjunto de datos a través de una interfaz de programación de aplicaciones (API), asegurando que la interacción cumpla con los requisitos de las políticas de seguridad de la organización.
En Linux existen diversas soluciones para la implementación de una red de confianza cero y OpenZiti es una de ellas.
¿Qué es OpenZiti?
OpenZiti se presenta como un conjunto de herramientas que facilita la integración de funcionalidades para la interacción en redes distribuidas y la creación de redes superpuestas específicas para las aplicaciones en desarrollo, operando sobre Internet convencional y utilizando un enrutamiento de malla que conecta cada punto de la red a través de nodos vecinos.
OpenZiti está diseñado inicialmente para construir redes que aseguren la protección y el aislamiento del tráfico en entornos desprotegidos, donde los nodos pueden estar comprometidos (siguiendo la arquitectura Zero Trust). Esta tecnología puede utilizarse para gestionar la comunicación con aplicaciones en lugar de depender de una VPN. La red opera a través de un controlador que administra la configuración, autenticación y servicios, junto con nodos que actúan como enrutadores formando una red de malla y canalizando el tráfico a través de ellos mismos. Se pueden añadir servicios para equilibrio de carga y tolerancia a fallos.
El acceso a la red superpuesta se realiza mediante un cliente OpenZiti Edge que permite conectarse desde una red externa a la red superpuesta creada con OpenZiti. Esto posibilita la creación de túneles y servidores proxy para redirigir el tráfico entre la red regular y la superpuesta, facilitando la interacción desde el exterior con aplicaciones internas y el acceso a aplicaciones existentes que aún no cuentan con soporte para la red superpuesta.
El acceso a la red y la recepción de datos de los servidores DNS solo son posibles después de pasar por la autorización y autenticación obligatorias. Sin la autorización correspondiente, el cliente no podrá determinar la disponibilidad del servicio ni conectarse a él. Todo el tráfico está protegido mediante mTLS (autenticación mutua, donde el cliente y el servidor se autentican entre sí) y cifrado de extremo a extremo (utilizando ChaCha20-Poly1305), lo que significa que comprometer los nodos de la red no permitirá ver el tráfico de la aplicación. Para el cifrado, se utilizan las funciones de la biblioteca libsodium.
Entre las aplicaciones populares que hacen uso de OpenZiti se encuentran la plataforma de intercambio de datos Zrok y el ecosistema browZer, que facilita la implementación de sitios en una red superpuesta. Además de desarrollar aplicaciones de red distribuidas, OpenZiti es adecuado para crear redes privadas que gestionen el acceso a API, sitios web o bases de datos privadas. También permite ocultar infraestructuras basadas en Kubernetes dentro de una red superpuesta y administrar sistemas y dispositivos de forma remota sin necesidad de configurar firewalls ni utilizar VPN.
Actualmente, OpenZiti se encuentra en su versión 1.0 y en ella se asegura la estabilidad de la API para enrutadores y controladores (anteriormente, la estabilidad estaba garantizada solo para los clientes). A partir de esta versión, la API y la CLI serán compatibles con versiones anteriores, y cualquier eliminación de funciones seguirá un proceso de desaprobación previa antes de ser eliminadas definitivamente, solo si hay un cambio significativo en el número de versión. Esta nueva versión también incluye pruebas adicionales, como simulaciones de fallas de componentes de red, lo que permite verificar la estabilidad de la red en situaciones de emergencia y su capacidad para recuperarse al volver a funcionar normalmente después de que se resuelvan las fallas.
Si estás interesado en poder conocer más al respecto, debes saber que la aplicacion se distribuye bajo la licencia Apache 2.0 y puedes consultar los detalles en el siguiente enlace.