duotone

¿Qué mecanismo de cifrado de datos debe utilizar?

¿Deben protegerse sus datos en reposo, en tránsito o en uso? Un marco para desarrolladores que buscan determinar qué mecanismos de encriptación funcionarán mejor para sus necesidades de datos.

En los últimos años, el cifrado y la criptografía en general se han convertido firmemente en parte de la corriente principal, en gran parte debido a las conversaciones sobre privacidad centradas en los gigantes tecnológicos, el aumento meteórico de la popularidad de Bitcoin e incluso el éxito de películas como The Imitation Game . Incluso la mayoría de los legos en la actualidad entienden que la palabra encriptación se refiere a la técnica de transformar datos para que puedan ocultarse a simple vista, y entienden su importancia.

Sin embargo, el cifrado ha sido un componente firmemente arraigado en todo el diseño de software empresarial durante muchos años. Históricamente, estas capacidades fueron proporcionadas por la infraestructura subyacente y las bibliotecas utilizadas por los equipos de desarrollo y TI, que simplemente tenían que activar los indicadores de forma centralizada en sus compilaciones, habilitar configuraciones en sus servidores y garantizar el uso de la seguridad de la capa de transporte (TLS) en su red . infraestructura.

Pero con el paso a la arquitectura basada en microservicios y los paradigmas de infraestructura como código, los equipos individuales ahora son responsables de la seguridad de su pila de aplicaciones e infraestructura, y se ha vuelto importante para ellos comprender cómo aprovechar adecuadamente el cifrado para todos los servicios. se desarrollan.

Para proteger adecuadamente los datos, es necesario protegerlos en reposo, en tránsito y en uso. A continuación se presentan varios términos y marcos de cifrado comunes, y lo que los desarrolladores pueden hacer para aprovecharlos correctamente.

Cifrado de datos en reposo

Los datos en reposo se refieren a cómo se almacenan los datos en el almacenamiento persistente. Un atacante con acceso a la infraestructura de almacenamiento físico o a su dispositivo puede obtener acceso no autorizado a los datos almacenados en él, a menos que estén cifrados. El cifrado de datos en reposo se puede lograr de varias maneras.

Cifrado a nivel de disco o sistema de archivos

Con el cifrado a nivel de disco o sistema de archivos, el cifrado se realiza mediante la implementación de la capa de almacenamiento virtual. Esto es completamente transparente para todo el software de la aplicación y se puede implementar con cualquier capa de almacenamiento subyacente, independientemente de sus capacidades de cifrado.

Responsabilidad : hoy en día, todos los proveedores de la nube brindan esta capacidad, y esto no es algo de lo que los desarrolladores deban preocuparse, solo necesitan habilitarlo.

Amenazas contra las que protege : discos robados u otros medios de almacenamiento.

Cifrado del lado del servidor

El cifrado del lado del servidor es responsable de cifrar y descifrar los datos de forma transparente de sus clientes. Las claves criptográficas utilizadas para el cifrado son conocidas únicamente por el servidor. En el mundo nativo de la nube, el servidor puede ser un servicio en la nube con claves generalmente controladas por el proveedor de la nube o un servicio creado por los desarrolladores con claves administradas por los desarrolladores. Desde la perspectiva de los clientes, el cifrado es transparente.

Responsabilidad : muchos servicios en la nube individuales brindan esta capacidad, los desarrolladores deberán habilitar la función si existe. Para una capa adicional, los desarrolladores pueden crear y administrar sus propios mecanismos de cifrado del lado del servidor que incluso se pueden combinar con un cifrado del lado del servidor basado en un servicio en la nube.

Amenazas contra las que protege : discos robados u otros medios de almacenamiento, ataques a nivel del sistema de archivos y amenazas internas del proveedor de la nube, si las construyen los desarrolladores.

Cifrado del lado del cliente

Aquí el cliente es responsable de cifrar los datos antes de enviarlos al servidor para su almacenamiento. De manera similar, durante la recuperación, el cliente necesita descifrar los datos. Esto hace que el diseño del software de aplicación sea más difícil. Una ventaja del cifrado del lado del cliente es que no es necesario cifrar todos los bits de datos almacenados, solo se pueden proteger las partes sensibles. Esto suele ser beneficioso cuando el costo de la computación es una preocupación.

Responsabilidad : esto es únicamente de los desarrolladores para diseñar y hacer que el proceso sea lo más fluido posible para el cliente y el usuario final.

Amenazas contra las que protege : amenazas internas de intermediarios y proveedores de almacenamiento.

¿Cuáles son los límites del cifrado de datos en reposo?

El cifrado de datos en reposo ahora se considera la mejor práctica, pero no está exenta de limitaciones y desafíos.

El aspecto más crítico es cómo y dónde se almacenan las claves de cifrado, quién puede acceder a ellas, etc. Si bien hay buenas soluciones disponibles para asegurar el almacenamiento de claves, es esencial configurarlas correctamente. Desafortunadamente, las debilidades en la administración de claves son demasiado comunes y es mucho más probable que provoquen violaciones de la confidencialidad que alguien que rompa un algoritmo de cifrado moderno. Es probable que todos conozcan al menos a una persona que perdió el acceso a sus datos en su dispositivo inteligente porque no pudo recordar su clave de respaldo.

Consejos para los desarrolladores : si es posible, utilice los recursos de su proveedor de nube para la gestión de claves. Muchos de los servicios tienen conmutadores de configuración simples para habilitar el cifrado en reposo y manejarán la administración de claves de manera transparente. Para mayor seguridad, debe elegir una clave administrada por el cliente siempre que sea posible.

Herramientas sugeridas : Servicios de administración de claves de los principales proveedores de la nube, incluidos Amazon Web Services (AWS) Key Management Service (KMS), Microsoft Azure Key Vault y Google Cloud Platform (GCP) Cloud Key Management.

Otro desafío con el cifrado de datos en reposo es que la rotación de claves (la práctica recomendada de cambiar periódicamente las claves secretas) puede ser extremadamente disruptiva y costosa, ya que es posible que sea necesario descifrar y volver a cifrar grandes volúmenes de datos. Esto plantea un desafío cuando un empleado con acceso a la clave deja la organización o la clave se considera comprometida.

Consejos para los desarrolladores : una vez más, si es posible, utilice los recursos de su proveedor de nube para la rotación automática de claves también. Hoy en día, los tres proveedores principales admiten la rotación automática de claves maestras, y es un indicador de configuración simple cuando se habilita el cifrado. En estos escenarios, una clave maestra será una referencia a la versión de la clave de cifrado real. Es decir, cuando se rota una clave, todos los datos nuevos se cifrarán con la clave rotada. La rotación manual es posible, pero difícil.

Herramientas sugeridas : AWS KMS, Azure Key Vault y GCP Cloud Key Management .

Cifrado de datos en tránsito

A medida que los desarrolladores ejecutan sus servicios en la nube, integrándolos con otros servicios de terceros, el cifrado de datos en tránsito se convierte en una necesidad. Durante años, hubo una gran cantidad de rechazo debido a preocupaciones sobre la latencia en las aplicaciones y, como tal, muchas aplicaciones nunca implementaron el cifrado de nivel de tránsito.

Sin embargo, HTTPS ha logrado grandes ganancias de rendimiento durante la última década, y todos los servicios de hoy en día han llegado a usarlo, incluso HTTPS se usa indistintamente con los términos SSL y TLS.

Consejo para los desarrolladores : Habilitar HTTPS para cualquier punto final público es una necesidad hoy en día y es extremadamente simple de hacer. Será necesario realizar algunas configuraciones menores, pero si está utilizando alguno de los principales proveedores de la nube, puede generar e integrar certificados con sus servicios de manera rápida y sin problemas.

Herramientas sugeridas : cada uno de los proveedores de la nube ofrece una forma de generar certificados públicos e incluso privados. Así que hay AWS Certificate Manager, Azure App Service y GCP Certificate Manager. Si desea utilizar otro servicio, LetsEncrypt es gratuito y tiene herramientas para la generación y rotación automática.

Cifrado de datos en uso

Esta es un área de creciente interés, que aborda el riesgo de que, en última instancia, los datos deban estar disponibles en forma de texto sin formato mientras una aplicación los procesa . Incluso con las técnicas de cifrado más sólidas aplicadas a los datos en reposo y en tránsito, es la propia aplicación la que a menudo se ejecuta en el límite mismo de la confianza de una organización y se convierte en la mayor amenaza para los datos que se roban.

A continuación se presentan dos técnicas relativamente recientes para hacer frente a las amenazas a la privacidad de los datos mientras están en uso:

  • Informática confidencial aprovecha los avances en los conjuntos de chips de la CPU, que proporcionan un entorno de ejecución confiable dentro de la propia CPU. A un alto nivel, proporciona cifrado y descifrado en tiempo real de los datos almacenados en la memoria RAM de un sistema informático, incluso cuando una aplicación los procesa, y garantiza que solo el código de la aplicación autorizada pueda acceder a las claves. Con esta técnica, incluso alguien con acceso administrativo a una VM o su hipervisor no puede acceder de manera maliciosa a los datos confidenciales que procesa una aplicación.
  • Cifrado homomórfico esta es una clase de algoritmo de cifrado que permite realizar ciertos tipos limitados de cálculos en los datos cifrados en sí. Por lo general, se limitan a un pequeño conjunto de operaciones aritméticas. Ha habido algunos intentos recientes de obtener información analítica o conocimientos a partir de datos cifrados homomórficamente. Esto incluye varias empresas que afirman capacidades como la búsqueda a través de datos regulados o confidenciales y la colaboración entre equipos de análisis en datos altamente confidenciales.

Una técnica algo relacionada, popular entre las empresas que intentan evitar estos problemas por completo, es la tokenización. Se trata de sustituir datos confidenciales por un equivalente no confidencial, sin valor comercial intrínseco. Los datos confidenciales originales se guardan en una ubicación altamente segura, a menudo fuera del sitio o de un tercero.

Un ejemplo común es un minorista en línea que almacena tokens de tarjetas de crédito en lugar de números de tarjetas de crédito. El número de tarjeta de crédito original se mantiene con un servicio de terceros, que solo lo pone a disposición de un procesador de pagos autorizado cuando es necesario. Si bien esto protege los datos y, a menudo, descarga la carga de cumplimiento de la empresa encargada de proteger los datos, podría ser susceptible a ataques de reproducción de tokens y, por lo tanto, requiere que los tokens estén protegidos, de manera efectiva simplemente transfiriendo el problema en lugar de resolverlo.

Al igual que con todas las demás técnicas de seguridad, no existe una bala de plata o un enfoque que los equipos de desarrollo y TI puedan usar para proteger sus datos de miradas indiscretas. Sin embargo, el marco anterior es un buen punto de partida para las organizaciones que adoptan la transformación digital y adoptan un enfoque colaborativo de la seguridad.

Leer esto a continuación: Cómo proteger su sistema de botnets