Aplicación de una versión mínima de TLS - AWS SDK for JavaScript

Anunciamos el próximo fin del soporte para AWS SDK for JavaScript v2. Se recomienda que migre a AWS SDK for JavaScript v3. Para ver las fechas, los detalles adicionales y la información sobre cómo realizar la migración, consulte el anuncio enlazado.

Aplicación de una versión mínima de TLS

importante

La v2 de AWS SDK for JavaScript negocia automáticamente la versión de TLS de más alto nivel compatible con un punto de conexión de servicio determinado de AWS. Si lo desea, puede aplicar la versión mínima de TLS que exija su aplicación, como TLS 1.2 o 1.3, pero tenga en cuenta que algunos puntos de conexión de servicio de AWS no admiten TLS 1.3, por lo que algunas llamadas podrían fallar si aplica TLS 1.3.

Para aumentar la seguridad al comunicarse con los servicios de AWS, configure AWS SDK for JavaScript para usar TLS 1.2 o una versión posterior.

Transport Layer Security (TLS) es un protocolo que utilizan los navegadores web y otras aplicaciones para garantizar la privacidad e integridad de los datos intercambiados a través de una red.

Verificar y aplicar TLS en Node.js

Cuando se utiliza AWS SDK for JavaScript con Node.js, la capa de seguridad de Node.js subyacente se utiliza para establecer la versión de TLS.

Node.js 12.0.0 y las versiones posteriores utilizan una versión mínima de OpenSSL 1.1.1, que admite TLS 1.3. La v3 de AWS SDK for JavaScript usa TLS 1.3 de forma predeterminada cuando está disponible, pero usa una versión inferior si es necesaria.

Verificar la versión de OpenSSL y TLS

Para obtener la versión de OpenSSL que usa Node.js en su equipo, ejecute el siguiente comando.

node -p process.versions

La versión de OpenSSL de la lista es la versión que utiliza Node.js, como se muestra en el siguiente ejemplo.

openssl: '1.1.1b'

Para obtener la versión de TLS que usa Node.js en su equipo, inicie el shell de Node y ejecute los siguientes comandos, en orden.

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

El último comando genera la versión de TLS, como se muestra en el siguiente ejemplo.

'TLSv1.3'

Node.js utiliza de forma predeterminada esta versión de TLS e intenta negociar otra versión de TLS si una llamada no se realiza correctamente.

Aplicar una versión mínima de TLS

Node.js negocia una versión de TLS cuando se produce un error en una llamada. Puede aplicar la versión de TLS mínima permitida durante esta negociación, al ejecutar un script desde la línea de comandos o a petición en el código de JavaScript.

Para especificar la versión mínima de TLS desde la línea de comandos, debe utilizar Node.js versión 11.0.0 o posterior. Para instalar una versión específica de Node.js, primero instale Node Version Manager (nvm) siguiendo los pasos que se encuentran en la información sobre instalación y actualización de Node Version Manager. A continuación, ejecute los siguientes comandos para instalar y usar una versión específica de Node.js.

nvm install 11 nvm use 11
Enforcing TLS 1.2

Para forzar que TLS 1.2 sea la versión mínima permitida, especifique el argumento --tls-min-v1.2 al ejecutar el script, como se muestra en el siguiente ejemplo.

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

Para especificar la versión de TLS mínima permitida para una solicitud específica en el código de JavaScript, utilice el parámetro httpOptions para especificar el protocolo, como se muestra en el ejemplo siguiente.

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 forzar que TLS 1.3 sea la versión mínima permitida, especifique el argumento --tls-min-v1.3 al ejecutar el script, como se muestra en el siguiente ejemplo.

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

Para especificar la versión de TLS mínima permitida para una solicitud específica en el código de JavaScript, utilice el parámetro httpOptions para especificar el protocolo, como se muestra en el ejemplo siguiente.

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 y aplicar TLS en un script de navegador

Al utilizar el SDK para JavaScript en un script de navegador, la configuración del navegador controla la versión de TLS que se utiliza. La versión de TLS que utiliza el navegador no se puede detectar ni establecer mediante script y el usuario debe configurarla. Para verificar y aplicar la versión de TLS que se utiliza en un script de navegador, consulte las instrucciones de su navegador específico.

Microsoft Internet Explorer
  1. Abra Internet Explorer.

  2. En la barra de menús, seleccione la pestaña HerramientasOpciones de InternetAvanzadas.

  3. Desplácese hacia abajo hasta la categoría Seguridad y marque manualmente la casilla de opción Usar TLS 1.2.

  4. Haga clic en OK (Aceptar).

  5. Cierre el navegador y reinicie Internet Explorer.

Microsoft Edge
  1. En el cuadro de búsqueda del menú de Windows, escriba Opciones de Internet.

  2. En Mejor coincidencia, haga clic en Opciones de Internet.

  3. En la ventana Propiedades de Internet, en la pestaña Avanzadas, desplácese hacia abajo hasta la sección Seguridad.

  4. Marque la casilla de verificación Usar TLS 1.2.

  5. Haga clic en OK (Aceptar).

Google Chrome
  1. Abra Google Chrome.

  2. Haga clic en Alt F y seleccione Configuración.

  3. Desplácese hacia abajo y seleccione Mostrar configuración avanzada...

  4. Desplácese hasta la sección Sistema y haga clic en Abrir configuración de proxy...

  5. Seleccione la pestaña Avanzado.

  6. Desplácese hacia abajo hasta la categoría Seguridad y marque manualmente la casilla de opción Usar TLS 1.2.

  7. Haga clic en OK (Aceptar).

  8. Cierre el navegador y reinicie Google Chrome.

Mozilla Firefox
  1. Abra Firefox.

  2. En la barra de direcciones, escriba about:config y pulse Intro.

  3. En el campo Buscar, escriba tls. Busque la entrada security.tls.version.min y haga doble clic en ella.

  4. Establezca el valor entero en 3 para hacer que el protocolo de TLS 1.2 sea el predeterminado.

  5. Haga clic en OK (Aceptar).

  6. Cierre el navegador y reinicie Mozilla Firefox.

Apple Safari

No hay opciones para activar protocolos SSL. Si utiliza la versión 7 o superior de Safari, TLS 1.2 se habilita automáticamente.