Aplicar uma versão mínima do TLS - AWS SDK for JavaScript

Anunciamos o próximo fim do suporte para o AWS SDK for JavaScript v2. Recomendamos migrar para o AWS SDK for JavaScript v3. Para saber as datas e receber detalhes adicionais e informações sobre como migrar, consulte o anúncio vinculado.

Aplicar uma versão mínima do TLS

Importante

O AWS SDK for JavaScript v2 negocia automaticamente a versão TLS de nível mais alto suportada por um determinado endpoint de serviço da AWS. Opcionalmente, você pode aplicar uma versão mínima do TLS exigida pelo seu aplicativo, como o TLS 1.2 ou 1.3, mas observe que o TLS 1.3 não é suportado por alguns endpoints de serviço AWS, portanto, algumas chamadas podem falhar se você aplicar o TLS 1.3.

Para adicionar maior segurança ao se comunicar com serviços da AWS, configure o AWS SDK for JavaScript para usar o TLS 1.2 ou posterior.

O Transport Layer Security (TLS) é um protocolo usado por navegadores da web e outros aplicativos para garantir a privacidade e a integridade dos dados trocados por meio de uma rede.

Verificar e impor o TLS no Node.js

Quando você usa o AWS SDK for JavaScript com Node.js, a camada de segurança subjacente do Node.js é usada para definir a versão do TLS.

O Node.js 12.0.0 e posterior usam uma versão mínima do OpenSSL 1.1.1b, que oferece suporte ao TLS 1.3. O AWS SDK for JavaScript v3 usa como padrão o TLS 1.3 quando disponível, mas usa como padrão uma versão inferior, se necessário.

Verificar a versão do OpenSSL e do TLS

Para obter a versão do OpenSSL usada pelo Node.js no seu computador, execute o comando a seguir.

node -p process.versions

A versão do OpenSSL na lista é a versão usada pelo Node.js, como mostrado no exemplo a seguir.

openssl: '1.1.1b'

Para obter a versão do TLS usada pelo Node.js no seu computador, inicie o shell do Node e execute os comandos a seguir, na ordem.

> var tls = require("tls"); > var tlsSocket = new tls.TLSSocket(); > tlsSocket.getProtocol();

O último comando gera a versão do TLS, como mostrado no exemplo a seguir.

'TLSv1.3'

O padrão do Node.js é usar essa versão do TLS e tentará negociar outra versão do TLS se uma chamada não for bem-sucedida.

Impor uma versão mínima do TLS

O Node.js negocia uma versão do TLS quando uma chamada falha. Você pode impor a versão mínima permitida do TLS durante essa negociação, seja ao executar um script a partir da linha de comando ou por solicitação em seu código JavaScript.

Para especificar a versão mínima do TLS a partir da linha de comando, você deve usar o Node.js versão 11.0.0 ou posterior. Para instalar uma versão específica do Node.js, primeiro instale o Gerenciador de versão do Node (nvm) usando as etapas encontradas em Instalação e atualização do Gerenciador de versão do Node. Execute os comandos a seguir para instalar e usar uma versão específica do Node.js.

nvm install 11 nvm use 11
Enforcing TLS 1.2

Para impor que o TLS 1.2 seja a versão mínima permitida, especifique o argumento --tls-min-v1.2 ao executar o script, como mostrado no exemplo a seguir.

node --tls-min-v1.2 yourScript.js

Para especificar a versão mínima permitida do TLS para uma solicitação específica em seu código JavaScript, use o parâmetro httpOptions para especificar o protocolo, como mostrado no exemplo a seguir.

const https = require("https"); const {NodeHttpHandler} = require("@aws-sdk/node-http-handler"); const {DynamoDBClient} = require("@aws-sdk/client-dynamodb"); const client = new DynamoDBClient({ region: "us-west-2", requestHandler: new NodeHttpHandler({ httpsAgent: new https.Agent( { secureProtocol: 'TLSv1_2_method' } ) }) });
Enforcing TLS 1.3

Para impor que o TLS 1.3 seja a versão mínima permitida, especifique o argumento --tls-min-v1.3 ao executar o script, como mostrado no exemplo a seguir.

node --tls-min-v1.3 yourScript.js

Para especificar a versão mínima permitida do TLS para uma solicitação específica em seu código JavaScript, use o parâmetro httpOptions para especificar o protocolo, como mostrado no exemplo a seguir.

const https = require("https"); const {NodeHttpHandler} = require("@aws-sdk/node-http-handler"); const {DynamoDBClient} = require("@aws-sdk/client-dynamodb"); const client = new DynamoDBClient({ region: "us-west-2", requestHandler: new NodeHttpHandler({ httpsAgent: new https.Agent( { secureProtocol: 'TLSv1_3_method' } ) }) });

Verificar e impor o TLS em um script de navegador

Quando você usa o SDK para JavaScript em um script de navegador, as configurações do navegador controlam a versão do TLS que é usada. A versão do TLS usada pelo navegador não pode ser descoberta nem definida por script e deve ser configurada pelo usuário. Para verificar e impor a versão do TLS usada em um script de navegador, consulte as instruções para seu navegador específico.

Microsoft Internet Explorer
  1. Abra o Internet Explorer.

  2. Na barra de menu, escolha a guia Ferramentas - Opções da Internet - Avançado.

  3. Role para baixo até a categoria Segurança e marque manualmente a caixa de opção Usar TLS 1.2.

  4. Clique em OK.

  5. Feche o navegador e reinicie o Internet Explorer.

Microsoft Edge
  1. Na caixa de pesquisa do menu do Windows, digite Opções da Internet.

  2. Em Melhor correspondência, clique em Opções da Internet.

  3. Na janela Propriedades da Internet, na guia Avançado, role para baixo até a seção Segurança.

  4. Marque a caixa de seleção Usar TLS 1.2.

  5. Clique em OK.

Google Chrome
  1. Abra o Google Chrome.

  2. Clique em Alt F e selecione Configurações.

  3. Role para baixo e selecione Mostrar configurações avançadas....

  4. Role para baixo até a seção Sistema e clique em Abrir configurações de proxy....

  5. Selecione a guia Avançado.

  6. Role para baixo até a categoria Segurança e marque manualmente a caixa de opção Usar TLS 1.2.

  7. Clique em OK.

  8. Feche seu navegador e reinicie o Google Chrome.

Mozilla Firefox
  1. Abra o Firefox.

  2. Na barra de endereço, digite about:config e pressione Enter.

  3. No campo Pesquisar, digite tls. Localize e clique duas vezes na entrada de security.tls.version.min.

  4. Defina o valor inteiro como 3 para forçar o protocolo TLS 1.2 a ser o padrão.

  5. Clique em OK.

  6. Feche seu navegador e reinicie o Mozilla Firefox.

Apple Safari

Não há opções para ativar os protocolos SSL. Se você estiver usando o Safari versão 7 ou superior, o TLS 1.2 será ativado automaticamente.