

# Uso de TLS poscuántico híbrido con Amazon S3
<a name="UsingEncryptionInTransit.PQ-TLS"></a>

Amazon S3 admite una opción de intercambio de claves poscuánticas híbrido para el protocolo de cifrado de red TLS. Puede utilizar esta opción de TLS cuando realice solicitudes a los puntos de conexión de Amazon S3 mediante TLS 1.3. Los conjuntos de cifrado clásicos que S3 admite para las sesiones de TLS convierten en inviables los ataques de fuerza bruta en los mecanismos de intercambio de claves con la tecnología actual. Sin embargo, si una computación cuántica relevante criptográficamente tiene efectos prácticos en el futuro, los conjuntos de cifrado clásicos utilizados en los mecanismos de intercambio de claves TLS serán susceptibles a estos ataques. En la actualidad, el sector está alineado con el intercambio de claves poscuánticas híbrido que combina elementos clásicos y poscuánticos para garantizar que la conexión TLS sea al menos tan sólida como con los conjuntos de cifrado clásicos. Amazon S3 es compatible con PQ-TLS híbrido, en cumplimiento de la especificación de IANA estándar del sector, en la actualidad

Si va a desarrollar aplicaciones que dependen de la confidencialidad a largo plazo de los datos transmitidos a través de una conexión TLS, debe considerar un plan para migrar a la criptografía poscuántica antes de que los equipos cuánticos a gran escala estén disponibles para su uso. Como parte del modelo de responsabilidad compartida, S3 permite la criptografía de seguridad cuántica en nuestros puntos de conexión de servicio. Como los navegadores y las aplicaciones utilizan PQ-TLS, S3 elegirá la configuración más sólida posible para proteger los datos en tránsito.

**Tipos de puntos de conexión compatibles y Regiones de AWS**

El TLS poscuántico para Amazon S3 está disponible en todas las Regiones de AWS. Para obtener la lista de puntos de conexión de S3 en cada Región de AWS, consulte [Puntos de conexión y cuotas de Amazon Simple Storage Service](https://docs.aws.amazon.com/general/latest/gr/s3.html) en la *Referencia general de Amazon Web Services*.

**nota**  
TLS poscuántico híbrido se admite para todos los puntos de conexión de S3, excepto para AWS PrivateLink para Amazon S3, los puntos de acceso multirregionales y S3 Vectors.

## Uso de TLS poscuántico híbrido con Amazon S3
<a name="pqtls-details"></a>

Debe configurar el cliente que realiza las solicitudes a Amazon S3 para que admita el TLS poscuántico híbrido. Cuando configure el entorno de prueba del cliente HTTP o entornos de producción, tenga en cuenta la siguiente información:

**Cifrado en tránsito**

El TLS poscuántico híbrido solo se utiliza para el cifrado en tránsito. Esto protege los datos mientras viajan desde el cliente hasta el punto de conexión de S3. Este nuevo soporte, combinado con el cifrado del servidor de Amazon S3, que utiliza algoritmos AES-256 de forma predeterminada, ofrece a los clientes un cifrado con resistencia cuántica en tránsito y en reposo. Para obtener más información sobre el cifrado del servidor en Amazon S3, consulte [Protección de datos con cifrado del servidor](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html).

**Clientes compatibles**

El uso de el TLS poscuántico híbrido requiere el uso de un cliente que admita esta funcionalidad. AWS Los SDK y las herramientas tienen capacidades y configuraciones criptográficas que difieren según los lenguajes y los tiempos de ejecución. Para obtener más información sobre la criptografía poscuántica para herramientas específicas, consulte [Habilitación de TLS poscuántica híbrida](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/pqtls-details.html).

**nota**  
Los detalles del intercambio de claves PQ-TLS para las solicitudes a Amazon S3 no están disponibles en los eventos de AWS CloudTrail ni en los registros de acceso al servidor de S3.

## Obtenga más información sobre el cifrado TLS poscuántico
<a name="pqtls-see-also"></a>

Para obtener más información acerca del uso de TLS poscuántico híbrido, consulte los siguientes recursos.
+ Para obtener información sobre la criptografía poscuántica en AWS, incluidos enlaces a publicaciones de blogs y artículos de investigación, consulte [Criptografía poscuántica para AWS](https://aws.amazon.com/security/post-quantum-cryptography/).
+ Para obtener información acerca de s2n-tls, consulte [Presentación de s2n-tls, una nueva implementación de TLS de código abierto](https://aws.amazon.com/blogs/security/introducing-s2n-a-new-open-source-tls-implementation/) y [Uso de s2n-tls](https://github.com/aws/s2n-tls/tree/main/docs/usage-guide).
+ Para obtener información sobre el cliente HTTP de AWS de tiempo de ejecución común, consulte [Configuración del cliente HTTP de AWS basado en CRT](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/http-configuration-crt.html) en la *Guía para AWS SDK for Java 2.x desarrolladores*.
+ Para obtener información sobre el proyecto de criptografía postcuántica del Instituto Nacional de Estándares y Tecnología (NIST), consulte [Post-Quantum Cryptography](https://csrc.nist.gov/Projects/Post-Quantum-Cryptography).
+ Para obtener información sobre la estandarización de la criptografía poscuántica de NIST, consulte [Estandarización de la criptografía poscuántica de NIST](https://csrc.nist.gov/Projects/post-quantum-cryptography/post-quantum-cryptography-standardization).

# Configuración del cifrado TLS poscuántico híbrido para el cliente
<a name="pqtls-how-to"></a>

Para usar PQ-TLS con Amazon S3, debe configurar el cliente para que admita algoritmos de intercambio de claves poscuánticas. Asegúrese también de que el cliente apoye el enfoque híbrido, que combina la criptografía tradicional de curva elíptica con algoritmos poscuánticos como ML-KEM (Module-Lattice-Based Key Encapsulation Mechanism).

La configuración específica depende de la biblioteca del cliente y del lenguaje de programación. Para obtener más información, consulte [Habilitación del TLS poscuántico híbrido](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/pqtls-details.html).

## Ejemplo de configuración de cliente: AWS SDK para Java 2
<a name="UsingEncryptionInTransit.PQ-TLS.configuration.java2-sdk"></a>

En este procedimiento, agregue una dependencia de Maven para el cliente HTTP en tiempo de ejecución común de AWS. A continuación, configure un cliente HTTP que prefiera el TLS postcuántico. A continuación, cree un cliente de Amazon S3 que utilice el cliente HTTP.

**nota**  
El cliente HTTP de en tiempo de ejecución común de AWS, que estaba disponible como versión preliminar, pasó a estar disponible en febrero de 2023. En esa versión, la clase `tlsCipherPreference` y el parámetro del método `tlsCipherPreference()` se sustituyen por el parámetro del método `postQuantumTlsEnabled()`. Si utilizó este ejemplo durante la vista previa, debe actualizar el código.

1. Agregue el cliente del tiempo de ejecución común de AWS a sus dependencias de Maven. Le recomendamos que utilice la última versión disponible. 

   Por ejemplo, esta declaración agrega la versión `2.30.22` del cliente del tiempo de ejecución común de AWS a sus dependencias de Maven. 

   ```
   <dependency>
       <groupId>software.amazon.awssdk</groupId>
       <artifactId>aws-crt-client</artifactId>
       <version>2.30.22</version>
   </dependency>
   ```

1. Para habilitar los conjuntos de cifrado híbrido postcuántico, agregue AWS SDK for Java 2.x a su proyecto e inícielo. Luego habilite los conjuntos de cifrado postcuántico híbrido en su cliente HTTP como se muestra en el siguiente ejemplo.

   Este código usa el parámetro del método `postQuantumTlsEnabled()` para configurar un [cliente HTTP de AWS en tiempo de ejecución común](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/http-configuration-crt.html) que prefiera el conjunto de cifrado poscuántico híbrido recomendado, ECDH con ML-KEM. A continuación, utiliza el cliente HTTP configurado para crear una instancia del cliente de Amazon S3 asincrónico, [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html). Cuando se complete este código, todas las solicitudes de la [API de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/API/) de la instancia `S3AsyncClient` utilizarán un TLS poscuántico híbrido.
**importante**  
A partir de v2.35.11, las personas que llamen ya no tendrán que configurar `.postQuantumTlsEnabled(true)` para habilitar el TLS poscuántico híbrido para el cliente. Todas las versiones posteriores a v2.35.11 habilitan el TLS poscuántico de forma predeterminada.

   ```
   // Configure HTTP client
   SdkAsyncHttpClient awsCrtHttpClient = AwsCrtAsyncHttpClient.builder()
             .postQuantumTlsEnabled(true)
             .build();
   
   // Create the Amazon S3 async client
   S3AsyncClient s3Async = S3AsyncClient.builder()
            .httpClient(awsCrtHttpClient)
            .build();
   ```

1. Pruebe las llamadas de Amazon S3 con TLS poscuántico híbrido.

   Cuando llama a operaciones de la API de Amazon S3 en el cliente de Amazon S3 configurado, las llamadas se transmiten al punto de conexión de Amazon S3 mediante TLS poscuántico híbrido. Para probar la configuración, ejecute una llamada a la API de Amazon S3, como `[ListBuckets](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)`.

   ```
   ListBucketsResponse reponse = s3Async.listBuckets();
   ```

### Prueba de su configuración de TLS postcuántico híbrido
<a name="pqtls-testing"></a>

Considere la posibilidad de ejecutar las siguientes pruebas con conjuntos de cifrado híbridos en las aplicaciones que llaman a Amazon S3.
+ Ejecute pruebas de carga y pruebas de rendimiento. Los conjuntos de cifrado híbridos funcionan de manera diferente que los algoritmos tradicionales de intercambio de claves. Es posible que tenga que ajustar los tiempos de espera de conexión para permitir tiempos de negociación más prolongados. Si la ejecución se realiza dentro de una función AWS Lambda, amplíe la configuración del tiempo de espera de ejecución.
+ Intente conectarse desde diferentes ubicaciones. En función de la ruta de red que tome la solicitud, es posible que descubra que hosts intermedios, proxies o firewalls con inspección profunda de paquetes (DPI) bloquean la solicitud. Esto podría dar lugar a que se utilicen los nuevos conjuntos de cifrado en la parte [ClientHello](https://tools.ietf.org/html/rfc5246#section-7.4.1.2) del protocolo TLS o a mensajes de intercambio de claves más grandes. Si le resulta difícil resolver estos problemas, trabaje con su equipo de seguridad o con los administradores de TI para actualizar la configuración pertinente y desbloquear los nuevos conjuntos de cifrado TLS. 