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

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.

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. Cuando utiliza TLS mutuo con el equilibrador de carga de aplicaciones, simplifica la administración de autenticación y reduce la carga en las aplicaciones.

Al usar TLS mutuo, el equilibrador de carga puede administrar la autenticación de clientes para ayudar a garantizar que solo clientes de confianza se comuniquen con las aplicaciones de backend. Al utilizar esta función, el equilibrador de cargas autentica a los clientes mediante 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. El equilibrador de carga pasa la información del certificado del cliente al backend con encabezados HTTP, que las aplicaciones pueden usar para la autorización.

TLS mutuo para equilibradores de carga de aplicaciones proporciona las siguientes opciones para validar certificados X.509v3 del cliente:

  • Modo de paso directo de TLS mutuo: el equilibrador de carga envía toda la cadena de certificados del cliente al destino sin verificarla. Los destinos deben verificar la cadena de certificados del cliente. Luego, con la cadena de certificados del cliente, puede implementar en la aplicación la autenticación que realiza el equilibrador de carga y la lógica de autorización del destino.

  • Verificación de TLS mutuo: el equilibrador de carga realiza la autenticación del certificado X.509 del cliente para los clientes cuando un equilibrador de carga negocia conexiones TLS.

Para usar TLS mutuo en modo de paso directo, debe configurar el oyente para aceptar los certificados de los clientes. Para usar TLS mutuo con verificación, consulte Configuración de una TLS mutua en un Equilibrador de carga de aplicación.

Pasos previos a la configuración de 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 balanceadores de carga de aplicaciones 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 tu 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: 384 SHA256, 512 con RSA/SHA256, 384, 512 with EC/SHA 256 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 RFC2253 cadena 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 representación en RFC2253 cadena del nombre distintivo (DN) del sujeto.

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 ISO86 01 de la notAfter fecha notBefore y.

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

Anunciar los nombres del asunto de la autoridad de certificación (CA) mejora el proceso de autenticación al ayudar a los clientes a determinar qué certificados serán aceptados durante la autenticación TLS mutua.

Al activar Anunciar los nombres de asunto de CA, Application Load Balancer anunciará la lista de nombres de asunto de las autoridades de certificación (CAs) en las que confía, en función del almacén de confianza al que esté asociado. Cuando un cliente se conecta a un destino a través del equilibrador de carga de aplicaciones, el cliente recibe la lista de nombres del asunto de las CA de confianza.

Durante el protocolo de enlace TLS, cuando Application Load Balancer solicita un certificado de cliente, incluye una lista de nombres distinguidos de CA de confianza DNs () en su mensaje de solicitud de certificado. Esto ayuda a los clientes a seleccionar certificados válidos que coincidan con los nombres del asunto de las CA anunciadas, lo que optimiza el proceso de autenticación y reduce los errores de conexión.

Puede habilitar Anuncio del nombre del asunto de la CA en oyentes nuevos y existentes. Para obtener más información, consulte Adición de un oyente HTTPS.

Registros de conexión de Equilibradores de carga de aplicación

El ELB proporciona registros de conexión que capturan los atributos de las solicitudes enviadas a los balanceadores de carga de aplicaciones. 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.