Autenticación mutua con TLS en Equilibrador de carga de aplicación - Elastic Load Balancing

Autenticación mutua con TLS en Equilibrador de carga de aplicación

La autenticación TLS mutua es una variación de la seguridad de la capa de transporte (TLS). La TLS tradicional establece comunicaciones seguras entre un servidor y un cliente, donde el servidor debe proporcionar su identidad a sus clientes. Con la TLS mutua, un equilibrador de carga negocia la autenticación mutua entre el cliente y el servidor mientras negocia TLS. Al usar la TLS mutua con el Equilibrador de carga de aplicación, se simplifica la administración de la autenticación y se reduce la carga de las aplicaciones.

Al usar la TLS mutua con el Equilibrador de carga de aplicación, su equilibrador de carga puede administrar la autenticación de los clientes para garantizar que solo los clientes de confianza se comuniquen con sus aplicaciones de backend. Al utilizar esta característica, Equilibrador de carga de aplicación autentica a los clientes con certificados de una entidad emisora de certificados (CA) externa o mediante la AWS Private Certificate Authority (PCA), de forma opcional, con comprobaciones de revocación. Equilibrador de carga de aplicación transmite la información del certificado del cliente al backend, que las aplicaciones pueden utilizar para la autorización. Al usar la TLS mutua en Equilibrador de carga de aplicación, puede obtener una autenticación integrada, escalable y administrada para las entidades basadas en certificados, que utilizan bibliotecas establecidas.

La TLS mutua para los Equilibradores de carga de aplicación ofrece las dos opciones siguientes para validar los certificados de cliente X.509v3:

Nota: No se admiten los certificados de cliente X.509v1.

  • Acceso directo a TLS mutua: cuando se utiliza el modo de acceso directo a TLS mutua, el Equilibrador de carga de aplicación envía toda la cadena de certificados del cliente al destino mediante encabezados HTTP. Luego, si usa la cadena de certificados del cliente, puede implementar la correspondiente autenticación del equilibrador de carga y la lógica de autorización de destino en su aplicación.

  • Verificación TLS mutua: cuando se usa el modo de verificación TLS mutua, Equilibrador de carga de aplicación realiza la autenticación del certificado de cliente X.509 para los clientes cuando un equilibrador de carga negocia las conexiones de TLS.

Para empezar a utilizar la TLS mutua en Equilibrador de carga de aplicación mediante el acceso directo, solo tiene que configurar al oyente para que acepte los certificados de los clientes. Para utilizar la TLS mutua con procesos de verificación, debe hacer lo siguiente:

  • Cree un nuevo recurso del almacén de confianza.

  • Cargue su paquete de entidades de certificación (CA) y, si lo desea, las listas de revocación.

  • Adjunte el almacén de confianza al oyente que está configurado para verificar los certificados de los clientes.

Para ver los procedimientos paso a paso para configurar el modo de verificación TLS mutua con su Equilibrador de carga de aplicación, consulte. Configuración de una TLS mutua en un Equilibrador de carga de aplicación

Antes de empezar a configurar la TLS mutua en el Equilibrador de carga de aplicación

Antes de empezar a configurar la TLS mutua en el Equilibrador de carga de aplicación, tenga en cuenta lo siguiente:

Cuotas

Los Equilibradores de carga de aplicación incluyen ciertos límites relacionados con la cantidad de almacenes de confianza, certificados de CA y listas de revocación de certificados que se utilizan en su cuenta AWS.

Para obtener más información, consulte Cuotas para sus equilibradores de carga de aplicación.

Requisitos para certificados

Los equilibradores de carga de aplicación son compatibles con los siguientes elementos para los certificados que se utilizan con la autenticación TLS mutua:

  • Certificado compatible: X.509v3

  • Claves públicas compatibles: RSA 2K — 8K o ECDSA secp256r1, secp384r1, secp521r1

  • Algoritmos de firma compatibles: SHA256, 384, 512 con RSA/SHA256, 384, 512 con EC/SHA256.384.512 hash con RSASSA-PSS con MGF1

Agrupaciones de certificados de CA

La siguiente información se aplica a los paquetes de entidades de certificación (CA):

  • Los equilibradores de carga de aplicación cargan cada paquete de certificados de la entidad de certificación (CA) en un lote. Los equilibradores de carga de aplicación no admiten la carga de certificados individuales. Si necesita agregar nuevos certificados, debe cargar el archivo del paquete de certificados.

  • Para reemplazar un paquete de certificados de CA, utilice la API ModifyTrustStore.

Solicitud de certificado para acceso directo

Cuando se utiliza el acceso directo de TLS mutua, el Equilibrador de carga de aplicación inserta encabezados para presentar la cadena de certificados del cliente a los destinos del backend. El orden de presentación comienza con los certificados de hoja y termina con el certificado raíz.

Reanudación de la sesión

No se admite la reanudación de la sesión cuando se utilizan los modos de verificación o los accesos directos de TLS mutua con un Equilibrador de carga de aplicación.

Encabezados HTTP

Los equilibradores de carga de aplicación utilizan encabezados X-Amzn-Mtls para enviar la información del certificado cuando negocian las conexiones de los clientes mediante una TLS mutua. Para obtener más información y ejemplos, consulte Encabezados HTTP y TLS mutua.

Archivos de certificados de CA

Tenga en cuenta que los certificados de CA deben satisfacer los siguientes requisitos:

  • El archivo de certificado debe usar el formato PEM (Privacy Enhanced Mail).

  • El contenido del certificado debe estar dentro de los límites -----BEGIN CERTIFICATE----- y -----END CERTIFICATE-----.

  • Los comentarios deben ir precedidos de un carácter # y no deben contener ningún carácter -.

  • No puede haber líneas en blanco.

Ejemplo de un certificado que no se acepta (no válido):

# comments Certificate: Data: Version: 3 (0x2) Serial Number: 01 Signature Algorithm: ecdsa-with-SHA384 Issuer: C=US, O=EXAMPLE, OU=EXAMPLE, CN=EXAMPLE Validity Not Before: Jan 11 23:57:57 2024 GMT Not After : Jan 10 00:57:57 2029 GMT Subject: C=US, O=EXAMPLE, OU=EXAMPLE, CN=EXAMPLE Subject Public Key Info: Public Key Algorithm: id-ecPublicKey Public-Key: (384 bit) pub: 00:01:02:03:04:05:06:07:08 ASN1 OID: secp384r1 NIST CURVE: P-384 X509v3 extensions: X509v3 Key Usage: critical Digital Signature, Key Encipherment, Certificate Sign, CRL Sign X509v3 Basic Constraints: critical CA:TRUE X509v3 Subject Key Identifier: 00:01:02:03:04:05:06:07:08 X509v3 Subject Alternative Name: URI:EXAMPLE.COM Signature Algorithm: ecdsa-with-SHA384 00:01:02:03:04:05:06:07:08 -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----

Ejemplos de certificados que se aceptan (válidos):

  1. Certificado único (codificado en PEM):

    # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----
  2. Varios certificados (codificados en PEM):

    # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE----- # comments -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE-----

Encabezados HTTP y TLS mutua

En esta sección, se describen los encabezados HTTP que los Equilibradores de carga de aplicación utilizan para enviar la información de los certificados cuando negocian conexiones con clientes que utilizan una TLS mutua. Los encabezados X-Amzn-Mtls específicos que utiliza el Equilibrador de carga de aplicación dependen del modo de TLS mutua que haya especificado: modo de acceso directo o modo de verificación.

Para obtener información sobre otros encabezados HTTP compatibles con los equilibradores de carga de aplicación, consulte Encabezados HTTP y balanceadores de tipo equilibrador de carga de aplicaciones.

Encabezado de HTTP para el modo de acceso directo

Para la TLS mutua en modo de acceso directo, los equilibradores de carga de aplicación utilizan el siguiente encabezado.

Este encabezado contiene el formato PEM codificado en una URL de toda la cadena de certificados de cliente presentada en la conexión, con los caracteres seguros +=/.

Ejemplo de contenido del encabezado:

X-Amzn-Mtls-Clientcert: -----BEGIN%20CERTIFICATE-----%0AMIID<...reduced...>do0g%3D%3D%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20CERTIFICATE-----%0AMIID1<...reduced...>3eZlyKA%3D%3D%0A-----END%20CERTIFICATE-----%0A

Encabezados de HTTP para el modo de verificación

Para la TLS mutua en modo de verificación, los equilibradores de carga de aplicación utilizan los siguientes encabezados.

Este encabezado contiene una representación hexadecimal del número de serie del certificado de hoja.

Ejemplo de contenido del encabezado:

X-Amzn-Mtls-Clientcert-Serial-Number: 03A5B1

Este encabezado contiene una cadena RFC2253 que representa el nombre distintivo (DN) del emisor.

Ejemplo de contenido del encabezado:

X-Amzn-Mtls-Clientcert-Issuer: CN=rootcamtls.com,OU=rootCA,O=mTLS,L=Seattle,ST=Washington,C=US

Este encabezado contiene una cadena RFC2253 que representa el nombre distintivo (DN) del asunto.

Ejemplo de contenido del encabezado:

X-Amzn-Mtls-Clientcert-Subject: CN=client_.com,OU=client-3,O=mTLS,ST=Washington,C=US

Este encabezado contiene un formato ISO8601 de la fecha notBefore y notAfter.

Ejemplo de contenido del encabezado:

X-Amzn-Mtls-Clientcert-Validity: NotBefore=2023-09-21T01:50:17Z;NotAfter=2024-09-20T01:50:17Z

Este encabezado contiene un formato PEM codificado en una dirección URL del certificado de hoja, con los caracteres seguros +=/.

Ejemplo de contenido del encabezado:

X-Amzn-Mtls-Clientcert-Leaf: -----BEGIN%20CERTIFICATE-----%0AMIIG<...reduced...>NmrUlw%0A-----END%20CERTIFICATE-----%0A

Registros de conexión de equilibradores de carga de aplicación

El Equilibrador de carga elástico proporciona registros de conexión que capturan atributos sobre las solicitudes enviadas a los equilibradores de carga de aplicación. Los registros de conexión contienen información como la dirección IP y el puerto del cliente, la información del certificado del cliente, los resultados de la conexión y los cifrados TLS que se utilizan. Estos registros de conexión se pueden usar luego para revisar los patrones de solicitudes y otras tendencias.

Para obtener más información sobre los registros de conexión, consulte Registros de conexión del Equilibrador de carga de aplicación.