En los últimos años, la world wide web ha experimentado un crecimiento exponencial de hackers, malwares, rescates y otros programas maliciosos o partes que intentan constantemente encontrar una manera de robar nuestros datos personales: dado este escenario, huelga decir que proteger sus datos se convirtió en una de las tareas más importantes que debemos priorizar, independientemente del papel que desempeñemos habitualmente. La necesidad general (y urgente) de evitar el acceso no autorizado a información personal, sensible y/o crítica es algo que debe ser reconocido por todos: usuarios finales, propietarios de servicios, administradores de servidores, etc.: las diferencias están principalmente relacionadas con lo que necesitamos proteger y cómo debemos hacerlo.

Huelga decir que el acto de elegir la forma adecuada de proteger nuestros datos a menudo es posterior a una evaluación de riesgos bien ejecutada, seguida de un análisis de costos y beneficios, que es un gran enfoque para ayudarnos a encontrar las medidas técnicas y organizativas adecuadas para implementar en nuestro escenario específico. Esta es también la forma adecuada de actuar de acuerdo con el Reglamento General de Protección de Datos (RGPD), como se indica en el artículo 32-Seguridad del procesamiento:

Teniendo en cuenta el estado de la técnica, los costes de implementación y la naturaleza, el alcance, el contexto y los fines del procesamiento, así como el riesgo de probabilidad y gravedad variables para los derechos y libertades de las personas físicas, el controlador y el procesador implementarán medidas técnicas y organizativas adecuadas para garantizar un nivel de seguridad adecuado al riesgo

A continuación se muestra una lista de las medidas técnicas y organizativas más comunes para garantizar la protección y la seguridad de los datos en la actualidad:

  • Control de acceso: Proteja todo el acceso físico a su servidor, cliente y/o salas de datos con llaves, tarjetas con chip, paredes, armarios, alarmas y similares.
  • Minimización: Asegúrese de que todas las partes autorizadas puedan acceder solo a los datos específicamente relacionados con sus tareas y/o autorización específicas sin que se les permita ver nada más.
  • Integridad: Proteja sus datos de pérdidas, destrucción o daños accidentales utilizando contramedidas adecuadas (sensores de incendio / inundación, recuperación ante desastres y similares).
  • Seudonimización: Reemplace los datos relacionados con el usuario por bloques de texto aleatorios y anónimos, de modo que el propietario pueda conservar las entradas (con fines estadísticos) y, al mismo tiempo, eliminarlas de cualquier información personal.
  • Cifrado en tránsito: Asegúrese de que los datos se transmitan siempre utilizando sólidos estándares de cifrado en tránsito (certificados SSL/TLS) y a través de conexiones seguras: esto también se aplica a cualquier tipo de sitio web y servicio basado en la web que contenga formularios, pantallas de inicio de sesión, capacidades de carga/descarga, etc.
  • Cifrado en reposo: Proteja sus unidades de almacenamiento de datos locales (incluidas las utilizadas por servidores y clientes móviles de escritorio &) con un estándar de cifrado en reposo sólido; asegúrese de que los datos almacenados en SaaS y servicios basados en la nube también estén cifrados en reposo.
  • Confidencialidad: Evite el procesamiento no autorizado o ilegal mediante la implementación de conceptos como separación de preocupaciones & separación de tareas, aplicación de políticas de contraseñas, etc.
  • Recuperabilidad: Asegúrese de que todos los datos relevantes estén sujetos a copias de seguridad periódicas y también asegúrese de revisarlos regularmente para asegurarse de que los datos se puedan recuperar correctamente.
  • Evaluación: Someter todo el sistema a revisiones técnicas periódicas, auditorías de terceros, adoptar un conjunto efectivo de indicadores de seguridad, etc.

En este post vamos a hablar de dos de estas medidas técnicas: Cifrado en tránsito y Cifrado en reposo, dejando los otros temas para más artículos.

Introducción: las Tres etapas de los Datos Digitales

Lo primero que debemos hacer es enumerar cuántos «estados» pueden tener realmente los datos digitales, y asegurarnos de comprender cada uno de ellos:

  • En reposo: este es el estado inicial de cualquier dato digital: en términos muy cortos, esto indica los datos que se almacenan en algún lugar sin ser utilizados y/o transmitidos a nadie (incluido software, terceros, seres humanos, etc.). Desde Discos duros locales a Almacenes conectados a la Red, desde pendrives USB a dispositivos móviles, desde carpetas de sistema a servidores de bases de datos, cualquier sistema de almacenamiento físico y lógico, unidad o dispositivo está destinado a ser utilizado para contener datos en reposo, al menos por un tiempo.
  • En tránsito: también conocido como «en movimiento». Esto es relativo a los datos que se transmiten de un lugar a otro. Vale la pena señalar que el concepto de «transferencia de datos» puede tener lugar entre cualquier número de partes, sin limitarse a solo dos (el remitente y un receptor): por ejemplo, cuando transferimos un archivo desde nuestro PC de escritorio a nuestro portátil utilizando nuestra LAN, básicamente estamos realizando una transferencia de datos que involucra a una sola parte (ee.uu.); por el contrario, al enviar una transacción a una base de datos distribuida, como una cadena de bloques, estamos imponiendo una transferencia de datos entre una cantidad indefinida de partes (todos los nodos de la cadena de bloques).
  • En uso: siempre que los datos no solo se almacenen de forma pasiva en un disco duro o un medio de almacenamiento externo, sino que estén siendo procesados por una o más aplicaciones, y por lo tanto en proceso de generación, visualización, actualización, adición, borrado, etc., se pretende que estén «en uso». No hace falta decir que los datos en uso son susceptibles a diferentes tipos de amenazas, dependiendo de dónde se encuentren en el sistema y quién sea capaz de acceder y/o usarlos. Sin embargo, el cifrado de los datos en uso es bastante difícil de lograr, ya que lo más probable es que paralice, obstaculice o bloquee la aplicación que realmente está accediendo a ella: por esta misma razón, la mejor manera de proteger los datos en uso es garantizar que la aplicación se encargue de dicho trabajo adoptando los patrones de desarrollo e implementación más seguros dentro de su código fuente.

La suma de las tres declaraciones explicadas anteriormente se llama «las Tres etapas de los Datos Digitales»: ahora que tenemos la esencia de ellas, estamos listos para profundizar en los temas de cifrado.

Cifrado de datos en reposo

De la definición de» en reposo » dada anteriormente, podemos comprender fácilmente cómo este tipo de datos se encuentra típicamente en un estado estable: no viaja dentro del sistema o la red, y ninguna aplicación o tercero actúa sobre ellos. Es algo que ha llegado a un destino, al menos temporalmente.

Razones para usarlo

¿Por qué deberíamos cifrar esos datos, entonces? Bueno, hay una serie de buenas razones para hacerlo: echemos un vistazo a las más significativas.

Robo físico

Si nuestro dispositivo es robado, el cifrado en reposo evitará que el ladrón pueda acceder de inmediato a nuestros datos. Claro, todavía puede intentar descifrarlo usando fuerza bruta u otros métodos de descifrado de cifrado, pero esto es algo que tomará una cantidad razonable de tiempo: definitivamente deberíamos poder llevar a cabo las contramedidas adeguate antes de que eso suceda, como: cambiar la información de la cuenta que podría ver o usar a través de los administradores de contraseñas de los navegadores existentes, cookies de inicio de sesión, cuentas de clientes de correo electrónico, etc; rastrear nuestro dispositivo y / o emitir un «borrar todos los datos» utilizando nuestros servicios de administración remota de dispositivos de Google o Apple; y así sucesivamente.

Robo lógico

Si nuestro PC, sitio web o cuenta de correo electrónico es hackeado por un usuario o software malicioso, el cifrado en reposo hará que el infractor no pueda acceder a nuestros datos, incluso cuando se lo roban o descargan: es básicamente el mismo escenario de robo físico, excepto que es mucho más sutil porque la mayoría de los usuarios (o administradores) ni siquiera lo sabrán.

Aquí hay otra buena oportunidad para recordar las excelentes palabras pronunciadas por John T. Chambers, ex CEO de Cisco, Inc.:

Hay dos tipos de empresas: las que han sido hackeadas y las que no saben que han sido hackeados.

Teniendo en cuenta el estado actual de Internet hoy en día y la abundancia excesiva de malwares e intentos de piratería medibles, la misma afirmación se puede decir para cualquier usuario final que posea un dispositivo habilitado para la web: 100% garantizado.

Errores humanos

Por no hablar de los robos físicos y / o lógicos, hay muchos otros escenarios en los que el cifrado de datos en reposo podría ser un salvavidas: por ejemplo, si perdemos nuestro teléfono inteligente (y alguien lo encuentra); o si cometemos un error al asignar permisos, otorgando a usuarios no autorizados (o clientes) acceso a archivos/carpetas/datos que no deberían poder ver; o si olvidamos nuestra PC local o contraseña de correo electrónico a la vista, permitiendo así que cualquier persona que no tenga ganas de respetar nuestra privacidad eche un vistazo a nuestras cosas; y la lista podría continuar por un tiempo.

Cómo puede ayudarnos

Para resumir todo eso, podríamos responder a nuestras preguntas anteriores con una sola línea diciendo que cifrar nuestros datos en reposo podría ayudarnos a lidiar mejor con una posible violación de datos.

No nos ayudará a evitar que eso suceda, que es principalmente una tarea para firewalls, antivirus, buenas prácticas y protocolos de seguridad, pero definitivamente nos dará la oportunidad (y el tiempo) de configurar las contramedidas adecuadas, con la esperanza de minimizar el daño general causado por cualquier posible fuga.

Cómo implementarlo

Implementar un protocolo de seguridad de cifrado de datos en reposo puede ser fácil o difícil, dependiendo de los siguientes factores:

  • qué fuentes/almacenamientos de datos físicos y lógicos queremos (o tenemos) proteger: las fuentes físicas incluyen discos duros, elementos NAS, teléfonos inteligentes, pendrives USB, etc., mientras que las fuentes lógicas incluyen bases de datos locales o remotas, activos basados en la nube, dispositivos virtualizados, etc.;
  • quién necesita tener acceso a estos datos: seres humanos (usuarios locales o remotos u otros terceros que se conectan a nosotros), software impulsado por personas (como MS Word) o procesos o servicios automáticos (como una tarea de copia de seguridad nocturna);
  • cuánto estamos dispuestos a sacrificar en términos de rendimiento general y/o facilidad de acceso para aumentar la seguridad: ¿podemos pedir a todos nuestros usuarios locales (y remotos) que descifren estos datos antes de poder acceder a ellos? ¿Deberíamos usar una contraseña, un token físico o un código OTP? ¿Podemos hacer que el cifrado sea lo suficientemente transparente para no obstaculizar a nuestros usuarios externos y también para permitir que nuestras aplicaciones y herramientas de software se ocupen de los datos cifrados cuando necesiten hacerlo?

Afortunadamente, estos factores son bien conocidos por la mayoría de las herramientas de cifrado en reposo, que han sido diseñadas para proteger nuestros datos sin comprometer la funcionalidad general de nuestro entorno:

  • si queremos cifrar unidades de disco duro físicas (o lógicas), podemos usar excelentes herramientas de software como VeraCrypt (100% gratis)o AxCrypt (versión gratuita disponible);
  • si necesitamos proteger nuestros pendrives USB, podemos usar las herramientas antes mencionadas o comprar una unidad Flash cifrada por hardware que implemente mecanismos de desbloqueo basados en huellas dactilares o contraseñas (a partir de 20~30 dólares);
  • si queremos cifrar los datos almacenados en un Sistema de Administración de Bases de datos, la mayoría de los DBMS disponibles en la actualidad proporcionan técnicas de cifrado nativas (cifrado de espacios de tablas InnoDB para MySQL y MariaDB, Cifrado de Datos Transparente para MSSQL, etc.);
  • si estamos buscando una forma de almacenar de forma segura nuestros mensajes de correo electrónico, podemos adoptar fácilmente un estándar de cifrado de correo electrónico seguro como S/MIME o PGP (ambos son gratuitos): aunque estos protocolos están relacionados principalmente con el cifrado en tránsito, ya que protegen los datos principalmente destinados a ser transferidos a partes remotas, de hecho, se usan comúnmente para realizar un cifrado del lado del cliente, lo que significa que protegen los mensajes de correo electrónico mientras aún están en reposo. No hace falta decir que, dado que es muy probable que se envíen esos mensajes, nuestros destinos también tendrán que adoptar el mismo estándar para poder leerlos.

Cifrado de datos en tránsito

Como su nombre indica, los datos en tránsito deben verse como una transmisión: un gran ejemplo de datos en tránsito es una página web típica que recibimos de Internet cada vez que navegamos por la web. Esto es lo que sucede bajo el capó en pocas palabras:

  1. Enviamos una solicitud HTTP (o HTTPS) al servidor que aloja el sitio web que estamos visitando.
  2. El servidor web acepta nuestra solicitud, la procesa encontrando el contenido (estático o dinámico) que hemos solicitado, y luego nos lo envía como respuesta HTTP (o HTTPS) a través de un puerto TCP dado (generalmente 80 para HTTP y 443 para HTTPS).
  3. Nuestro cliente, generalmente un navegador web como Google Chrome, Firefox o Edge, recibe la respuesta HTTP(s), la almacena en su caché interna y nos la muestra.

Como podemos ver, claramente, hay datos trasmission entre el servidor y el cliente: durante esa transmisión, los datos solicitados (el código HTML de la página web) se convierten en un flujo que pasa por al menos cinco estados diferentes:

  1. comienza en reposo (almacenamiento del servidor),
  2. luego cambia a en uso (memoria del servidor web),
  3. luego a en tránsito (utilizando el Protocolo de transferencia de hipertexto en un puerto TCP dado),
  4. luego de nuevo a en uso (navegador web),
  5. y finalmente a en reposo (caché de cliente).

Razones para usarlo

Ahora, demos por sentado que tanto el servidor como el cliente han implementado un fuerte nivel de cifrado de datos en reposo: esto significa que el primer y el quinto estado son internamente seguros, porque cualquier intento de intrusión se realizaría contra datos cifrados. Sin embargo, el tercer estado, donde los datos están en tránsito, puede estar cifrado o no, dependiendo del protocolo que el servidor y el cliente estén utilizando realmente para transmitir los datos.

Esto es lo que generalmente sucede debajo del capó cuando se usa el protocolo HTTP:

Cifrado en tránsito y Cifrado en reposo: Definiciones y mejores prácticas

Como podemos ver, el problema de seguridad es bastante evidente: cuando el servidor web procesa la solicitud entrante y descifra de forma transparente los datos solicitados, el canal utilizado para transferirlos al cliente web (HTTP) no está cifrado: por lo tanto, cualquier parte infractora que logre realizar con éxito un ataque adecuado (consulte a continuación) podría tener acceso inmediato a nuestros datos no cifrados.

¿Cómo puede ayudarnos

Si tiene curiosidad sobre qué tipo de ataques se pueden usar contra un protocolo de transmisión basado en TCP sin cifrar, como HTTP, aquí hay un par de amenazas que debe tener en cuenta:

  • Espionaje: un ataque de capa de red que se centra en capturar pequeños paquetes de la red transmitidos por otros equipos y leer el contenido de datos en busca de cualquier tipo de información (más información aquí).
  • Man-in-the-Middle: un ataque basado en manipulación en el que el atacante transmite y/o altera secretamente la comunicación entre dos partes para hacerles creer que se están comunicando directamente entre sí (más información aquí).

Implementar protocolos de cifrado adecuados en tránsito para proteger nuestros puntos de transferencia de datos críticos definitivamente nos ayudará a prevenir este tipo de amenazas.

Cómo implementarlo

Implementar un patrón de cifrado efectivo en tránsito es principalmente una cuestión de apegarse a una serie ampliamente conocida de recomendaciones y mejores prácticas al diseñar la transferencia de datos real: qué protocolos (no) usar, qué software (no) adoptar, y así sucesivamente. Por ejemplo:

  • Siempre que se pueda acceder al dispositivo transmisor a través de la interfaz web, el tráfico web solo debe transmitirse a través de la Capa de Sockets Seguros (SSL) mediante protocolos de seguridad sólidos, como la Seguridad de la capa de Transporte (TLS): esto se aplica a cualquier sitio web y / o servicio accesible por WAN, incluidos servidores de correo electrónico y similares. A partir de hoy, la mejor (y más fácil) manera de implementar la seguridad TLS e implementar el cifrado en tránsito para cualquier sitio web es obteniendo un certificado SSL/TLS HTTPS: se pueden comprar a las autoridades de CA registradas (Comodo, GlobalSign, GoDaddy, DigiCert y su enorme lista de revendedores/subsellers) o generarse automáticamente a través de un proceso de firma automática, como explicamos brevemente en esta publicación. Aunque los certificados autofirmados otorgarán el mismo nivel de cifrado de sus contrapartes firmadas por CA, generalmente los usuarios no confiarán en ellos, ya que sus clientes del navegador no podrán verificar la buena fe de la identidad del emisor (usted), marcando su sitio web como «no confiable»: por esta misma razón, solo deben usarse en servidores/servicios que no sean de producción (o de acceso público).
  • Cualquier dato transmitido a través de correo electrónico debe protegerse utilizando herramientas de cifrado de correo electrónico criptográficamente sólidas, como S/MIME o PGP, que ya cubrimos cuando hablamos de cifrado de datos en reposo: aunque estos protocolos realizan su cifrado a nivel de cliente (y, por lo tanto, en reposo), también son excelentes para proteger el flujo asincrónico en tránsito de un mensaje de correo electrónico.
  • Cualquier dato binario debe cifrarse utilizando herramientas de cifrado de archivos adecuadas antes de adjuntarse al correo electrónico y/o transmitirse de cualquier otra manera. La mayoría de los protocolos de compresión, incluidos ZIP, RAR y 7Z, admiten un nivel decente de cifrado protegido por contraseña hoy en día: usarlos a menudo es una excelente manera de agregar un nivel adicional de seguridad y reducir el tamaño de los archivos adjuntos al mismo tiempo
  • La transmisión no web de texto y / o datos binarios también debe cifrarse a través de cifrado a nivel de aplicación, teniendo en cuenta los siguientes escenarios:
    • Si la base de datos de la aplicación reside fuera del servidor de aplicaciones, la conexión entre la base de datos y la aplicación debe cifrarse mediante algoritmos criptográficos compatibles con FIPS.
    • Cuando el cifrado a nivel de aplicación no esté disponible, implemente el cifrado a nivel de red, como el túnel IPsec o SSH, y/o asegúrese de que la transmisión en sí se realice utilizando dispositivos autorizados que funcionen dentro de subredes protegidas con controles de firewall sólidos (VPN y similares).

La siguiente tabla muestra algunos ejemplos de los protocolos de red inseguros que debe evitar y sus homólogos seguros que debe usar en su lugar:

Transfer Type What to avoid (insecure) What to use (secure)
Web Access HTTP HTTPS
E-Mail Servers POP3, SMTP, IMAP POP3S, IMAPS, SMTPS
File Transfer FTP, RCP FTPS, SFTP, SCP, WebDAV over HTTPS
Remote Shell telnet SSH2
Remote Desktop VNC radmin, RDP

Cifrado de extremo a extremo

El cifrado en tránsito es realmente útil, pero tiene una limitación importante: no garantiza que los datos se cifrarán en su punto de partida y no se descifrarán hasta que estén en uso. En otras palabras, nuestros datos aún pueden estar precedidos por espías ocasionales y/o malintencionadas, incluidos proveedores de Internet, proveedores de servicios de comunicación y cualquiera que pueda acceder a las claves criptográficas necesarias para descifrar los datos mientras están en tránsito.

Superar esta limitación es posible gracias al Cifrado de Extremo a Extremo (E2EE), un paradigma de comunicación donde solo las partes finales que se comunican, por ejemplo, los usuarios, pueden descifrar y, por lo tanto, leer los mensajes. Los datos cifrados de extremo a extremo se cifran antes de que se transmitan y permanecerán cifrados hasta que la parte final los reciba.

Razones para usarlo

Para comprender mejor cómo el cifrado de extremo a extremo reemplaza al cifrado en tránsito en términos de resistencia a los espías, imaginemos los siguientes escenarios.

  1. Supongamos que un tercero logra plantar su propio certificado raíz en una autoridad de certificación de confianza: tal acción podría ser realizada teóricamente por un agente estatal, un servicio de policía o incluso un operador malicioso/corrupto de una Autoridad de Certificación. Cualquiera que sea capaz de hacer esto podría operar con éxito un ataque de hombre en el medio en la conexión TLS en sí, escuchando a escondidas la conversación y posiblemente incluso manipulándola. Los datos cifrados de extremo a extremo son resistentes de forma nativa a este tipo de ataque, porque el cifrado no se realiza a nivel de servidor.
  2. El cifrado de extremo a extremo también puede aumentar el nivel de protección entre los procesos de usuario generados por un sistema operativo. ¿Recuerdas las fallas recientes de la CPU llamadas ESPECTRO y FUSIÓN? Ambos permitieron que un tercero malicioso (como un proceso falso) leyera datos de memoria sin estar autorizado para hacerlo. El cifrado de extremo a extremo podría evitar este escenario siempre y cuando el cifrado se realice entre el proceso del usuario (en lugar del núcleo), evitando así que los datos no cifrados se guarden en la memoria.

Cómo puede ayudarnos

El cifrado de extremo a extremo es la forma de comunicación más segura que se puede usar hoy en día, ya que garantiza que solo usted y la persona con la que se está comunicando puedan leer lo que se envía, y nadie en el medio, ni siquiera el servicio que realmente realiza la transmisión entre pares. Varias implementaciones de cifrado de extremo a extremo ya son efectivas en la mayoría de las aplicaciones y servicios de mensajería (incluidos Whatsapp, LINE, Telegram y similares). En un escenario típico de «aplicación de comunicación», los mensajes están protegidos con un candado, y solo el remitente y el destinatario tienen la llave especial necesaria para desbloquearlos y leerlos: para mayor protección, cada mensaje se envía automáticamente con su propio candado y llave únicos.

Cómo implementarlo

El cifrado de extremo a extremo se puede usar para proteger cualquier cosa: mensajes de chat, archivos, fotos, datos sensoriales en dispositivos IoT, datos permanentes o temporales. Podemos elegir qué datos queremos cifrar de extremo a extremo. Por ejemplo, es posible que queramos mantener información benigna relacionada con una aplicación de chat (como las marcas de tiempo) en texto plano, pero cifrar el contenido del mensaje de extremo a extremo.

  • Cada usuario tiene una clave pública privada & que el software tiene que generar en el dispositivo de los usuarios al registrarse o la próxima vez que inicien sesión.
  • La clave pública del usuario se publica en un lugar público( como un servicio de administración de claves basado en REST): esto es necesario para que los usuarios encuentren las claves públicas de los demás y puedan cifrar los datos entre sí.
  • La clave privada del usuario permanece en el dispositivo del usuario, protegida por el almacén de claves nativo del sistema operativo (u otros almacenes seguros).
  • Antes de enviar un mensaje de chat o compartir un documento, la aplicación encripta el contenido utilizando la clave pública del destinatario (del lado del cliente).

Conclusión

Nuestro viaje a través de los diversos paradigmas de cifrado está completo: esperamos sinceramente que esta descripción general ayude a los usuarios y administradores de sistemas a aumentar su conocimiento de los diversos tipos de cifrado disponibles en la actualidad.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

lg