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

Este post finaliza  la serie de dos artículos  que iniciamos en nuestra anterior entrega y dedicada a  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. Ambos artículos se enmarcan en la serie dedicada a proporcionar información útil para los responsables de programas de protección de datos.

Cifrado a nivel de aplicación y gestión de claves

Como vimos en nuestro artículo anterior, el cifrado de datos a nivel de aplicación plantea a los desarrolladores la cuestión de cómo se va a manejar desde el código fuente de la aplicación el acceso a la clave maestra necesaria para el cifrado/descifrado de los datos. Las soluciones más baratas y sencillas consisten en almacenar esta clave en claro en algún lugar (ej: fichero de configuración)  fuera del árbol de directorios del servidor web y proteger mediante permisos restrictivos el directorio donde reside este archivo; sin embargo, en este tipo de soluciones el administrador del servidor de aplicaciones suele tener acceso a la clave; además, en caso de compromiso del servidor la clave también podría quedar comprometida.  Para una mayor seguridad, a veces, la clave maestra se almacena en estos ficheros cifrada, pero ello sólo dificulta algo más el problema de acceder ilícitamente a la misma, ya que la clave para descifrar la clave maestra tiene que ser almacenada a su vez en algún sitio (ej: en el código fuente) .

Otras alternativas económicas consisten en no almacenar la clave en ningún fichero sino en recibir la clave como parámetro tecleado en la línea de comandos al arrancar el servidor o usar la contraseña tecleada por cada usuario en el proceso de login y guardar en memoria esta clave para usos posteriores. En este último escenario, se facilita además el que la clave usada para cifrar los datos sea diferente para cada cliente, lo cual es una práctica bastante recomendable en general, ya que dificulta el compromiso total de la base de datos.

Uso de módulos hardware (HSM)

Sin embargo, en el caso de aplicaciones que requieran alta seguridad y rendimiento, la solución recomendada pasa por el uso de módulos de seguridad hardware (hardware security modules o HSM). Se trata de plataformas de confianza (normalmente son appliances que se instalan en red), que ofrecen a las aplicaciones autorizadas y autenticadas servicios de ejecución de procesos criptográficos y/o de gestión de claves de seguridad. Aunque los HSM suelen ser bastante caros, ofrecen múltiples ventajas:

  • Suelen implementar procesos criptográficos ampliamente probados y certificados
  • Facilitan la generación, acceso y rotación de múltiples claves de alta calidad
  • Depende de cómo se instalen y se usen pueden permitir una segregación completa en acceso a las claves criptográficas; de modo que ni los desarrolladores, ni el administrador del servidor de aplicaciones ni el de base de datos puedan ni necesiten tener acceso a las claves.
  • Asimismo, funcionan de tal manera que el código fuente de las aplicaciones que usan los HSM no tengan necesidad de acceder a las claves de cifrado.
  • Permite establecer procedimientos de “4 ojos” y “segregación de funciones” que posibilitan que nadie pueda disponer de todas las credenciales necesarias para generar y/o acceder a las claves
  • Permite una trazabilidad de todas las actividades mediante sistemas de auditoría robustos
  • Incorpora mecanismos de seguridad física que dificultan la manipulación de la infraestructura de hardware.
  • Posibilitan operaciones de cifrado de alto rendimiento y capacidades  de alta disponibilidad
  • Permiten cumplir los requisitos más exigentes de normativas como la PCI/DSS
  • Proporcionan herramientas de desarrollo que permiten integrar funcionalidad propietaria dentro del ámbito de seguridad del propio dispositivo.
  • Muchas bases de datos que implementan funcionalidad de cifrado transparente (TDE), pueden ser configuradas para usar las claves almacenadas en HSM.

Como alternativa intermedia, existen soluciones software que replican parte de la funcionalidad descrita y que aunque no proporcionan el mismo nivel de seguridad que las soluciones basadas en hardware, son más baratas y pueden ser una alternativa a considerar.

hsm

Soluciones para el cifrado de backups

La forma más sencilla de abordar el cifrado de los datos contenidos en los soportes de backup es que este cifrado se produzca en los datos origen antes de generar el propio backup. No obstante,  cuando este no es el caso, entonces el cifrado puede ser realizado por los propios sistemas de backup, la mayoría de las cuales disponen de esta funcionalidad. Algunas soluciones están basadas en software (ej: Symantec Backup Exec)  y otras en hardware. Las soluciones hardware incluyen las capacidades de cifrado en las propias grabadoras (entre ejemplos muy conocidos las soluciones de cinta LTO y el DDS). La principal ventaja de las soluciones hardware es la alta velocidad de cifrado; por su parte, algunas de las soluciones software, permiten mediante agentes remotos que los datos sean cifrados antes de ser enviados por la red hacia el servidor de backup, lo que evita el tránsito de los datos en claro por la red.

Cifrado del correo electrónico

El correo electrónico no fue diseñado teniendo como requisito la seguridad; de hecho, se suele asimilar la privacidad que permite con la de una tarjeta postal enviada por el correo ordinario, donde el contenido puede ser visualizado por cualquier persona que tenga acceso a la tarjeta.

Para solucionar en parte este problema, los servidores de correo electrónico soportan el uso de cifrado del canal de comunicación (ej: haciendo uso de SSL), aunque esta opción no está muy extendida.

Sin embargo, aunque el problema del correo en tránsito pueda resolverse por esta vía, el contenido queda aún en claro cuando la información está “en reposo”  en los servidores de correo origen y destino.  En este sentido, sobre todo cuando se trata de servicios de correo de terceros como Gmail o Hotmail, además de la posibilidad de acceso por parte de los empleados de estas compañías, no hay que olvidar que existen legislaciones como la de EEUU que pueden permitir el acceso a estos correos transcurrido cierto tiempo sin que sea necesario siquiera notificarlo al dueño del mensaje.  En relación con esto, en estas últimas semanas están siendo bastante comentadas las noticias que hacen referencia al espionaje sistemático que la NSA estadounidense supuestamente viene realizando sobre las comunicaciones públicas con la supuesta connivencia de los principales gigantes de Internet. Por ello, el cifrado del contenido de extremo a extremo es un tema importante a considerar.

La forma más básica de solucionar el problema del cifrado del contenido “en reposo” consiste en incluir el contenido a proteger dentro de un fichero y usar un programa para cifrarlo y enviarlo como adjunto en el correo electrónico (ej:  WinZip u otro). Esta solución, si bien es barata y sencilla, plantea varios problemas:

  • Depende de que el usuario sea consciente de la necesidad de cifrar el contenido y de que sepa cómo hacerlo, lo que no permite una aplicación consistente de la política de cifrado.
  • Requiere que la clave para descifrar el archivo sea comunicada de manera segura al destinatario por una vía distintas al correo electrónico (ej: por teléfono).
  • Especialmente en las empresas, los servidores de correo suelen bloquear aquellos archivos adjuntos que van cifrados / protegidos por contraseña, lo cual afecta severamente a la usabilidad del sistema.

Por ello, esta alternativa no es la más recomendable cuando hay múltiples usuarios enviando y recibiendo correos electrónicos.

Otras alternativas para cifrar el contenido de correos electrónicos hacen uso de criptografía de clave pública. La privacidad se garantiza cifrando desde el cliente de correo los mails con la clave pública de receptor; de este modo, sólo el receptor puede descifrar el contenido haciendo uso de su clave privada. Entre los estándares que permiten esto están S/MIME  (Secure/Multipurpose Internet Mail Extensions) y PGP (Pretty Good Privacy), soportados por los principales programas cliente de correo. Sin embargo, aunque estas tecnologías son relativamente transparentes en cuanto a la facilidad de uso una vez establecidas, el proceso inicial de generación y distribución de certificados de usuario y claves públicas es particularmente complicado cuando afecta a múltiples usuarios y hay que compartir estas claves a través de Internet.

Seguridad en las transferencias de ficheros

Desde los albores del Intercambio Electrónico de Datos (EDI),  es muy frecuente que las empresas intercambien entre sí grandes volúmenes de información en forma de ficheros.  Aún hoy en día, no es infrecuente encontrarse con sistemas de transmisión de ficheros que no suelen incorporar mecanismos de seguridad adecuados (ej: FTP).

En relación con la transferencia de ficheros sensibles,  el primer punto a resolver es el cifrado del canal de transmisión, especialmente si se hace a través de redes públicas. En este sentido existen distintas alternativas fáciles de implementar como los protocolos IPSec, VPN, SSH / sFTP e incluso transferencias basadas en servicios web bajo HTTPS.

Pero por encima del cifrado del canal de transmisión, puede ser necesario el cifrado de los archivos que se transmiten. En este sentido, el uso de OpenPGP, PKCS#7 o soluciones de compresión y cifrado de ficheros suelen ser  la solución, aunque la premisa básica es que cuanta mayor integración con los sistemas origen y destino de la información, mejor y que conviene asegurarse de que la información no quede innecesariamente en claro a lo largo del procesamiento. Soluciones como PGP Command Line tratan de dar respuesta a estas necesidades, dando muy buenos resultados en procesos batch, transferencias de datos y procesos de backup, permitiendo el cifrado de automatizado de la información y protegiendo la información de servidor a servidor.

pgp_cl

Protección de datos y Cloud Computing

La prestación de servicios de TI en régimen de Cloud Computing es sin duda una de las revoluciones de comienzos de este sigo XXI. Con una presión por la reducción de costes cada vez más acuciante y con la necesidad de ir hacia modelos de servicios de TI más flexibles, las organizaciones privadas y públicas están dirigiendo su atención hacia este modelo, como uno de los ejes principales de su estrategia.

Sin embargo, como ya hemos comentado en este blog en alguna otra ocasión, entre los principales obstáculos para la liberación de todo el potencial del modelo de prestación en la nube, están las dudas sobre la seguridad que se plantean y la pérdida de control de los procesos, preocupaciones éstas especialmente relevantes para las grandes compañías reguladas.

Lo cierto es que la cobertura que los distintos proveedores platean para las necesidades de cifrado de la información de sus clientes son muy dispares (en algunos casos inexistente)  y normalmente no suficientes para cubrir con los requisitos regulatorios, principalmente porque la gestión de las claves y/o el acceso a la información en claro queda en manos de los administradores de la nube.

Hoy por hoy, la única alternativa para albergar soluciones que requieran altos requisitos de seguridad y cifrado es el disponer de una nube privada para la empresa, en donde la responsabilidad de la administración, al menos sobre los datos, las aplicaciones y las claves de cifrado, estén en manos de la empresa cliente (para más información, ver nuestro artículo sobre responsabilidades de control en la nube).

Sin embargo, parece que algunos proveedores de servicios empiezan a ser conscientes de que esta es una problemática a la que hay que dar respuesta y empiezan a verse ya algunas soluciones que creo que merece la pena mencionar aquí. Se trata de servicios que están empezando a despegar y que proporcionan en modalidad Cloud funcionalidad similar a las de los módulos HSM (principalmente generación y gestión de claves criptográficas y servicios de cifrado). Con este tipo de servicios se consigue que el cliente que tenga sus datos en la solución Cloud de un proveedor, pueda controlar por sí mismo las claves de cifrado haciendo uso de los servicios de este otro tipo de proveedores. De este modo el proveedor en donde están albergados los datos no tendrá acceso a las claves maestras y, por otro lado, el proveedor que ofrece el servicio de claves no tendrá acceso directo a los datos.

Entre iniciativas de este tipo se sitúa la oferta de KeyNexus, que por el momento permite integración con los servicios de Amazon (AWS) y que permite a sus usuario elegir entre distintos tipos de máquinas Linux AWS que incorporan módulos de KeyNexus , lo que posibilitará cifrado seguro de las particiones de datos en el almacenamiento de datos elástico de la nube. Las claves de cifrado como hemos mencionado estarán almacenadas en los servidores de KeyNexus. Habrá que ver cómo evoluciona este tipo de iniciativas, pero creo que marcan una vía interesante.

KeyNexus

Con esto cerramos este artículo en dos partes que esperemos sea de utilidad. Hasta pronto y un fuerte abrazo,

Artículos relacionados

Soluciones Cloud sobre Amazon Web Services: distribución de responsabilidades en el control y la seguridad

Protección de datos y Cloud Computing

Externalización en la nube de aplicaciones críticas de negocio: ¿Es posible?. ¿Cómo?

Asignaturas pendientes del modelo de Cloud Computing