SSL/TLS es el protocolo criptográfico más usado en Internet. Técnicamente, TLS es el sucesor de SSL, aunque los términos a veces se usan de forma indistinta, como en este documento.
La seguridad de la capa de transporte (TLS) se usa para encriptar información mientras se envía a través de una red, lo que proporciona privacidad entre un cliente y un servidor o un balanceador de cargas. Un balanceador de cargas de aplicaciones o un balanceador de cargas de red de proxy que usa SSL requiere al menos una clave privada y un certificado SSL.
En esta página, se analizan los certificados SSL y la encriptación en tránsito entre un balanceador de cargas de aplicaciones o un balanceador de cargas de red de proxy que usa SSL y sus clientes. Para obtener detalles sobre la encriptación en tránsito entre el balanceador de cargas de Google Cloud y sus backends, consulta Encriptación en los backends.
Método de configuración de certificados
En el caso de los balanceadores de cargas de aplicaciones que usan proxies HTTPS de destino, el proxy de destino del balanceador de cargas debe hacer referencia a entre uno y 15 certificados SSL de Compute Engine. Cada recurso de certificado SSL de Compute Engine contiene la clave privada, el certificado correspondiente y, de forma opcional, los certificados de la AC.
Compatibilidad con el balanceador de cargas
En la siguiente tabla, se muestran los métodos de configuración de certificados que admite cada balanceador de cargas.
| Balanceador de cargas | Método de configuración de certificados | |||
|---|---|---|---|---|
| Certificados SSL de Compute Engine | Administrador de certificados (mapa de certificados) | Administrador de certificados (certificados individuales) | ||
| Balanceadores de cargas de aplicaciones (proxies HTTPS de destino) | ||||
| Balanceador de cargas de aplicaciones externo regional |
Autoadministrado Administrado por Google |
Autoadministrado Administrado por Google |
||
| Balanceador de cargas de aplicaciones interno regional |
Autoadministrado Administrado por Google |
Autoadministrado Administrado por Google |
||
Tipos de certificados
Puedes crear certificados SSL autoadministrados para tus balanceadores de cargas.
Certificados SSL autoadministrados
Los certificados SSL autoadministrados son certificados que obtienes, aprovisionas y renuevas tú mismo. Los certificados autoadministrados pueden ser de cualquiera de estos tipos de certificado de clave pública:
- Validación de dominio (DV)
- Validación de organización (OV)
- Validación extendida (EV)
Puedes crear certificados SSL autoadministrados con recursos de certificados SSL de Compute Engine. Para obtener más información, consulta Usa certificados SSL autoadministrados.
Tipos de claves admitidos
Se admiten los siguientes tipos de claves para los certificados SSL regionales autoadministrados de Compute Engine:
- RSA-2048
- RSA-3072
- RSA-4096
- ECDSA P-256
- ECDSA P-384
Usa certificados con claves ECDSA
En esta sección, se analiza por qué recomendamos ECDSA en lugar de RSA como práctica recomendada para las claves de firma de certificados.
Qué tipo de clave usar
ECDSA P-256 es la opción recomendada de tipo de clave para la mayoría de los certificados TLS, ya que ofrece una seguridad criptográfica sólida junto con un rendimiento excelente para las operaciones de firma y un uso eficiente del ancho de banda de la red.
Estos son algunos de los posibles motivos para usar otros tipos de claves de certificado:
- Si necesitas admitir clientes heredados que no admiten certificados ECDSA, puedes proporcionar certificados RSA-2048 además de los certificados ECDSA P-256.
- Si tienes requisitos de cumplimiento específicos que te exigen usar tamaños de clave más grandes o tipos de claves particulares, se pueden usar las claves ECDSA P-384, RSA-2048, RSA-3072 y RSA-4096.
Por qué elegir ECDSA en lugar de RSA
La principal ventaja de ECDSA radica en su capacidad de proporcionar un nivel de seguridad criptográfica equivalente con claves significativamente más pequeñas en comparación con RSA. Esta eficiencia se traduce en beneficios tangibles de rendimiento y recursos. Una clave más pequeña no implica una seguridad más débil: ECDSA se basa en el problema del logaritmo discreto de la curva elíptica, que proporciona una seguridad más sólida por unidad de clave y, en algunos casos, una mejor eficiencia de procesamiento en comparación con RSA.
Por ejemplo:
- Una clave ECDSA de 256 bits proporciona un nivel de seguridad similar al de una clave RSA-3072.
- Una clave ECDSA de 384 bits proporciona un nivel de seguridad mayor que cualquier tamaño de clave RSA ampliamente compatible.
Estos son los beneficios clave de ECDSA:
Rendimiento: Las operaciones de firma de ECDSA requieren un uso de procesamiento mucho menor que las operaciones de RSA que proporcionan un nivel de seguridad equivalente. Esto reduce la carga de la CPU y la latencia, lo que es fundamental para los sistemas de alta capacidad de procesamiento o sensibles a la latencia.
Eficiencia: Las claves y firmas más pequeñas requieren menos ancho de banda y almacenamiento, lo que es especialmente beneficioso para entornos con recursos limitados, como dispositivos móviles y de IoT.
Múltiples certificados SSL
El proxy de destino de un balanceador de cargas de aplicaciones puede hacer referencia a hasta 15 certificados SSL de Compute Engine. El primer recurso de certificado SSL de Compute Engine al que se hace referencia es el certificado predeterminado (principal) para el proxy de destino.
Para obtener más información, consulta Proxies de destino y Certificados SSL en la documentación del balanceo de cargas.
Proceso de selección del certificado
El siguiente proceso de selección de certificados se aplica a los balanceadores de cargas cuyos proxies de destino hacen referencia a varios certificados SSL de Compute Engine.
Después de que un cliente se conecta al balanceador de cargas, el cliente y el balanceador de cargas
negocian una sesión de TLS. Durante la negociación de sesión de TLS, el cliente envía al
balanceador de cargas una lista de algoritmos de cifrado de TLS que admite (en ClientHello). El balanceador de cargas
selecciona un certificado cuyo algoritmo de clave pública sea compatible con el
cliente. El cliente también puede enviar un nombre de host de indicación del nombre del servidor (SNI) al
balanceador de cargas como parte de esta negociación. Los datos de nombre de host de SNI a veces se usan
para ayudar al balanceador de cargas a elegir qué certificado debe enviar al cliente.
Si el proxy de destino del balanceador de cargas hace referencia a un solo certificado, se usa ese certificado y el valor del nombre de host de SNI que envía el cliente no es relevante.
Si el proxy de destino del balanceador de cargas hace referencia a dos o más certificados, el balanceador de cargas usa el siguiente proceso para seleccionar un único certificado:
Si el cliente no envió ningún nombre de host de SNI en su
ClientHello, el balanceador de cargas usa el primer certificado de su lista de certificados.Si el cliente envía un nombre de host de SNI que no coincide con ningún nombre común de certificado (CN) y no coincide con ningún nombre de sujeto alternativo de certificado (SAN), el balanceador de cargas usa el primer certificado de su lista de certificados.
En todas las demás situaciones, el balanceador de cargas selecciona un certificado con el siguiente proceso de coincidencia:
La coincidencia se aplica en relación con los atributos de nombre común (CN) y de nombre alternativo del sujeto (SAN). Si solo un certificado coincide con el nombre de host de SNI, el balanceador de cargas selecciona ese certificado. Si varios certificados coinciden con el nombre de host de SNI, el balanceador de cargas los prioriza en el siguiente orden:
Coincidencia exacta del nombre de host: Las coincidencias exactas con el CN o el SAN tienen prioridad sobre las coincidencias con comodines.
Coincidencia de nombre de host con comodín: Si no hay una coincidencia exacta, el balanceador de cargas verifica si hay una coincidencia de CN o SAN con comodín. Un comodín (
*) solo coincide con el subdominio de primer nivel (por ejemplo,*.pets.example.comcoincide concats.pets.example.comen lugar de*.example.com).Tipo de clave de certificado: Se prefieren los certificados ECDSA en lugar de los certificados RSA.
Tamaño de la cadena de certificados: Si varios certificados tienen la misma especificidad de coincidencia y el mismo algoritmo de clave pública, el balanceador de cargas prioriza el certificado con el tamaño de cadena de certificados más pequeño (en bytes) para minimizar el ancho de banda de la red durante el protocolo de enlace TLS.
Para ilustrar el método de coincidencia, considera un proxy de destino que haga referencia a los siguientes dos certificados:
Certificado A
- CN:
cats.pets.example.com - SAN:
cats.pets.example.com,*.pets.example.com,*.example.com
- CN:
Certificado B
- CN:
dogs.pets.example.com - SAN:
dogs.pets.example.com,*.pets.example.com,*.example.com
- CN:
Ahora, considera las siguientes situaciones:
Si el nombre de host de SNI que envió el cliente es
cats.pets.example.com, el balanceador de cargas usa el certificado A.Si el nombre de host de SNI que envía el cliente es
ferrets.pets.example.com, no hay una coincidencia exacta, y tanto el certificado A como el certificado B coinciden con*.pets.example.comen su lista de SAN. Si ambos certificados usan el mismo algoritmo de clave pública, el balanceador de cargas selecciona el certificado con el tamaño de cadena de certificados más pequeño. Si los tamaños de la cadena de certificados también son idénticos, el balanceador de cargas selecciona el certificado A o el certificado B, y no puedes controlar qué certificado se selecciona.
Después de seleccionar un certificado, el balanceador de cargas envía al cliente ese certificado solo si el certificado seleccionado usa un algoritmo de clave pública que sea compatible con un algoritmo de cifrado que el cliente envió en el
ClientHello. La negociación de TLS falla si el cliente no admite un conjunto de algoritmos de cifrado que incluya el algoritmo de clave pública (ECDSA o RSA) del certificado que seleccionó el balanceador de cargas.