Cifrado en Nextcloud

Originally published at: https://nextcloud.com/blog/cifrado-en-nextcloud/

Ofrecer una s贸lida protecci贸n de los datos es la mayor ventaja de Nextcloud sobre las nubes p煤blicas. El autoalojamiento significa que tienes el control sobre tus datos. Por supuesto, hay que impedir el acceso no autorizado, y aqu铆 es donde entra en juego la encriptaci贸n. En esta entrada del blog hablaremos de los diferentes tipos y capas de encriptaci贸n que utiliza Nextcloud para mantener tus datos seguros. Hablaremos de las amenazas contra las que est谩n dise帽ados los distintos tipos de encriptaci贸n, ayudando a los administradores de sistemas a definir su modelo de amenazas y a tomar las medidas de seguridad adecuadas. Consulta nuestro sitio web para obtener m谩s informaci贸n sobre seguridad y encriptaci贸n.

驴Qu茅 es la encriptaci贸n?

Cifrar datos significa triturarlos de forma que sea casi imposible que otra persona los lea sin una clave secreta llamada clave de cifrado. Un ejemplo sencillo es el cifrado C茅sar: basta con desplazar cada letra del alfabeto un n煤mero fijo de caracteres. Digamos que eliges 3. Una A se convierte en una D, una B en una E y as铆 sucesivamente. Un mensaje como meet me now se convierte en phhw ph qrz A menos que sepas cu谩ntas letras hay que desplazar, es decir, la clave (3 en este caso) es muy dif铆cil averiguar el contenido del mensaje.

La encriptaci贸n moderna es mucho m谩s complicada que eso, ya que utiliza trucos matem谩ticos para hacerla extremadamente dif铆cil de romper. Puedes obtener m谩s informaci贸n sobre estas t茅cnicas en esta p谩gina de Wikipedia.

驴Qu茅 es la modelizaci贸n de amenazas?

El modelado de amenazas es el proceso de determinar qu茅 amenazas son relevantes y contra las que hay que protegerse. Lo utilizan los administradores de sistemas para asegurarse de que sus sistemas est谩n correctamente configurados y proporcionan la protecci贸n adecuada sin sobrecargar a los usuarios con obst谩culos de seguridad demasiado complicados.

Pongamos un ejemplo. Digamos que quieres proteger tu coche. Sin preguntarte 芦a partir de qu茅禄, podr铆as tomar decisiones equivocadas. Incluso un grueso muro y un canal alrededor de tu casa con cocodrilos, aunque probablemente eficaces contra los robos, no proteger铆an el coche contra el fuerte granizo, algo que habr铆a hecho un simple tejado.

Por supuesto, en un entorno inform谩tico, tienes m煤ltiples tipos de datos. Desde los datos de los clientes y los informes del ejercicio fiscal hasta las fotos de la fiesta de Navidad del a帽o pasado. Aunque esto 煤ltimo podr铆a ser embarazoso, en t茅rminos generales cabr铆a esperar que un proyecto de informe del ejercicio fiscal en una empresa que cotiza en bolsa requiriera un mayor grado de protecci贸n. Lo ideal ser铆a que ni siquiera el personal inform谩tico pudiera acceder a algunos de estos archivos.

Un enfoque sencillo del modelado de amenazas consiste en preguntarse a uno mismo 芦驴de qu茅 quiero protegerme?禄. Piensa en un atacante imaginario y piensa qu茅 podr铆a hacer para vulnerar tu seguridad. A continuaci贸n, busca soluciones para los planteamientos que hayas encontrado. Una versi贸n formalizada de este enfoque es utilizar 芦谩rboles de ataque禄, inventados por el experto en seguridad Bruce Schneider. Aqu铆 puedes ver un ejemplo de 谩rbol de ataque para un ataque de virus:

Consulta la p谩gina de wikipedia sobre modelizaci贸n de amenazas para m谩s detalles y algo de historia, y consulta esta p谩gina sobre 谩rboles de ataque.

Cifrado en Nextcloud

Nextcloud ofrece m煤ltiples capas de encriptaci贸n para tus datos. En primer lugar, los datos est谩n protegidos cuando se transfieren entre clientes y servidores, as铆 como entre servidores. En segundo lugar, los datos pueden encriptarse en el almacenamiento; y por 煤ltimo, pero no por ello menos importante, ofrecemos encriptaci贸n de extremo a extremo en los clientes.

Cada uno tiene su lugar y ofrece un tipo de protecci贸n diferente, adecuado para proteger de un tipo espec铆fico de amenaza. Describiremos cada tipo de encriptaci贸n y contra qu茅 protege.

Cifrado durante la transferencia de datos

La encriptaci贸n de transferencias que utiliza Nextcloud asegura las conexiones entre servidores y clientes. Esto utiliza el est谩ndar TLS, un protocolo de comunicaci贸n segura utilizado por HTTPS. HTTPS es lo que hace que el candado de la barra de direcciones de tu navegador se vuelva verde. Se configura en el servidor web, como Apache o NGINX, y nuestro manual contiene algunas instrucciones aqu铆. Recomendamos encarecidamente utilizar siempre Nextcloud con TLS y advertiremos en茅rgicamente a los administradores del sistema si no est谩 activado.

Nextcloud avisa al administrador del sistema si HTTPS no est谩 activado

Modelo de amenaza

Nextcloud utiliza tr谩fico HTTP 芦simple y llano禄 para todo el manejo de archivos, que puede protegerse con TLS. TLS protege contra los intentos de capturar datos en tr谩nsito entre el servidor y el cliente. No protege contra un dispositivo o servidor pirateado, pero impide que se intercepten las transferencias de datos en redes inseguras como las redes WiFi p煤blicas, los dispositivos m贸viles o las redes de terceros y, por tanto, tiene un valor incalculable para un despliegue Nextcloud.

Encriptaci贸n del almacenamiento

La funci贸n de encriptaci贸n del lado del servidor de Nextcloud proporciona un almacenamiento seguro de los datos encriptando cada archivo con una clave de archivo 煤nica antes de almacenarlo. Las claves de los archivos se encriptan, a su vez, mediante una clave para todo el servidor (por defecto por razones de funcionalidad y rendimiento) o una clave por usuario. La encriptaci贸n del lado del servidor proporciona protecci贸n para los datos en el almacenamiento externo, ya que los archivos se encriptan antes de ser enviados al almacenamiento y las claves nunca salen del servidor Nextcloud.

Una clave de servidor almacena una contrase帽a de servidor en el directorio de datos de Nextcloud y la utiliza para descifrar la clave de servidor en el directorio de datos de los usuarios, que a su vez se utiliza para descifrar datos.

Cuando se utilizan claves por usuario, la clave en el directorio de datos es por usuario y est谩 encriptada con la contrase帽a del usuario. Nos aseguramos de que las claves nunca se almacenen, pero se guardar谩n en la memoria del servidor Nextcloud mientras duren las sesiones de inicio de sesi贸n de los usuarios, para facilitar el descifrado y el cifrado de los datos.

Ten en cuenta que los clientes de sincronizaci贸n de escritorio Nextcloud comprueban si hay actualizaciones cada 30 segundos, 隆lo que, frecuente y previsiblemente, proporciona una ventana para que un administrador de servidor malintencionado o un hacker robe las claves de la sesi贸n de usuario!

Y ten en cuenta que el Cifrado del Lado del Servidor s贸lo cifra el contenido de los archivos, no su nombre ni la estructura de carpetas. El uso de almacenamiento de objetos como S3 evita esta limitaci贸n, ya que este tipo de almacenamiento nunca filtra los nombres de archivos o carpetas.

Ten en cuenta tambi茅n que, cuando no se utiliza almacenamiento externo y se emplea una clave para todo el servidor, almacenar las claves de encriptaci贸n junto con los datos supone poca protecci贸n en caso de robo de las unidades. Para este modelo de amenaza, una tecnolog铆a de cifrado de disco completo suele ser mejor opci贸n que el cifrado del lado del servidor integrado en Nextcloud. dm-crypt, eCryptFS y EncFS suelen ser buenas opciones en el servidor, ya que tambi茅n permiten utilizar las modernas funciones de aceleraci贸n del cifrado de las CPU y los sistemas operativos.

M谩s informaci贸n sobre la encriptaci贸n del lado del servidor en nuestra p谩gina de almacenamiento.

Modelo de amenaza

El Cifrado del Lado del Servidor protege los datos en el almacenamiento siempre que ese almacenamiento no est茅 en el mismo servidor que el propio Nextcloud.

Las claves por usuario s贸lo ofrecen protecci贸n adicional respecto a una clave para todo el servidor en caso de robo f铆sico del servidor Nextcloud y del almacenamiento o de una violaci贸n de la seguridad del servidor, siempre que el usuario o usuarios NO inicien sesi贸n mientras dure la violaci贸n. Una violaci贸n completa y no detectada del servidor Nextcloud por parte de atacantes expertos o de un administrador de servidores malintencionado sigue suponiendo un riesgo de exposici贸n de los datos de los usuarios.

Encriptaci贸n de extremo a extremo del cliente

La protecci贸n definitiva de los datos del usuario la proporciona la encriptaci贸n de extremo a extremo. La funci贸n de encriptaci贸n de extremo a extremo de Nextcloud est谩 dise帽ada de forma que el servidor nunca tenga acceso a archivos o claves sin encriptar, ni el c贸digo proporcionado por el servidor maneje nunca datos sin encriptar, lo que podr铆a proporcionar v铆as de compromiso.

Nextcloud hace que la encriptaci贸n de extremo a extremo sea muy f谩cil de usar, gestionando sin problemas el intercambio de claves por el servidor sin filtrar ning煤n dato y facilitando el uso compartido con otros usuarios y la colaboraci贸n. Sin embargo, conlleva una p茅rdida de prestaciones, ya que cualquier tipo de edici贸n de archivos en l铆nea y el acceso a datos encriptados, as铆 como el uso compartido p煤blico y el uso compartido con grupos, no es posible para los datos de las carpetas que est谩n encriptadas de extremo a extremo.

Los usuarios pueden activar la funci贸n de encriptaci贸n de extremo a extremo de Nextcloud para una o varias carpetas. El contenido de cada una de estas carpetas estar谩 totalmente oculto para el servidor, incluidos los nombres de los archivos y la estructura de directorios. Para sincronizar los datos con otros dispositivos, los usuarios tienen que introducir un c贸digo creado por el primer dispositivo. Una vez hecho esto, las carpetas cifradas de extremo a extremo se sincronizan sin problemas entre dispositivos. Los usuarios pueden compartir carpetas encriptadas con otros usuarios de su servidor sin necesidad de volver a encriptar y cargar los datos ni de introducir contrase帽as para el remitente o el destinatario.

La Protecci贸n Criptogr谩fica de la Identidad, en forma de certificados firmados por el servidor y un modelo de Confianza en el Primer Uso (TOFU), protege contra los atacantes que intentan suplantar a otros usuarios. Nextcloud admite una clave de recuperaci贸n de administrador sin conexi贸n opcional y permite un registro de auditor铆a completo. Las empresas pueden emplear opcionalmente un HSM seguro para emitir certificados a los usuarios.

El Control de Acceso a Archivos de Nextcloud puede emplearse para imponer el cifrado de extremo a extremo en Nextcloud bas谩ndose en criterios establecidos, por ejemplo la pertenencia a grupos de usuarios, la extensi贸n del archivo, el tama帽o, etc. De este modo, un subconjunto de datos sensibles puede recibir el m谩ximo nivel de protecci贸n, mientras que otros datos y usuarios pueden seguir benefici谩ndose de la facilidad de intercambio p煤blico de archivos y de las capacidades de colaboraci贸n en l铆nea de Nextcloud.

Por ejemplo, Nextcloud permite a un administrador de sistemas asegurarse de que todos los archivos creados por el departamento de Finanzas tienen que estar cifrados de extremo a extremo, mientras que otros departamentos pueden colaborar y compartir a su antojo.

Ten en cuenta que la propia naturaleza de la encriptaci贸n de extremo a extremo significa que no hay acceso a los datos a trav茅s de la interfaz web, ni se comparten p煤blicamente. Esto se debe a que un navegador necesitar铆a desencriptar los archivos localmente para que el usuario pudiera verlos, pero el c贸digo para hacerlo tiene que venir en forma de javascript desde el servidor. Esto romper铆a el modelo de confianza: El cifrado de extremo a extremo est谩 pensado para proteger del servidor y, por tanto, no se puede confiar en que el c贸digo del servidor descifre los datos y no env铆e una copia de la clave segura a un servidor ajeno. Esto se trata m谩s ampliamente en un art铆culo de los expertos en seguridad del Grupo NCC. Los esquemas de extremo a extremo que tienen un componente de navegador no son m谩s seguros que el cifrado del lado del servidor, por lo que recomendamos utilizarlo en su lugar si es necesario acceder a trav茅s de un navegador.

M谩s informaci贸n sobre la encriptaci贸n de extremo a extremo en nuestro sitio web. Ten en cuenta que, desde agosto de 2020, el cifrado de extremo a extremo est谩 disponible en las 煤ltimas versiones de los clientes de escritorio y m贸vil. Requiere el servidor Nextcloud 19 con la versi贸n 1.5.2 o la versi贸n 20 con la 1.6.1. La compartici贸n entre usuarios a煤n no se ha implantado y est谩 en la hoja de ruta para 2021.

Modelo de amenaza

La encriptaci贸n de extremo a extremo en Nextcloud est谩 dise帽ada para proteger los datos de los usuarios contra cualquier escenario de ataque entre dispositivos de usuario, incluso en caso de una brecha de seguridad no detectada a largo plazo o contra administradores de servidores que no sean de confianza.

No protege los datos de los propios dispositivos de usuario, y el robo de un dispositivo de usuario sin cifrar y desbloqueado permitir铆a a un atacante acceder a las claves privadas.

Conclusi贸n

Nextcloud utiliza el cifrado para proteger tus datos en tr谩nsito y en el almacenamiento externo, y con cifrado de extremo a extremo incluso contra un servidor no fiable. Al configurar una soluci贸n autoalojada de sincronizaci贸n y compartici贸n de archivos, conviene desarrollar un modelo de amenazas, determinando claramente contra qu茅 amenazas debe protegerse el servidor, y luego configurar el entorno del servidor para garantizar la protecci贸n contra las amenazas identificadas. Esta entrada del blog deber铆a ayudar a elegir el tipo o tipos correctos de encriptaci贸n a emplear para alcanzar el nivel de protecci贸n deseado.