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

LaAWS SDK for JavaScript versión 3 (v3) es una reescritura de la versión 2 con algunas funciones nuevas y excelentes, incluida la arquitectura modular. Para obtener más información, consulte la Guía para desarrolladores de la versiónAWS SDK for JavaScript 3.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

importante

LaAWS SDK for JavaScript v2 negocia automáticamente la versión de TLS de nivel más alto admitida por un punto finalAWS de servicio determinado. Si lo desea, puede aplicar una versión mínima de TLS requerida por su aplicación, como TLS 1.2 o 1.3, pero tenga en cuenta que algunos terminales delAWS servicio no admiten TLS 1.3, por lo que algunas llamadas pueden 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 versiones posteriores utilizan una versión mínima de OpenSSL 1.1.1b, que admite TLS 1.3. LaAWS SDK for JavaScript versión 3 usa TLS 1.3 de forma predeterminada cuando está disponible, pero usa una versión inferior de forma predeterminada si es necesario.

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 mínima de TLS permitida durante esta negociación, ya sea al ejecutar un script desde la línea de comandos o mediante una solicitud en su JavaScript código.

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 tu JavaScript código, usa elhttpOptions parámetro para especificar el protocolo, como se muestra en el siguiente ejemplo.

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 garantizar que TLS 1.3 es la versión mínima permitida, especifique el--tls-min-v1.3 argumento 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 tu JavaScript código, usa elhttpOptions parámetro para especificar el protocolo, como se muestra en el siguiente ejemplo.

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

Cuando usas el SDK para JavaScript en un script del navegador, la configuración del navegador controla la versión de TLS que se usa. 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. Abre Internet Explorer.

  2. En la barra de menús, seleccione la pestaña Herramientas - Opciones de Internet - Opciones avanzadas.

  3. Desplázate hacia abajo hasta la categoría Seguridad y marca 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, haz clic en Opciones de Internet.

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

  4. Marque la casilla User TLS 1.2.

  5. Haga clic en OK (Aceptar).

Google Chrome
  1. Abre Google Chrome.

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

  3. Desplázate hacia abajo y selecciona Mostrar configuración avanzada... .

  4. Desplázate hacia abajo hasta la sección Sistema y haz clic en Abrir configuración de proxy... .

  5. Selecciona la pestaña Avanzado.

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

  7. Haga clic en OK (Aceptar).

  8. Cierra el navegador y reinicia Google Chrome.

Mozilla Firefox
  1. Abre Firefox.

  2. En la barra de direcciones, escribe about:config y presiona Entrar.

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

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

  5. Haga clic en OK (Aceptar).

  6. Cierra el navegador y reinicia Mozilla Firefox.

Apple Safari

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