

# Usar TLS pós-quântico híbrido com o Amazon S3
<a name="UsingEncryptionInTransit.PQ-TLS"></a>

O Amazon S3 é compatível com a opção de troca de chaves híbrida pós-quântica para o protocolo de criptografia de rede TLS. Você pode usar essa opção de TLS ao fazer solicitações a endpoints do Amazon S3 usando o TLS 1.3. As suítes de cifras clássicas que o S3 permite para sessões TLS tornam inviáveis os ataques de força bruta nos mecanismos de troca de chaves com a tecnologia atual. No entanto, se um computador quântico criptograficamente relevante se tornar possível no futuro, as suítes de cifras clássicas usadas nos mecanismos de troca de chaves TLS serão suscetíveis a esses ataques. No momento, o setor está alinhado com relação à troca de chaves híbrida pós-quântica, que combina elementos clássicos e pós-quânticos para garantir que a conexão TLS seja no mínimo tão forte quanto seria com suítes de cifras clássicas. Agora o Amazon S3 oferece suporte ao PQ-TLS híbrido, em conformidade com a especificação padrão do setor da IANA.

Se você estiver desenvolvendo aplicações que dependem da confidencialidade de longo prazo dos dados transmitidos por uma conexão TLS, deverá considerar um plano para migrar para a criptografia pós-quântica antes que computadores quânticos de grande escala sejam disponibilizados para uso. Como parte do Modelo de Responsabilidade Compartilhada, o S3 oferece criptografia com segurança quântica em nossos endpoints de serviço. À medida que os navegadores e aplicações habilitarem o PQ-TLS do lado deles, o S3 escolherá a configuração mais forte possível para proteger os dados em trânsito.

**Tipos de endpoint e compatíveis Regiões da AWS**

O TLS pós-quântico para o Amazon S3 está disponível em todas as Regiões da AWS. Para ver uma lista de endpoints do S3 para cada Região da AWS, consulte [Endpoints e cotas do Amazon Simple Storage Service](https://docs.aws.amazon.com/general/latest/gr/s3.html) na *Referência geral da Amazon Web Services*.

**nota**  
É possível usar TLS híbrido pós-quântico em todos os endpoints do S3, exceto no AWS PrivateLink para Amazon S3, em pontos de acesso multirregionais e no S3 Vectors.

## Usar TLS pós-quântico híbrido com o Amazon S3
<a name="pqtls-details"></a>

É necessário configurar o cliente que faz solicitações ao Amazon S3 para que aceite o TLS híbrido pós-quântico. Ao configurar um ambiente de teste de cliente HTTP ou ambientes de produção, esteja ciente das seguintes informações:

**Criptografia em trânsito**

O TLS híbrido pós-quântico é usado apenas para criptografia em trânsito. Isso protege seus dados enquanto estes trafegam do cliente para o endpoint do S3. Esse novo suporte, combinado com a criptografia do lado do servidor do Amazon S3, utilizando algoritmos AES-256 por padrão, oferece aos clientes criptografia pós-quântica tanto em trânsito quanto em repouso. Para ter mais informações sobre a criptografia do lado do servidor no Amazon S3, consulte [Proteger os dados usando a criptografia do lado do servidor](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html).

**Clientes compatíveis**

O uso do TLS híbrido pós-quântico requer o uso de um cliente compatível com essa funcionalidade. As ferramentas e os SDKs da AWS têm configurações e recursos criptográficos que diferem de uma linguagem para outra e de um runtime para outro. Para saber mais sobre a criptografia pós-quântica de ferramentas específicas, consulte [Habilitar o TLS híbrido pós-quântico](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/pqtls-details.html).

**nota**  
Os detalhes da troca de chaves PQ-TLS para solicitações ao Amazon S3 não estão disponíveis em eventos do AWS CloudTrail ou logs de acesso ao servidor do S3.

## Saiba mais sobre o TLS pós-quântico.
<a name="pqtls-see-also"></a>

Para ter mais informações sobre como usar o TLS híbrido pós-quântico, consulte os recursos a seguir.
+ Para saber mais sobre a criptografia pós-quântica na AWS e ter acesso a links para publicações de blog e artigos de pesquisa, consulte [Criptografia pós-quântica na AWS](https://aws.amazon.com/security/post-quantum-cryptography/).
+ Para obter informações sobre o s2n-tls, consulte [Apresentação do s2n-tls, uma nova implementação do TLS de código aberto](https://aws.amazon.com/blogs/security/introducing-s2n-a-new-open-source-tls-implementation/) e [Uso do s2n-tls](https://github.com/aws/s2n-tls/tree/main/docs/usage-guide).
+ Para obter informações sobre o cliente HTTP de runtime da AWS, consulte [Configuring the AWS CRT-based HTTP client](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/http-configuration-crt.html) (Configurar o cliente HTTP da baseado em CRT) no *Guia do desenvolvedor do AWS SDK for Java 2.x*.
+ Para obter informações sobre o projeto de criptografia pós-quântica no Instituto Nacional de Padrões e Tecnologia (NIST — National Institute for Standards and Technology), consulte [Criptografia pós-quântica](https://csrc.nist.gov/Projects/Post-Quantum-Cryptography).
+ Para ter informações sobre a padronização da criptografia pós-quântica do NIST, consulte [Post-Quantum Cryptography](https://csrc.nist.gov/Projects/post-quantum-cryptography/post-quantum-cryptography-standardization) no site do NIST.

# Configurar o TLS híbrido pós-quântico para seu cliente
<a name="pqtls-how-to"></a>

Para usar o PQ-TLS com o Amazon S3, é necessário configurar o cliente para aceitar algoritmos de troca de chaves pós-quântica. Além disso, o cliente deve permitir a abordagem híbrida, que combina a criptografia de curva elíptica tradicional com algoritmos pós-quânticos, como o Module-Lattice-Based Key Encapsulation Mechanism (ML-KEM).

A configuração específica depende da biblioteca cliente e da linguagem de programação. Para ter mais informações, consulte [Habilitar o TLS híbrido pós-quântico](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/pqtls-details.html).

## Exemplo de configuração de cliente: AWS SDK para Java 2
<a name="UsingEncryptionInTransit.PQ-TLS.configuration.java2-sdk"></a>

Neste procedimento, adicione uma dependência do Maven para o cliente HTTP de runtime comum da AWS. Em seguida, configure um cliente HTTP com preferência em TLS pós-quântico. Em seguida, crie um cliente do Amazon S3 que use o cliente HTTP.

**nota**  
O cliente HTTP de runtime comum da AWS, que estava disponível como uma prévia, tornou-se disponível para o público em fevereiro de 2023. Nesse lançamento, a classe `tlsCipherPreference` e o parâmetro de método `tlsCipherPreference()` foram substituídos pelo parâmetro de método `postQuantumTlsEnabled()`. Se você estava usando este exemplo durante a prévia, precisará atualizar seu código.

1. Adicione o cliente de runtime comum da AWS às suas dependências do Maven. Recomendamos usar a versão mais recente disponível. 

   Por exemplo, esta instrução adiciona a versão `2.30.22` do cliente de runtime comum da AWS para suas dependências do Maven. 

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

1. Para habilitar os pacotes de criptografia pós-quântica híbrida, adicione o AWS SDK for Java 2.x ao seu projeto e inicialize-o. Em seguida, habilite os pacotes de codificação pós-quântica híbrida em seu cliente HTTP, conforme mostrado no exemplo a seguir.

   Esse código usa o parâmetro de método `postQuantumTlsEnabled()` para configurar um [cliente HTTP de runtime da AWS](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/http-configuration-crt.html) que prefere o conjunto de cifras híbridas pós-quânticas recomendado, ECDH com ML-KEM. Em seguida, o cliente HTTP configurado é usado para criar uma instância do cliente assíncrono do Amazon S, [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). Após a conclusão desse código, todas as solicitações de [API do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/API/) na instância `S3AsyncClient` usarão o TLS híbrido pós-quântico.
**Importante**  
A partir da versão 2.35.11, os chamadores não precisam mais definir `.postQuantumTlsEnabled(true)` para habilitar o TLS híbrido pós-quântico para o cliente. Todas as versões mais recentes que a v2.35.11 têm o TLS pós-quântico habilitado por padrão.

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

1. Teste suas chamadas ao Amazon S3 com o TLS híbrido pós-quântico.

   Ao chamar operações de API do Amazon S3 no cliente configurado do Amazon S3, as chamadas são transmitidas ao endpoint do Amazon S3 usando o TLS híbrido pós-quântico. Para testar a configuração, chame uma API do Amazon S3, como `[ListBuckets](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)`.

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

### Testar sua configuração TLS pós-quântico híbrido
<a name="pqtls-testing"></a>

Considere a possibilidade de executar os testes a seguir com suítes de cifras híbridas em suas aplicações que chamam o Amazon S3.
+ Execute testes de carga e de comparação. Os pacotes de criptografia híbrida têm uma performance diferente dos algoritmos tradicionais de troca de chaves. Talvez seja necessário ajustar os tempos limite de conexão para permitir os tempos de handshake mais longos. Se você estiver executando dentro de uma função AWS Lambda, estenda a configuração de tempo limite de execução.
+ Tente conectar-se de diferentes locais. Dependendo do caminho de rede que sua solicitação segue, é possível descobrir quais hosts intermediários, proxies ou firewalls com inspeção profunda de pacotes (DPI) bloqueiam a solicitação. Isso pode resultar do uso dos novos pacotes de criptografia na parte [ClientHello](https://tools.ietf.org/html/rfc5246#section-7.4.1.2) do handshake TLS ou das mensagens de troca de chaves maiores. Se você tiver problemas para resolver esses problemas, trabalhe com sua equipe de segurança ou administradores de TI para atualizar a configuração relevante e desbloquear os novos pacotes de criptografia TLS. 