Couchbase Server 7.0 Beta ya está disponible con algunas mejoras adicionales para reforzar la seguridad de la plataforma. Couchbase utiliza el cifrado TLS en toda nuestra cartera para garantizar que la comunicación a través de la red es segura, lo que significa que las partes externas no pueden espiar o manipular las solicitudes que su aplicación hace a la base de datos o incluso los datos que viajan entre los nodos en el clúster o entre clusters. Un nuevo anuncio importante es la introducción de la compatibilidad con TLS 1.3.
¿Qué es TLS?
Empecemos con un poco de historia.
Cuando la gente habla de acceder a sitios web seguros, como los de comercio electrónico o banca en línea, a menudo oirá que se refieren al cifrado SSL como el sistema subyacente que los mantiene seguros. Se trata de un error muy común. Secure Sockets Layer (SSL) era originalmente el sistema utilizado para ello, pero fue sustituido en 1999 con la introducción de Transport Layer Security (TLS) (RFC 2246) como el método que el mundo utiliza para proteger las comunicaciones en línea. Con el tiempo se mejoró con la versión TLS 1.1 (RFC 4346) en 2006, a la que siguió la norma TLS 1.2 en 2008 (RFC 5246). ¿Pero qué pasa con HTTPS, no se refiere a SSL? No, la S de HTTPS se refiere a HTTP seguro.
En el verano de 2018, se acordó la especificación final para el estándar TLS 1.3 como RFC 8446 y esto es ahora lo que estamos introduciendo en Couchbase Server 7.0.
TLS consta de un cliente y un servidor. El cliente iniciará la conexión con un apretón de manos, en el que presentará una lista de conjuntos de cifrado que sabe manejar. Un conjunto de cifrado es un conjunto de algoritmos criptográficos que suele incluir un algoritmo de intercambio de claves, un algoritmo de cifrado masivo y un algoritmo de código de autenticación de mensajes (MAC). De esta lista, el servidor elegirá un conjunto de funciones con las que también sepa comunicarse y notificará al cliente cómo proceder.
¿Por qué Couchbase añade soporte TLS 1.3?
La versión 1.2 de TLS sigue siendo una opción segura a día de hoy, pero al adoptar las nuevas normas 1.3 nos estamos protegiendo contra amenazas que aún no se han descubierto. Como ocurre con cualquier otro tipo de seguridad, con el tiempo los algoritmos y protocolos mejoran, se hacen más seguros y añaden funciones adicionales para dificultar la interceptación o manipulación de las comunicaciones.
Por ejemplo, el antiguo TLS 1.2 permite a los administradores configurar las preferencias del conjunto de cifrado para asegurarse de que los cifrados más potentes se prefieren a los más débiles, pero la mayoría de los administradores no aprovechan esta capacidad y dejan el orden predeterminado de los cifrados, lo que los hace vulnerables sin saberlo. Con la introducción de TLS 1.3, muchos de estos cifrados más antiguos ni siquiera están disponibles como opción, por lo que los conjuntos de cifrado disponibles por defecto ya se encuentran en un nivel superior.
Actualmente Google Chrome, el navegador web más popular del mundo, ya no admite conectarse a sitios web protegidos mediante el protocolo TLS 1.0 o 1.1. Firefox, Safari y Edge han adoptado medidas similares. Y el estándar de seguridad PCI DSS, que es obligatorio para las empresas que gestionan pagos con tarjeta de crédito, ha requerido al menos TLS 1.1 desde julio de 2018, con una fuerte orientación para usar TLS 1.2. Muchas industrias consideran que TLS 1.0 y 1.1 ya no son seguros y es por eso que Couchbase recomienda que los clientes utilicen TLS 1.2 o superior para todos los casos de uso. Con la introducción de TLS 1.3 vamos un paso por delante de los estándares.
¿Cómo puedo utilizar TLS 1.3 con Couchbase Server 7.0?
Es un proceso sencillo y vamos a utilizar la excelente herramienta gratuita de prueba SSL/TLS de http://testssl.sh para verificar qué protocolos están en uso.
Puedes conseguir la última copia desde su web como descarga o como clon git, nosotros vamos a descargarlo con su repositorio git usando una máquina Ubuntu 16.
1 2 |
git clonar --profundidad 1 https://github.com/drwetter/testssl.sh.git pruebassl cd pruebassl/ |
A continuación probaremos una instalación por defecto de Couchbase Server 7.0 Beta. En aras de la brevedad, llamaremos a la herramienta Test SSL sin cabeceras ni advertencias adicionales, y sólo mostraremos la información del protocolo. Ejecutaremos esta herramienta en uno de los nodos de Couchbase Server contra el protocolo Servicio de datos Puerto cifrado TLS.
1 2 3 4 5 6 7 8 9 10 |
./pruebassl.sh --tranquilo --advertencias fuera de -p localhost:11207 Pruebas protocolos vía enchufes excepto NPN+ALPN SSLv2 no ofrecido (OK) SSLv3 no ofrecido (OK) TLS 1 ofrecido (obsoleto) TLS 1.1 ofrecido (obsoleto) TLS 1.2 ofrecido (OK) TLS 1.3 ofrecido (OK): final NPN/SPDY no ofrecido ALPN/HTTP2 no ofrecido |
Como puede ver, el Servidor y el Cliente han negociado el protocolo más fuerte que ambos entienden y así la conexión final se establece con TLS 1.3 sin necesidad de ningún cambio de configuración.
¿Y si quisiéramos asegurarnos de que el clúster ni siquiera ofrece los protocolos obsoletos TLS 1.0/1.1? Podemos emitir un comando CLI en todo el clúster para requerir TLS versión 1.2 como mínimo.
1 2 3 4 |
/op/couchbase/papelera/couchbase-cli ajuste-seguridad -c localhost:8091 \ -u Administrador -p contraseña --configure --tls-min-versión tlsv1.2 ÉXITO: Seguridad ajustes actualizado |
Y luego vuelve a probar el puerto del Servicio de Datos.
1 2 3 4 5 6 7 8 9 10 |
./pruebassl.sh --tranquilo --advertencias fuera de -p localhost:11207 Pruebas protocolos vía enchufes excepto NPN+ALPN SSLv2 no ofrecido (OK) SSLv3 no ofrecido (OK) TLS 1 no ofrecido TLS 1.1 no ofrecido TLS 1.2 ofrecido (OK) TLS 1.3 ofrecido (OK): final NPN/SPDY no ofrecido ALPN/HTTP2 no ofrecido |
Como puede ver, sólo se ofrecía como opción TLS 1.2 y superior.
En el momento de escribir esto, TLS 1.3 no ha sido implementado en todos los servicios de Couchbase en Couchbase Server 7.0 Beta, por lo que la opción de establecer un mínimo de TLS 1.3 en todo el cluster aún no está disponible.
Lo que puedes hacer, sin embargo, es establecer el TLS mínimo a 1.3 en los servicios en los que está disponible utilizando la API REST. Configuremos el puerto cifrado del Servicio de Datos para que sólo permita TLS 1.3.
1 2 |
rizo -k https://localhost:18091/settings/security/data/tlsMinVersion \ -u Administrador:contraseña -X POST -d "tlsv1.3" |
Y, a continuación, vuelva a ejecutar la herramienta de prueba.
1 2 3 4 5 6 7 8 9 10 11 12 |
./pruebassl.sh --tranquilo --advertencias fuera de -p localhost:11207 localhost:11207 aparece a soporte TLS 1.3 SÓLO. Usted mejor utilice --openssl= Pruebas protocolos vía enchufes excepto NPN+ALPN SSLv2 no ofrecido (OK) SSLv3 no ofrecido (OK) TLS 1 no ofrecido TLS 1.1 no ofrecido TLS 1.2 no ofrecido TLS 1.3 ofrecido (OK): final NPN/SPDY no ofrecido ALPN/HTTP2 no ofrecido |
Como puede ver, TLS 1.3 es ahora la única opción ofrecida disponible.
Pruebe hoy mismo la versión beta de Couchbase Server 7.0 y utilice algunas de nuestras nuevas funciones de seguridad.
Disponibilidad y duración de Beta
Documentación
Blogs adicionales
Ámbitos y Colecciones para Aplicaciones Modernas Multi-Tenant: Couchbase 7.0
Transacciones Couchbase con N1QL
Consigue la Beta de Community Edition y Enterprise Edition
Couchbase 7 Beta está disponible para las ediciones Enterprise y Community. Todo el mundo puede descargar el software desde https://www.couchbase.com/downloads
El soporte al cliente está disponible a través de los canales de soporte habituales, mientras que el soporte a la comunidad está disponible a través de los foros de Couchbase en https://www.couchbase.com/forums/