Protección de aplicaciones API de Amazon: Data Encryption

Proteja los datos confidenciales en las aplicaciones API de Amazon

Abstracto

Los clientes confían en que sus datos se mantienen seguros y el Encriptación sirve como mecanismo para mantener esta confidencialidad. Los ejemplos de estos datos incluyen, entre otros, información de identificación personal (PII), contraseñas e información de propiedad. Mediante el uso de claves, los datos se transforman de un formato legible de "texto sin formato" a un formato de texto Encriptación ilegible. Otra forma de pensar en esto es que usamos la clave para Encriptar/bloquear los datos, y solo la otra parte (podría ser un dispositivo o una persona) con la clave correspondiente puede desencriptar/desbloquear los datos. La orientación adicional a lo largo de este documento técnico lo ayudará a proteger los datos confidenciales que los clientes han compartido y le han confiado.

Requisitos de la Política de Protección de Datos (DPP)

Encriptación en tránsito: los desarrolladores deben Encriptar toda la información de Amazon en tránsito (por ejemplo, cuando los datos atraviesan una red o se envían entre hosts). Esto se puede lograr usando HTTP sobre TLS 1.2 como mínimo (HTTPS). Los desarrolladores deben hacer cumplir este control de seguridad en todos los puntos finales externos aplicables utilizados por los clientes, así como en los canales de comunicación internos (p. ej., canales de propagación de datos entre los nodos de la capa de almacenamiento, conexiones a dependencias externas) y herramientas operativas. Los desarrolladores deben deshabilitar los canales de comunicación que no proporcionen Encriptación en tránsito, incluso si no se utilizan (p. ej., eliminando el código inactivo relacionado, configurando dependencias solo con canales Encriptacións y restringiendo las credenciales de acceso al uso de canales Encriptacións).

Los desarrolladores deben usar el Encriptación a nivel de mensaje de datos (p. ej., mediante el SDK de Encriptación de AWS) donde el Encriptación de canales (p. ej., mediante TLS) termina en hardware multiusuario que no es de confianza (p. ej., proxies que no son de confianza).

Encriptación en descanso: los desarrolladores deben Encriptar toda la PII en reposo (p. ej., cuando los datos se conservan) utilizando los estándares de mejores prácticas de la industria (p. ej., utilizando claves AES de 128 bits o mayores, se prefiere AES de 256 bits o RSA con 2048 bits). tamaño de clave (o superior). Los materiales criptográficos (p. ej., claves de Encriptación/Desencriptación) y las capacidades criptográficas (p. ej., daemons que implementan Módulos virtuales de plataforma segura y proporcionan API de Encriptación/Desencriptación) utilizados para el Encriptación de PII en reposo solo deben ser accesibles para los procesos y servicios del desarrollador. Los desarrolladores no deben almacenar PII en medios extraíbles (p. ej., USB) o aplicaciones de nube pública no seguras (p. ej., enlaces públicos disponibles a través de Google Drive).

Los desarrolladores deben desechar de manera segura cualquier documento impreso que contenga PII.

Fundamentos del Encriptación de datos

A medida que las organizaciones buscan operar más rápido y a escala, la protección de la información crítica se vuelve más importante. Proteger los datos mediante el Encriptación transforma el contenido de una manera que lo hace ilegible sin una clave secreta para desencriptar el contenido y volverlo a un formato legible. El Encriptación es la codificación de texto sin formato en otro formato conocido como texto Encriptación. Para Encriptar un mensaje (datos), se necesita una clave. Con el Encriptación de datos, usamos una clave, también conocida como secreto, para Encriptar (bloquear) y desencriptar (desbloquear) un mensaje. Solo la persona/dispositivo con la clave correcta puede desencriptar el mensaje y leer su contenido. El Encriptación ayuda a mantener segura la información de Amazon. Incluso si un usuario malintencionado obtiene el texto Encriptación, no podrá leer el contenido del mensaje sin tener la clave para desencriptarlo. Además, estas claves criptográficas deben protegerse durante todo su ciclo de vida para evitar el uso, el acceso, la divulgación y la modificación no autorizados. Tenga en cuenta que existe una diferencia entre las funciones hash y el Encriptación. Una función hash es un algoritmo criptográfico utilizado para transformar grandes datos de tamaño aleatorio en pequeños datos de tamaño fijo. Hashing permite la verificación de datos. El Encriptación, por otro lado, es un proceso de dos pasos que cifra y descifra un mensaje. El Encriptación protege los datos haciéndolos ininteligibles para el acceso no autorizado. Los datos se pueden Encriptar mientras están en reposo o en tránsito. Los desarrolladores que utilizan NIST 800-53 como su marco pueden consultar System and Communications Protection (SC) para obtener orientación específica sobre la protección de sus entornos. Uno de los principales controles NIST es SC-13 Cryptographic Protection . SC-13 identifica controles específicos y proporciona detalles adicionales para ayudar a los desarrolladores a comprender los requisitos de Encriptación de Amazon MWS y SP-API.

Los desarrolladores deben usar Encriptación para proteger la información de Amazon y la PII del cliente. En la siguiente sección, describimos los componentes críticos del Encriptación de datos y proporcionamos recomendaciones para ayudar a los desarrolladores a cumplir con los requisitos de Encriptación de la política de protección de datos (DPP) de Amazon MWS y SP-API.

Clasificación de datos

La clasificación de datos proporciona una forma de clasificar los datos de la organización en función de los niveles de confidencialidad. Incluye comprender qué tipos de datos están disponibles, dónde se almacenan, los niveles de acceso y la seguridad de los datos. La información de Amazon se puede clasificar en dos categorías de datos: PII y no PII. Los datos PII son cualquier dato que se puede utilizar para identificar a un cliente de Amazon. Los datos que no son PII son cualquier otro dato de Amazon, por ejemplo, la información de la lista de productos. Los desarrolladores pueden proteger la información de Amazon mediante la gestión cuidadosa de un sistema de clasificación de datos, nivel de acceso y Encriptación de datos adecuados que cumplan con los requisitos de DPP. La información de Amazon que se puede utilizar para identificar a los clientes de Amazon debe Encriptarse, almacenarse de manera protegida y debe requerir acceso autorizado. Amazon recomienda un enfoque de defensa en profundidad y un acceso humano reducido a la PII de los clientes de Amazon. Los desarrolladores deben tener fuertes mecanismos de autenticación en sus aplicaciones. Además, los desarrolladores deben asegurarse de que todas las conexiones a sus aplicaciones se originen en una red confiable y tengan el acceso requerido.

Integridad de los datos

Es importante que los desarrolladores se aseguren de que la Información de Amazon en sus sistemas mantenga su integridad a medida que se mueve a través de sus sistemas. Las funciones hash criptográficas son una forma confiable de establecer la integridad de los datos. Una función hash es una función irreversible en la que los datos originales de tamaño arbitrario se asignan a un valor hash de tamaño fijo. Si un desarrollador proporciona información de Amazon a través de una descarga, existen dos amenazas principales para su integridad: cambios accidentales de datos causados por problemas de red/almacenamiento y manipulación por parte de un atacante. Los desarrolladores pueden mitigar estas amenazas mediante el uso de funciones hash para verificar la integridad de los archivos. Por ejemplo, un desarrollador puede codificar el contenido de un archivo antes de ponerlo a disposición para su descarga. Cuando el archivo se vuelve a cargar en la aplicación, el desarrollador puede ejecutar la función hash en el archivo cargado y comparar la salida hash con la del archivo original para verificar la integridad del archivo. Esto proporciona la mejor protección contra los cambios de datos, ya sea que sean causados accidentalmente por problemas de red o almacenamiento o intencionalmente causados por un atacante. Los desarrolladores pueden aumentar su confianza en la integridad de los datos al verificar un hash con múltiples funciones de hash.

Encriptación en tránsito

Como los datos se transmiten de un sistema a otro, son susceptibles a interferencias no deseadas por parte de usuarios no autorizados o terceros. La transmisión de datos puede limitarse a las redes públicas o privadas de un desarrollador y seguir siendo susceptible a ataques maliciosos.

Los desarrolladores deben proteger la información de Amazon en tránsito, incluso en la comunicación entre otros servicios y usuarios finales, mediante la implementación del Encriptación en tránsito. Esto ayuda a proteger la confidencialidad e integridad de los datos.

El Encriptación en tránsito protege la información mediante el uso de protocolos de Encriptación compatibles, como TLS 1.2 o HTTPS (HTTP sobre TLS). Este nivel de encriptación debe aplicarse en todos los puntos finales internos y externos. Los datos que se propagan a través de canales, conexiones a dependencias externas y herramientas operativas deben protegerse con Encriptación en tránsito. A medida que se transmite la información de Amazon, el canal de comunicación utilizado debe estar encriptado para que no sea posible ninguna interferencia no autorizada. La mejor práctica es Encriptar y autenticar todo el tráfico. En NIST 800-53, el Encriptación en tránsito se describe en el control SC-8 Confidencialidad e integridad de la transmisión . Los desarrolladores que aprovechan este control deben considerar la adopción de las mejoras de control SC-8, ya que cada mejora puede proporcionar protecciones adicionales para los datos en tránsito.

Los desarrolladores deben tener en cuenta lo siguiente al Encriptar datos en tránsito:

  • Deshabilite los canales de comunicación que no admitan el Encriptación en tránsito.
  • Evite enrutar el tráfico a través de nodos de infraestructura de múltiples inquilinos.
  • Utilice el Encriptación a nivel de mensaje de datos si no se permite TLS de extremo a extremo.

1195

Figura 1: Protocolo HTTPS en uso

La Tabla 1 enumera algunos protocolos de seguridad compatibles con Amazon para Encriptar datos en tránsito.

Tipo de transferenciaProtocolos inseguros (no conformes)Protocolos seguros (compatibles)
Acceso webHTTPHTTPS con TLS 1.2+
Servidores de correo electrónicoPOP3, SMTP, IMAPPOP3S, IMAPS, SMTPS
Transferencia de archivosFTP, PCRFTPS, SFTP, SCP, WebDAV sobre HTTPS
Carcasa remotaTelnetSSH-2
Desktop remotoVNCr-administrador, RDP

Tabla 1: Protocolos seguros frente a inseguros para Encriptar datos en tránsito

Encriptación en descanso

Cada vez que un desarrollador guarda información de Amazon en un almacén de datos, debe estar protegida. Un almacén de datos es cualquier medio de almacenamiento en el que los datos se pueden guardar y conservar durante un período de tiempo específico. Las soluciones de bases de datos, el almacenamiento en bloques, el almacenamiento de objetos y los bloques de datos archivados son ejemplos de almacenes de datos que deben protegerse. Los desarrolladores pueden proteger los datos en un almacén de datos mediante el Encriptación; esto se denomina Encriptación en descanso. La implementación de encriptación y controles de acceso apropiados reduce el riesgo de acceso no autorizado. En NIST, el Encriptación en descanso se explica en SC-28 Protección de la información en reposo . SC-28(1) tiene como objetivo proteger la información en reposo a través de la criptografía y SC-28(2) tiene como objetivo proteger la información a través del almacenamiento fuera de línea. Ambos controles son necesarios para los desarrolladores que manejan la PII de los clientes de Amazon, como se explica en el DPP de Amazon MWS y SP-API. La mejor práctica es Encriptar la información de Amazon antes de cargarla en un destino de almacenamiento y proteger el almacenamiento con un algoritmo de Encriptación aprobado. Esto protege los datos en dos niveles: durante la transmisión desde el origen al destino de almacenamiento y durante su vida útil en reposo en el destino de almacenamiento.

Los desarrolladores que usan Amazon S3 para el almacenamiento pueden usar las capacidades de Encriptación nativas de S3 para proteger los datos en reposo. Usted no "cifra S3" o "cifra un depósito S3", sino que S3 Encriptará sus datos a nivel de objeto mientras escribe en el disco en los centros de datos de AWS. Los desarrolladores pueden optar por Encriptar de dos maneras, mediante el ejemplo de Encriptación del lado del servidor (SSE) que se acaba de describir, o el Encriptación del lado del cliente (CSE).

Los desarrolladores pueden elegir CSE cuando quieren más control y asumir la responsabilidad de escribir código sobre cómo Encriptar y desencriptar los datos, decidir el algoritmo de Encriptación, dónde obtener la clave y enviar los datos Encriptacións. CSE se produce cuando el objeto se cifra antes de cargarlo en S3 (por lo tanto, AWS no administra las claves). Los desarrolladores pueden implementar una política de depósito de Amazon S3 que evite la carga de objetos sin Encriptar. Si el desarrollador no necesita administrar la clave principal, puede usar el Encriptación del lado del servidor con claves de Encriptación administradas por S3 (SSE-S3) o el Encriptación del lado del servidor con claves administradas por AWS KMS (SSE-KMS). Amazon S3 protege los datos en reposo mediante el Encriptación de sobres. Cada objeto se cifra con una clave única que emplea un fuerte Encriptación de múltiples factores. Como protección adicional, AWS cifra la clave con una clave de AWS KMS. El Encriptación del lado del servidor de Amazon S3 utiliza AES-256 para Encriptar datos. En la Figura 2, la solución de Encriptación protege la clave de Encriptación y los datos. Los desarrolladores que almacenan datos en otros canales o vendors de la nube podrán utilizar herramientas similares nativas para ellos (por ejemplo, Azure Key Vault y GCP Default Encryption).

1270

Figura 2: Encriptación en descanso en Amazon S3

Para obtener más información, consulte: Cómo evitar cargas de objetos no Encriptacións en Amazon S3.

Tipos de Encriptación

Estos son los tipos comunes de encriptación:

  • Encriptación simétrico . Esto utiliza la misma clave para el Encriptación y Desencriptación. Por tanto, tanto el emisor como el receptor deben tener la misma clave.
  • Encriptación asimétrico . Esto requiere que el remitente y el receptor utilicen claves diferentes: una clave pública y una clave privada. La clave pública se comparte ampliamente, pero la clave privada está protegida y solo la utiliza su propietario. La clave privada se utiliza para Encriptar los datos y la clave pública se utiliza para desencriptar los datos.
  • Encriptación de sobres . Esta es la práctica de Encriptar datos con una clave de Encriptación y luego Encriptar la clave de Encriptación con otra clave.

En general, los algoritmos de clave simétrica son más rápidos y producen textos Encriptacións más pequeños que los algoritmos asimétricos. Pero los algoritmos asimétricos proporcionan una separación inherente de roles y una gestión de claves más sencilla. El Encriptación de sobres permite el desarrollador combinar las fortalezas de los algoritmos simétricos y asimétricos. Cuando los desarrolladores cifran la información de Amazon, la clave de Encriptación también debe estar protegida. El Encriptación de sobres ayuda a los desarrolladores a proteger la propia clave de Encriptación.

Los desarrolladores que utilizan SSE-KMS pueden Encriptar datos con una clave de Encriptación y Encriptar la clave de Encriptación con otra clave. Una clave permanece en texto sin formato para que el cliente pueda desencriptar la clave de Encriptación y usar la clave de Encriptación descifrada para desencriptar los datos.

La clave de texto sin formato de nivel superior se conoce como la clave de AWS KMS.

1037

Figura 3: AWS KMS almacena y administra la clave de AWS KMS

Para obtener más información, consulte Servicio de administración de claves de AWS .

El tamaño de la clave es importante para definir la fuerza de una clave de Encriptación. Según lo exige Amazon DPP, las claves deben tener al menos 128 bits de longitud. Amazon recomienda que los desarrolladores utilicen claves de más de 128 bits para la PII de los clientes de Amazon (se prefieren 256 bits). Los bits adicionales aumentan exponencialmente la complejidad de un ataque de fuerza bruta contra la clave de Encriptación. Una clave simétrica de 256 bits requiere 2128 veces más poder de cómputo que una clave de 128 bits. Los desarrolladores deben rotar sus claves criptográficas para proteger aún más sus sistemas. Aunque los tamaños de clave más grandes son más difíciles de romper, una clave expuesta puede hacer que el tamaño de la clave sea irrelevante, ya que una entidad no autorizada puede usar la clave expuesta para acceder a la información de Amazon. Puede encontrar orientación específica sobre la rotación de claves en NIST 800-53 control SC-12 Establecimiento y gestión de claves criptográficas . El control SC-12 y sus mejoras pueden ayudar a los desarrolladores a establecer, proteger y rotar claves de una manera que sea aceptable para su organización, al tiempo que garantiza que las claves permanezcan disponibles cuando sea necesario.

Encriptación standards aceptables para las aplicaciones de la API de Amazon.

La siguiente es una descripción general de los encryption standards recomendados y de uso común que los desarrolladores deben usar:

Advanced Encryption Standard (AES)

El Advanced Encryption Standard (AES) es un algoritmo de Encriptación simétrico que utiliza un Encriptación de bloque. El Encriptación de bloque cifra un bloque de texto fijo en un bloque de texto Encriptación de igual longitud. AES opera en un bloque de longitud fija de 128 bits de longitud, con una longitud de clave simétrica configurable de 128, 192 o 256 bits. Incluso con una clave de 128 bits, la tarea de desencriptar AES comprobando cada uno de los 2128 valores de clave posibles (un ataque de fuerza bruta) es tan intensiva desde el punto de vista computacional que la supercomputadora más rápida requeriría, en promedio, más de 100 billones de años para hacerlo. Si los desarrolladores eligen usar claves AES, el tamaño de la clave debe ser AES de 128 bits o mayor (según lo exige Amazon DPP). Amazon recomienda usar AES-256. Amazon también aprueba el uso de AES-GCM/CBC/XTS.

Rivest-Shamir-Adlemen Encryption Standard (RSA)

El estándar de Encriptación Rivest-Shamir-Adlemen (RSA) es un algoritmo asimétrico que utiliza criptografía de clave pública para compartir datos a través de una red insegura. RSA tiene en cuenta los números enteros grandes que son el producto de dos números primos grandes para establecer el tamaño de la clave. Por lo general, utiliza claves de 1024 o 2048 bits. Un tamaño de clave más grande proporciona una mayor seguridad, pero utiliza más poder de cómputo para Encriptar y desencriptar información. Si los desarrolladores eligen RSA como su estándar de Encriptación, deben asegurarse de que sus claves sean de al menos 2048 bits, según lo exige Amazon DPP.

Otros algoritmos de Encriptación

Mientras que otros encryption standards están disponibles para los desarrolladores, Amazon DPP requiere que los desarrolladores utilicen AES o RSA. La Tabla 2 enumera los algoritmos de Encriptación aprobados por Amazon. Si los desarrolladores están utilizando otros algoritmos de Encriptación estándar de la industria que no se enumeran en la tabla a continuación, deben comunicarse con [email protected] para consultar.

Algoritmo de EncriptaciónTipo aprobado por Amazon
AES256 bits (preferido)
Claves de 128 bits o más grandes
AES con modo GCMVector de inicialización aleatoria criptográficamente de 96 bits
longitud de la etiqueta de 128 bits
AES con modo CBCVector de inicialización aleatoria criptográficamente de 128 bits
acolchado PKCS7
AES con modo XTSLinux: dm-crypt, Encriptación LUKS Amazon EBS
RSAClaves de 2048 bits o más grandes
RSA con OAEP

Tabla 2: Algoritmos de Encriptación aprobados por Amazon API Applications

El kit de desarrollo de software ( SDK ) de AWS ofrece una biblioteca de Encriptación del lado del cliente que simplifica la implementación del Encriptación. De manera predeterminada, implementa un marco que mantiene sus datos seguros con las mejores prácticas de criptografía de la industria sobre cómo usar claves de Encriptación únicas y proteger esas claves. El SDK se desarrolla en bibliotecas de código abierto de GitHub para que pueda analizar el código, enviar problemas y encontrar información específica para su implementación.

Estándares que no se deben usar

Estos estándares han sido investigados por la industria y han demostrado ser inseguros:

  • DES
  • RC4
  • RSA-PKCSv1.5 con claves de 1024 bits
  • RSA-OAEP con claves de 1024 bits
  • pez globo
  • Dos peces

Las mejores prácticas para el Encriptación

Estas son algunas de las mejores prácticas para Encriptar la información de Amazon:

Los datos desprotegidos, ya sea en tránsito o en reposo, dejan a las empresas vulnerables a los ataques. Los desarrolladores deben asegurarse de que todos los datos estén protegidos mediante Encriptación. Los desarrolladores deben seguir estas mejores prácticas para una protección sólida de los datos en tránsito y en reposo:

  • Implemente controles de seguridad de red sólidos para ayudar a proteger los datos en tránsito. Por ejemplo, los desarrolladores pueden usar firewalls y listas de control de acceso a la red para proteger sus redes contra intrusiones o ataques de malware.
  • Implemente medidas de seguridad proactivas que identifiquen los datos en riesgo e implemente una protección de datos eficaz para los datos en tránsito y en reposo. No espere a que ocurra un incidente de seguridad para implementar medidas de seguridad.
  • Elija soluciones con políticas que habiliten mensajes y bloqueos de usuarios, o que automaticen el Encriptación de datos PII en tránsito. Por ejemplo, cuando los archivos con datos PII se adjuntan a un mensaje de correo electrónico, los conjuntos de archivos de datos grandes o confidenciales se transfieren a sitios externos para compartir archivos, la aplicación debe mostrar una advertencia o bloquear la acción.
  • Cree políticas para categorizar y clasificar sistemáticamente toda la información de Amazon.
  • Asegúrese de que se aplican las medidas de protección de datos adecuadas mientras los datos permanecen en reposo, independientemente de dónde se almacenen.
  • Genere disparadores cuando partes no autorizadas accedan, usen o transfieran datos.
  • Evalúe cuidadosamente los vendors de nube pública, privada o híbrida utilizados para almacenar información de Amazon, en función de las medidas de seguridad que ofrecen para proteger los datos.

Los datos en tránsito y en reposo tienen perfiles de riesgo ligeramente diferentes, pero el riesgo inherente depende principalmente de la sensibilidad y el valor de la información de Amazon. Los malos actores intentarán obtener acceso a datos valiosos en tránsito o en reposo. Es importante clasificar y categorizar los datos y los protocolos de seguridad para proteger eficazmente la información de Amazon en cada etapa. Pasos que puedes seguir:

  • Clasifique la información de Amazon en niveles de sensibilidad y cifre los datos críticos. La PII de los clientes de Amazon siempre debe Encriptarse mediante mecanismos de Encriptación aprobados por Amazon.
  • Establezca políticas automatizadas que soliciten o automaticen el Encriptación de datos críticos en tránsito.
  • Cifre y descifre usando un algoritmo disponible públicamente y revisado por pares como AES y una clave secreta.
  • Los desarrolladores que utilizan infraestructuras en la nube deben evaluar a los vendors de la nube en función de las medidas de seguridad que ofrecen y las certificaciones de cumplimiento de seguridad que poseen.

Conclusión

Todos los datos, especialmente la PII, deben protegerse con Encriptación tanto en reposo como en tránsito. Al aplicar el Encriptación a los datos que los clientes nos han confiado, podemos asegurarnos de que no haya terceros no autorizados que puedan acceder y hacer un mal uso de los datos con fines maliciosos. Puede lograr esto a través de mecanismos como los estándares de encriptación compartidos aquí, aplicando políticas, controles de acceso y otras mejores prácticas documentadas para lecturas adicionales.

Otras lecturas

Para obtener información adicional, consulte:

Historia del documento

FechaDescripción
julio 2022Revisado para precisión técnica.
enero 2020Primera publicación

Avisos

Los sellers y desarrolladores de Amazon son responsables de realizar su propia evaluación independiente de la información de este documento. Este documento: (a) es solo para fines informativos, (b) representa las prácticas actuales, que están sujetas a cambios sin previo aviso, y (c) no crea ningún compromiso ni garantía por parte de Amazon.com Services LLC (Amazon) y sus afiliados. , vendors o licenciantes. Los productos o servicios de la API de Amazon Services se proporcionan "tal cual" sin garantías, representaciones o condiciones de ningún tipo, ya sean expresas o implícitas. Este documento no forma parte ni modifica ningún acuerdo entre Amazon y ninguna de las partes.

© 2022 Amazon.com Services LLC o sus afiliados. Reservados todos los derechos.