Recomendaciones para el cifrado de datos
Se aplica a la recomendación de lista de comprobación de seguridad del marco de trabajo bien diseñado:
SE:07 | Cifre los datos mediante métodos modernos estándar del sector para proteger la confidencialidad y la integridad. Alinear el ámbito de cifrado con clasificaciones de datos; priorizar los métodos de cifrado de plataforma nativa. |
---|
Si los datos no están protegidos, se pueden modificar malintencionadamente, lo que conduce a la pérdida de integridad y confidencialidad.
En esta guía se describen las recomendaciones para cifrar y proteger los datos. El cifrado es el proceso de usar algoritmos de criptografía para que los datos sean ilegibles y bloqueen los datos con una clave. En el estado cifrado, los datos no se pueden descifrar. Solo se puede descifrar mediante una clave emparejada con la clave de cifrado.
Definiciones
Letra chica | Definición |
---|---|
Certificados | Archivos digitales que contienen las claves públicas para el cifrado o descifrado. |
Conjunto de cifrado | Conjunto de algoritmos que se usan para cifrar y descifrar información para proteger una conexión de red a través de seguridad de la capa de transporte (TLS). |
Computación confidencial | La computación confidencial es la protección de los datos en uso mediante el cálculo en un entorno de ejecución de confianza basado en hardware y atestiguado. |
Descifrado | Proceso en el que los datos cifrados se desbloquean con un código secreto. |
Cifrado doble | Proceso de cifrado de datos mediante dos o más capas independientes de cifrado. |
Cifrado | Proceso por el que los datos se convierten en ilegibles y bloqueados con un código secreto. |
Aplicación de algoritmo hash | Proceso de transformación de datos en texto o números con la intención de ocultar información. |
Claves | Código secreto que se usa para bloquear o desbloquear datos cifrados. |
Firma | Una marca cifrada de autenticación en los datos. |
de firma | Proceso de comprobación de la autenticidad de los datos mediante una firma. |
X.509 | Estándar que define el formato de los certificados de clave pública. |
Estrategias de diseño principales
Los mandatos de la organización o los requisitos normativos podrían aplicar mecanismos de cifrado. Por ejemplo, puede haber un requisito de que los datos solo deben permanecer en la región seleccionada y las copias de los datos se mantienen en esa región.
Estos requisitos suelen ser el mínimo base. Esfuércese por un mayor nivel de protección. Usted es responsable de evitar fugas de confidencialidad y manipulación de datos confidenciales, ya sea datos de usuario externos o datos de empleados.
Es probable que los mecanismos de cifrado necesiten proteger los datos en tres fases:
Los datos en reposo son toda la información que se mantiene en objetos de almacenamiento.
Un ejemplo de protección de datos en reposo es usar BitLocker para cifrar los datos guardados en el almacenamiento en un disco.
Los datos en tránsito son información que se transfiere entre componentes, ubicaciones o programas.
Un ejemplo de protección de los datos en tránsito es cifrar los datos con TLS para que los paquetes que se muevan a través de redes públicas y privadas sean seguras.
Los datos en uso son datos que se están trabajando activamente en la memoria.
Un ejemplo de protección de datos en uso es cifrar con computación confidencial para proteger los datos a medida que se procesan.
Las opciones anteriores no son mutuamente excluyentes. A menudo se usan juntos en el contexto de toda la solución. Una fase puede actuar como un control de compensación. Por ejemplo, es posible que tenga que aislar los datos para evitar alteraciones cuando los datos se leen de la memoria.
Determinación de los requisitos de cifrado
Clasifique los datos por su propósito y nivel de confidencialidad para determinar qué datos necesita cifrar. Para los datos que se deben cifrar, determine el nivel de protección necesario. ¿Necesita cifrado TLS de un extremo a otro para todos los datos en tránsito? Para los datos en reposo, ¿qué características de Azure pueden cumplir sus requisitos? ¿Necesita duplicar el cifrado de datos en cada punto de almacenamiento? ¿Cómo se implementa la protección de la información?
Es importante equilibrar las decisiones de cifrado porque hay importantes inconvenientes.
Compensación: cada salto de cifrado puede introducir latencia de rendimiento. Las complejidades operativas pueden producirse en relación con la solución de problemas y la observabilidad. La recuperación puede ser un desafío.
Ámbito de estos inconvenientes. Anticipe los inconvenientes de los datos clasificados como confidenciales. Los requisitos pueden incluso determinar los inconvenientes, por ejemplo, si un determinado tipo de datos debe cifrarse y almacenarse dentro de determinados umbrales.
Hay casos en los que el cifrado no es posible debido a limitaciones técnicas, inversión u otros motivos. Asegúrese de que esas razones sean claras, válidas y documentadas.
Los mecanismos de cifrado seguros no deben ser su única forma de defensa. Implemente procesos de prevención de robo de datos, métodos de prueba adecuados y detección de anomalías.
Para obtener información sobre la clasificación, consulte Recomendaciones sobre la clasificación de datos.
Uso de mecanismos de cifrado nativos
La mayoría de los servicios de Azure proporcionan un nivel base de cifrado. Explore las opciones de cifrado proporcionadas por la plataforma.
Se recomienda encarecidamente que no deshabilite las funcionalidades de la plataforma para desarrollar su propia funcionalidad. Las características de cifrado de plataforma usan estándares modernos del sector, están desarrolladas por expertos y son muy probadas.
En raras ocasiones, si necesita reemplazar el cifrado proporcionado por la plataforma, evalúe las ventajas y desventajas y use algoritmos criptográficos estándar del sector.
Los desarrolladores deben usar las API de criptografía integradas en el sistema operativo en lugar de bibliotecas de criptografía no multiplataforma. Para .NET, siga el modelo de criptografía de .NET.
Elección de un enfoque de claves de cifrado
De forma predeterminada, los servicios de Azure usan claves de cifrado administradas por Microsoft para cifrar y descifrar datos. Azure es responsable de la administración de claves.
Puede optar por claves administradas por el cliente. Azure sigue usando las claves, pero es responsable de las operaciones de clave. Tiene la flexibilidad de cambiar las claves cuando quiera. El descifrado es una razón convincente para usar claves administradas por el cliente.
Debe emparejar el cifrado seguro con descifrado seguro. Desde una perspectiva de seguridad, es importante proteger una clave de descifrado porque la rotación es una manera común de controlar el radio de explosión si una clave está en peligro. Supervise el acceso para detectar actividades y acceso anómalos.
Almacene claves independientes de los datos cifrados. Esta desacoplamiento ayuda a garantizar que el compromiso de una entidad no afecte al otro. Si usa claves administradas por el cliente, almacénelas en un almacén de claves. Almacene datos altamente confidenciales en un módulo de seguridad de hardware administrado (HSM).
Ambos almacenes están protegidos con acceso basado en identidades. Esta característica le permite denegar el acceso, incluso a la plataforma.
Uso de algoritmos de cifrado estándar
Use algoritmos de criptografía bien establecidos y siga los estándares del sector en lugar de crear implementaciones personalizadas.
Los estándares del sector para algoritmos requieren esquemas de cifrado para tener un cierto nivel de entropía. Los orígenes de entropía se insertan durante el cifrado. La entropía hace que el algoritmo sea seguro y dificulta que un atacante extraiga información. Determine los umbrales tolerables de entropía. Los procedimientos de cifrado consumen mucho procesador. Busque el equilibrio adecuado para maximizar los ciclos de proceso que se invierten en el cifrado, en relación con los objetivos de rendimiento generales de la solicitud de proceso.
Compensación: si elige un algoritmo muy complejo o inserta más de una cantidad razonable de entropía, degrada el rendimiento del sistema.
Uso de hashes y sumas de comprobación
Normalmente, el hash es una técnica de detección de errores. También puede usar hash para la seguridad porque detecta cambios en los datos que podrían deberse a alteraciones. Las funciones hash se basan en la criptografía, pero no usan claves. Las funciones hash usan algoritmos para generar sumas de comprobación. Las sumas de comprobación pueden comparar datos para comprobar la integridad de los mismos.
Las aplicaciones deben usar la familia SHA-2 de algoritmos hash, como SHA-256, SHA-384 o SHA-512.
Cifrado de datos en reposo
Clasifique y proteja los objetos de almacenamiento de información de acuerdo con los requisitos de cumplimiento interno y externo. Consulte las siguientes recomendaciones:
Cifre los datos mediante opciones nativas proporcionadas para servicios de almacenamiento, almacenes de datos y otros recursos que se usan para conservar los datos. Cifre estos datos incluso si almacena datos en estos servicios de almacenamiento o recursos solo temporalmente. Cifre también los datos de copia de seguridad para mantener el mismo nivel de seguridad que el origen original.
Para obtener más información, consulte Protección de datos en reposo.
Use el cifrado doble. Si los requisitos empresariales requieren una mayor garantía, puede realizar el cifrado doble. Cifre los datos en dos o más capas mediante claves administradas por el cliente independientes. Almacene los datos en un HSM administrado. Para leer los datos, necesita acceso a ambas claves. Si una clave está en peligro, la otra sigue protegiendo los datos. Esta técnica tiene como objetivo aumentar los costos de los atacantes.
También puede usar el cifrado proporcionado por la plataforma para cifrar datos doblemente. El cifrado proporcionado por la plataforma protege los medios de almacenamiento en el nivel de infraestructura y aplica otra capa de cifrado en el nivel de datos. Por ejemplo, un servicio de agente de mensajes tiene cifrado proporcionado por la plataforma a través de claves administradas por Microsoft que protege la canalización de mensajes. Este método permite cifrar los mensajes con claves administradas por el cliente.
Use más de una clave de cifrado. Use una clave de cifrado de claves (KEK) para proteger la clave de cifrado de datos (DEK).
Use controles de acceso basados en identidades para controlar el acceso a los datos. Agregue firewalls de red para proporcionar una capa adicional de seguridad que bloquee el acceso inesperado y no seguro.
Para obtener más información, consulte Recomendaciones para la administración de identidades y acceso.
Almacene claves en un HSM administrado que tenga control de acceso con privilegios mínimos. Separe los datos de las claves a los datos.
Almacene una cantidad limitada de datos para que solo cifre lo necesario. Los datos no deben vivir más tiempo que el ciclo de cifrado. Cuando los datos ya no sean necesarios, elimine los datos cifrados sin gastar ciclos de descifrado.
Cifrado de los datos en tránsito
Use protocolos seguros para la comunicación de cliente-servidor. Los protocolos de transporte tienen una capa integrada de seguridad. TLS es el estándar del sector para intercambiar datos entre los puntos de conexión de cliente y servidor.
No use versiones inferiores a TLS 1.2. Migre soluciones para admitir TLS 1.2 y use esta versión de forma predeterminada. Todos los servicios de Azure admiten TLS 1.2 en puntos de conexión HTTPS públicos.
Riesgo: es posible que los clientes más antiguos que no admitan TLS 1.2 no funcionen correctamente si no se admite la compatibilidad con versiones anteriores.
Toda la comunicación del sitio web debe usar HTTPS, independientemente de la confidencialidad de los datos transferidos. Durante un protocolo de enlace de cliente-servidor, negocia el uso de la directiva http Strict Transport Security (HSTS) para que el transporte HTTPS se mantenga y no se coloque en HTTP durante la comunicación. Esta directiva protege contra ataques de tipo man in the middle.
La compatibilidad con HSTS es para versiones más recientes. Es posible que interrumpa la compatibilidad con versiones anteriores con exploradores anteriores.
Nota:
También puede cifrar protocolos para establecer conexiones seguras para las bases de datos. Por ejemplo, Azure SQL Database admite el protocolo de flujo de datos tabular (TDS), que integra un protocolo de enlace TLS.
Un conjunto de cifrado es un conjunto de algoritmos que se usan para estandarizar el protocolo de enlace entre el cliente y el servidor. Los cifrados garantizan que el intercambio está cifrado y autenticado. La elección de cifrados depende de la versión tls que usa el servidor. Para algunos servicios, como App de Azure lication Gateway, puede elegir la versión de TLS y los conjuntos de cifrado que desea admitir. Implemente conjuntos de cifrado que usen advanced Encryption Standard (AES) como cifrado de bloques simétricos. AES-128, AES-192 y AES-256 son aceptables.
Administrar el ciclo de vida de los certificados. Los certificados tienen una duración predeterminada. No mantenga certificados de larga duración y no deje que expiren por sí mismos. Implemente un proceso que renueve certificados con una frecuencia aceptable. Puede automatizar el proceso de renovaciones que se producen a intervalos cortos.
Nota:
Si usa el anclaje de certificados, familiarícese con las limitaciones de agilidad y administración de certificados.
El flujo de trabajo no debe permitir que se acepten certificados no válidos en el entorno. El proceso de anclaje de certificados debe validar los certificados y aplicar esa comprobación de validación. Debe supervisar los registros de acceso para asegurarse de que la clave de firma se usa con los permisos adecuados.
Si una clave está en peligro, el certificado debe revocarse inmediatamente. Una entidad de certificación (CA) proporciona una lista de revocación de certificados (CRL) que indica los certificados que se invalidan antes de su expiración. La comprobación de validación debe tener en cuenta las CRL.
Compensación: el proceso de validación de la certificación puede ser complicado y normalmente implica una ENTIDAD de certificación. Determine los datos que debe cifrar con certificados. Para otros tipos de comunicación, determine si puede implementar controles de compensación localizados para agregar seguridad.
Una manera de localizar controles es con TLS mutuo (mTLS). Establece la confianza en ambas direcciones entre el cliente y el servidor. Tanto el cliente como el servidor tienen sus propios certificados y cada certificado se autentica con su par de claves pública o privada. Con mTLS, no depende de la CA externa. El equilibrio es la complejidad adicional de administrar dos certificados.
Cifre las conexiones VPN si es necesario. Realice el cifrado doble para agregar defensa en profundidad al túnel VPN. Al usar dos servidores VPN, puede ocultar la dirección IP entre los servidores y también ocultar la dirección IP entre el servidor y el destino. Durante este proceso, los datos en tránsito también se cifran dos veces.
Compensación: en comparación con las configuraciones de VPN únicas, las configuraciones de VPN dobles suelen ser más costosas y las conexiones suelen ser más lentas.
Implementar procesos de registro y supervisión. Realice un seguimiento del acceso a los recursos de inicio de sesión que almacenan información sobre los clientes, como su dirección IP de origen, puerto y protocolo. Use esta información para detectar anomalías.
Cifrado de datos en uso
Para cargas de trabajo de alta seguridad, segmentación, aislamiento y privilegios mínimos se recomiendan patrones de diseño.
En el contexto de la protección en uso, los límites de hardware pueden requerir el cifrado de datos mientras se usa en la CPU física y la memoria para garantizar el aislamiento de las máquinas virtuales, el código de administración de host y otros componentes. El cifrado y el descifrado de los datos solo deben realizarse dentro de esos límites de aislamiento.
Los requisitos normativos o de seguridad más estrictos también pueden requerir evidencia criptográficamente firmada basada en hardware que los datos se cifran mientras están en uso, lo que se puede obtener a través de la atestación. La computación confidencial es una de estas tecnologías que admite el requisito. Los servicios específicos de Azure ofrecen la capacidad de proteger los datos mientras se calculan. Para más información, consulte Facilitación de Azure: Proceso confidencial de Azure.
Tenga en cuenta el ciclo de vida completo de los datos que está protegiendo a menudo se mueve a través de varios sistemas durante su vigencia, tenga cuidado de asegurarse de que todas las partes de componentes de una solución pueden proporcionar los niveles de protección necesarios o asegurarse de que la estrategia de administración de datos proporciona la segmentación o el enmascaramiento adecuados.
Facilitación de Azure
En las secciones siguientes se describen los servicios y características de Azure que puede usar para cifrar los datos.
Claves administradas por el cliente
Almacene claves administradas por el cliente en Azure Key Vault o en un HSM administrado por Key Vault.
Key Vault trata las claves como cualquier otro secreto. Los controles de acceso basado en rol (RBAC) de Azure acceden a las claves a través de un modelo de permisos. Este control basado en identidades debe usarse con las directivas de acceso de Key Vault.
Para obtener más información, consulte Proporcionar acceso a claves, certificados y secretos de Key Vault mediante RBAC.
Azure Key Vault Premium y Managed-HSM mejoran aún más la oferta mediante la inclusión de funcionalidades de computación confidencial y versión de clave segura que admite una directiva para asegurarse de que una clave solo se libera en una carga de trabajo que pueda demostrar criptográficamente que se está ejecutando dentro de un entorno de ejecución de confianza (TEE).
Protección de datos en reposo
Azure Storage cifra automáticamente los datos con cifrados de bloques cuando los datos se conservan en una cuenta de almacenamiento. Para Azure Blob Storage y Azure Queue Storage, Storage también proporciona cifrado del lado cliente a través de bibliotecas.
Para más información, consulte Cifrado de almacenamiento.
Azure Virtual Machines tiene archivos de disco que sirven como volúmenes de almacenamiento virtual. Puede cifrar los archivos de disco virtual para que no se pueda acceder al contenido.
Los discos administrados se pueden exportar desde el portal. El cifrado y el cifrado del lado servidor en el host solo pueden proteger los datos después de exportarlos. Sin embargo, debe proteger los datos durante el proceso de exportación. Puede usar Azure Disk Encryption para proteger y proteger los datos durante el proceso de exportación.
Azure ofrece varias opciones de cifrado para discos administrados. Para más información, consulte Información general sobre las opciones de cifrado de disco administrado.
SQL Database ofrece una característica de cifrado de datos transparente que se usa para cifrar un archivo de base de datos en el nivel de página.
Protección de datos en tránsito
Con Key Vault, puede aprovisionar, administrar e implementar certificados tls de capa de sockets seguros (SSL) o públicos y privados. Puede usar los certificados con Azure y con los recursos conectados internos.
Protección de datos en uso
Los servicios específicos de Azure ofrecen la capacidad de proteger los datos mientras se calculan dentro de la CPU física y la memoria de un host mediante la computación confidencial de Azure.
Las máquinas virtuales confidenciales ofrecen una máquina virtual completa que se ejecuta dentro de un TEE, la memoria y la ejecución del contenido de la CPU de la máquina virtual se cifran ofreciendo un enfoque sencillo de "lift & shift" para mover aplicaciones sin modificar con requisitos de seguridad elevados a Azure. Cada máquina virtual confidencial de Azure tiene su propio módulo de plataforma de confianza virtual (TPM) dedicado. El cifrado se realiza mientras los componentes del sistema operativo arrancan de forma segura.
Los nodos de trabajo de AKS confidenciales, los contenedores confidenciales de AKS o los contenedores confidenciales en Azure Container Instances (ACI) ofrecen la capacidad de ejecutar y administrar contenedores sin modificar dentro de un TEE que permite a los clientes beneficiarse de la protección en uso. Las ofertas de contenedor se basan en máquinas virtuales confidenciales y se benefician de las mismas protecciones.
Las soluciones de Enclave de aplicaciones son aplicaciones especialmente creadas que aprovechan las extensiones de CPU específicas que ofrecen las SKU de máquina virtual que admiten extensiones de Protección de software (SGX), que ofrecen una base de proceso de confianza (TCB) muy granular , pero requieren que las aplicaciones se codifiquen específicamente para aprovechar las características.
La versión de clave segura se puede combinar con estas tecnologías para asegurarse de que los datos cifrados solo se descifran dentro de un TEE, lo que demuestra que proporciona el nivel de protección necesario a través de un proceso conocido como atestación.
Administración de secretos
Puede usar Key Vault para almacenar y controlar de forma segura el acceso a tokens, contraseñas, certificados, claves de API y otros secretos. Use Key Vault como solución de administración de claves y certificados. La SKU Premium admite HSM.
Ejemplo
En el ejemplo siguiente se muestran las soluciones de cifrado que puede usar para administrar claves, certificados y secretos.
Vínculos relacionados
- Modelo de criptografía de .NET
- Azure Disk Encryption
- Cifrado de almacenamiento para datos en reposo
- Anclaje de certificados en servicios de Azure
- Proporcionar acceso a claves, certificados y secretos de Key Vault mediante RBAC
- Información general sobre las opciones de cifrado de disco administrado
- Cifrado de datos transparente
- Introducción al módulo de plataforma de confianza
- Azure confidential computing (Computación confidencial de Azure)
Vínculos de la comunidad
Lista de comprobación de seguridad
Consulte el conjunto completo de recomendaciones.