Criptografía y protección de datos (1 de 2)

Cuando la confidencialidad de la información es uno de los valores a proteger en un tratamiento de datos, entonces el uso de la criptografía es la única alternativa eficaz para lograr este objetivo. En algunos casos, la necesidad de cifrar la información de valor viene determinadas no sólo por los propios requisitos de negocio, sino por imperativos legales o comerciales; por ejemplo, en el caso de las leyes de protección de datos o estándares como el de la industria de tarjetas de pago (PCI/DSS).

Sin embargo, es frecuente observar reticencias por parte de los responsables técnicos a la hora de implementar criptografía en los procesos. Esto es especialmente cierto en el caso de pequeñas y medianas empresas con menos recursos, debido a los costes y la complejidad de gestión que conlleva un uso adecuado de la misma. Lo cierto es que la no aplicación de la criptografía (o su uso inadecuado) puede tener consecuencias graves para una organización en el caso de producirse un incidente de trascendencia. Estas consecuencias pueden incluir sanciones millonarias, costes derivados de la recuperación del incidente y daño reputacional, entre otras.

Enmarcado en nuestra serie de artículos de ayuda al Data Protection Officer, este post es el primero de una serie de dos artículos que por razones de espacio vamos a publicar de manera consecutiva. En los artículos vamos a tratar de dar una panorámica lo más amplia y útil posible sobre el uso de la criptografía en el marco de un programa efectivo de protección de datos. No vamos a describir los métodos de cifrado existentes, sino las distintas alternativas técnicas, los escenarios en donde son de utilidad y sus puntos débiles. No obstante, en gran medida, el artículo hace referencia a escenarios de cifrado simétrico en donde la misma clave se usa para cifrar y descifrar la información.

Principales barreras del cifrado…

Es bien sabido que la principal barrera para la adopción o uso adecuado del cifrado de datos no está en la robustez de los algoritmos sino en la gestión de las claves de cifrado. Por ello, en cualquier implementación seria de cifrado de los datos, el responsable debe asegurarse de que no haya vulnerabilidades en este sentido. La problemática asociada con la gestión de las claves incluye:

  • La generación de claves de cifrado de calidad (deben tener la longitud y el grado de aleatoriedad requeridos). El uso de claves de cifrado de baja calidad facilitan los ataques de fuerza bruta o de diccionario.
  • El almacenamiento y distribución seguras de dichas claves. En definitiva, la robustez del sistema de cifrado se basa en la restricción del acceso de aquellos que pueden tener acceso a la clave de cifrado/descifrado.
  • La rotación periódica de las mismas y volver a cifrar la información con las nuevas claves.
  • Mecanismos de recuperación de claves

además, otras consideraciones deberán ser tenidas en cuenta:

  • El eventual coste de los equipos de hardware/software necesarios y su mantenimiento posterior
  • Dificultades añadidas en otros procesos como consecuencia del cifrado (ej: análisis de datos para resolución de incidencias, limitaciones en las consultas a bases de datos, procedimientos de restauración tras errores de sistemas).
  • Elevados costes debidos a los trabajos de adaptación de código fuente de aplicaciones y diseño de las bases de datos existentes.
  • Eventuales necesidades de formación de los empleados
  • Posibles problemas de rendimiento de los sistemas.
  • Pérdida de usabilidad del sistema.
  • Falta de conciencia/cultura de los usuarios y la organización en cuanto a los requisitos de seguridad de los datos

Todos estos son aspectos que habrán de considerarse cuidadosamente a la hora de establecer las opciones adecuadas a cada caso.

y algunas premisas básicas

Además de las dificultades que habrá que afrontar al implantar un sistema de cifrado, es importante que los responsables tengan en cuenta las siguientes cuestiones:

  • Como premisa básica debe evitarse el almacenamiento o transmisión de datos sensibles si no es estrictamente necesario.Siempre que sea factible debería evitarse la necesidad de tener que manejar datos que requieran ser cifrados.
  • Sin una adecuada gestión de las claves y de los procesos relacionados, la seguridad global del sistema puede verse afectada. El hecho de usar algoritmos robustos de cifrado no implica necesariamente un sistema seguro, si el control de acceso a las claves de cifrado se ve comprometido.
  • El uso de algoritmos de cifrado certificados, públicos y ampliamente testados es siempre recomendable. Tratar de huir de mecanismos de cifrado propietarios y ad-hoc.
  • Del mismo modo, es siempre recomendable usar soluciones de hardware o software abiertas, certificadas y ampliamente probadas.
  • Algunos sistemas de cifrado incorporan puertas traseras o mecanismos de recuperación de claves. Si bien esto puede ser un requisito para la usabilidad de las soluciones, también puede suponer una vulnerabilidad que arruine la seguridad global del sistema. Es necesario evaluar cuidadosamente el riesgo asociado con estas “puertas de atrás” en caso de existir.

Niveles de cifrado

Se suele decir que los datos pueden manifestarse en dos estados básicos, en tránsito o almacenados. Tratándose de datos sensibles, puede ser requerido el cifrado en ambos estados para una protección global de la información a lo largo de todo el ciclo de procesamiento:

Datos en Tránsito

El cifrado de los datos en tránsito evitará la pérdida de confidencialidad de los datos como consecuencia de que agentes no autorizados “pinchen” el canal de comunicaciones durante la transmisión de los datos. El cifrado de los datos en tránsito se puede habilitar, dependiendo de los casos con protocolos como IPSec, Https, SSL o ssh…

Datos almacenados (“en reposo”)

Sin embargo, el mero cifrado del canal de transmisión no protege los datos en el origen antes de la transmisión ni el destino una vez transmitidos. Por ello, además del canal de transmisión puede ser necesario el cifrado de los datos “en reposo”. A su vez, en este sentido, los datos pueden ser cifrados a diferentes niveles. La siguiente tabla muestra las ventajas e inconvenientes de cada uno de ellos:

Nivel de Cifrado

Descripción

Ventajas

Inconvenientes

Soporte

El cifrado se establece a nivel de disco, volumen o cinta.

Es relativamente fácil de implementar y transparente para el usuario

Sólo es efectivo para prevenir el acceso no autorizado a los datos en caso de pérdida o robo del soporte de almacenamiento.

No ofrece protección cuando el acceso a la información almacenada se hace a través del sistema, tanto si se trata de accesos no autorizados a nivel del sistema operativo como de robo de datos mediante código malicioso (malware).

Los backups del sistema operativo requieren de una solución adicional para el cifrado ya que el administrador del sistema accede a los datos en claro durante el proceso de backup de la información.

Por sí solo no permite el cumplimiento de los requisitos de los principales estándares y regulaciones de protección de datos.

Aplicación

Toda la gestión del cifrado y descifrado se lleva a cabo por la aplicación.

Presenta el mayor grado de protección, dado que el control de acceso a la información se hace a través del login en la aplicación y los permisos asociados al rol del usuario que accede.

Con una gestión adecuada de las claves de cifrado puede impedir que el administrador del sistema o de la base de datos puedan acceder a la información.

Por otro lado, permite un gran nivel del granularidad al permitir que sólo se cifren los datos estrictamente necesarios.

Simplifica el proceso de backup ya que el dato al estar cifrado en la base de datos (o fichero) se copia cifrado en el soporte de backup.

Si las claves de cifrado se mantienen almacenadas y accesibles únicamente a nivel del servidor de aplicación y separado del de base de datos, para comprometer la seguridad de los datos es necesario comprometer ambos servidores (el de aplicaciones y el de BBDD).

Asimismo, el administrador del servidor de aplicaciones puede llegar a tener acceso a la clave de cifrado, pero normalmente no debe tener acceso al servidor de BBDD lo que dificulta el compromiso de la información,

Suele ser una de las mejores opciones si es necesario cumplir con regulaciones o estándares de protección de datos.

El esfuerzo de adaptación del código fuente de las aplicaciones y de la estructura de la base de datos para soportar el cifrado es bastante alto.

El problema de la gestión de las claves de cifrado/descifrado a nivel del código fuente requiere tomar la decisión de si esta gestión de claves se debe implementar a nivel de código por parte de los desarrolladores lo cual puede derivar en vulnerabilidades que comprometan la seguridad, o bien que se apoyen en sistemas externos de gestión (ej: uso de HSM o módulo de seguridad hardware) lo cual puede aumentar la complejidad y los costes del proyecto.

Puede existir la tentación por parte de los responsables de desarrollo de implementar sus propios mecanismos de cifrado no estándar. Lo recomendable es hacer uso de librerías de cifrado certificadas que implementen mecanismos robustos y altamente probados (ej: AES 256…) o usar sistemas externos para las funciones criptográficas (ej: uso de HSM o módulo de seguridad hardware) lo cual puede aumentar la complejidad y los costes del proyecto.

El rendimiento global del sistema puede verse afectado si no se hace una implementación adecuada.

Base de Datos

Algunos sistemas de bases de datos presentan funcionalidades nativas de cifrado de campos de datos, tablas o la base de datos al completo. Esta funcionalidad suele conocerse como Transparent Database Encryption o TDE

Una vez activado, el cifrado se puede establecer a nivel de columna, tabla o base de datos estableciendo un mecanismo de control de acceso que permita que sólo las aplicaciones y administradores autorizados expresamente puedan acceder a los datos

Presenta un punto intermedio entre las dos opciones anteriores en cuanto a granularidad del control de acceso, y sencillez y transparencia de la solución.

Simplifica el proceso de backup ya que el dato al estar cifrado en la base de datos (o fichero) se copia cifrado en el soporte de backup.

No todos los sistemas gestores de base de datos permiten esta funcionalidad de TDE.

Salvo que la gestión de las claves de cifrado de delegue en un sistema externo (ej: uso de HSM o módulo de seguridad hardware), el administrador de la base de datos tiene acceso a la información en claro, lo que supone un incumplimiento de algunas regulaciones y estándares.

Los datos son descifrados antes de ser enviados a la aplicación, lo cual puede suponer un punto de compromiso de seguridad del sistema que debe ser gestionado.

Dado que la clave de descifrado debe estar en algún momento en la base de datos (donde los datos cifrados residen), el compromiso de la base de datos puede suponer la pérdida de confidencialidad de los datos al mismo tiempo.

Se puede producir un efecto de dependencia excesiva con respecto del proveedor de base de datos que puede limitar la flexibilidad del sistema.

 

Cifrado en dispositivos de usuario final

Como hemos visto, las soluciones de cifrado a nivel de soporte suelen ser de la máxima utilidad para asegurar los datos almacenados en dispositivos portátilesTDE de usuario final (ej: ordenadores, discos duros removibles), donde hay un alto riesgo de robo o pérdida del dispositivo. De este modo, cuando se intenta arrancar el dispositivo, si no se tiene la clave de acceso a la información el acceso no es en principio posible.

La siguiente tabla muestra diferentes tecnologías aplicables cuando se trata de asegurar la información en dispositivos de usuario final:

Tecnología

Descripción

Ventajas

Inconvenientes

Full Disk Encryption (FDE).

Cifrado de Disco completo

Se trata en la mayoría de los casos de soluciones software que se basan en cifrar todos los datos del disco necesarios para el arranque del equipo, incluido el Sistema Operativo. Cuando se arranca el ordenador, una modificación en el sector de arranque hace que como paso previo a la carga del sistema operativo sea necesario introducir una clave. Esta clave es la misma usada para cifrar los datos en el disco, con lo que en caso de que la autenticación sea satisfactoria, se puede proceder con el descifrado del sector de arranque y el Sistema Operativo.

Fácil de implementar de manera centralizada en dispositivos portátiles (ej: ordenadores) con alto riesgo de robo o pérdida.

Muy eficaz para impedir el acceso a la información cuando se pierde o se roba el portátil completamente apagado.

Toda la información almacenada es ilegible para alguien que no conozca la clave de descifrado.

Una vez arrancado el sistema, los datos están en claro y la única protección es la que brinda el sistema operativo.

Virtual Disk Encryption

Cifrado de disco virtual

Con esta tecnología se crea un fichero cifrado llamado container (contenedor) que puede ser montando en el sistema operativo como si se tratase de una unidad de disco real. Esta unidad de disco virtual puede almacenar todo tipo de ficheros y directorios. El contenido del container está cifrado y solo puede ser accedido una vez el disco es montando por el sistema operativo. Para poder hacer esto, es necesario introducir la clave usada inicialmente para cifrar el contenedor. A diferencia del caso del cifrado completo de disco, acceder al contenido del disco virtual cifrado sólo es posible después de que se haya arrancado el ordenador.

Fácil de implementar de manera centralizada.

La información almacenada en el disco virtual es ilegible para alguien que no conozca la clave de descifrado.

El contenedor puede ser copiado a otro soporte (ej: CD, llave USB…) manteniendo el cifrado; con lo que se facilita la realización de tareas de backup.

Muchas de las soluciones disponibles permiten la generación de ficheros ejecutables que incluyen el contenedor, de modo que el ejecutable puede ser distribuido y accedido por terceros en otra ubicación simplemente ejecutando el contenedor e incluyendo la clave, sin necesidad de tener instalado el software original que genera y gestiona los discos duros virtuales.

Para alguien que no conozca la clave de descifrado no es posible conocer siquiera la estructura de archivos y directorios dentro del contenedor.

Sólo es ilegible la información dentro del contenedor.

Cuando el contenedor está abierto, entonces la información es accesible a cualquiera con acceso al ordenador.

El cifrado de la información depende en gran medida de que el usuario recuerde guardar la información dentro del contenedor, por lo que en caso de error la información puede quedar desprotegida.

A nivel del Sistema Operativo, tras su uso, pueden quedar trazas de la información confidencial accesibles, por ejemplo, en memoria, en ficheros temporales, ficheros swap , ficheros de hibernación. Esta información queda accesible y desprotegida, aun cuando se haya cerrado (desmontando) el disco duro virtual.

File/Folder Encryption

Cifrado de Fichero/Directorio

Con esta tecnología se permite el cifrado de un archivo individual o un directorio.

La principal diferencia con respecto al cifrado de disco virtual es que cualquiera que no conozca la clave de cifrado puede sin embargo conocer detalles de los archivos cifrados como su nombre, etc…

Para poder acceder al contenido es necesario introducir la clave de cifrado.

Mismas que en el caso de disco duro virtual.

Algunas soluciones permiten establecer el cifrado automático de ficheros y/o carpetas dependiendo de determinados parámetros como por ejemplo, el usuario conectado.

Mismas que en el caso de disco duro virtual.

true_crypt

 

Vamos a finalizar aquí esta primera entrega. En nuestro próximo post publicaremos el final del artículo que esperamos os sea de utilidad. Hasta entonces un fuerte abrazo y gracias por la atención.

Deja un comentario