Citrix ADC

Compatibilidad con Azure Key Vault

El dispositivo Citrix ADC se integra con HSM externos (SafeNet y Thales) para implementaciones locales. Para implementaciones en la nube, el dispositivo ADC se integra con Azure Key Vault. El dispositivo almacena sus claves privadas en el almacén de claves para facilitar la administración y la seguridad de la clave privada en el dominio de la nube pública. Ya no es necesario almacenar y administrar claves en diferentes ubicaciones para dispositivos ADC implementados en varios centros de datos y proveedores de nube.

El uso de ADC con la capa de precios Premium de Azure Key Vault, que proporcionó claves respaldadas por HSM, proporciona cumplimiento FIPS 140-2 de nivel 2.

Azure Key Vault es una oferta estándar de Microsoft. Para obtener más información acerca de Azure Key Vault, consulte la documentación de Microsoft Azure.

Nota: La integración de Citrix ADC con Azure Key Vault es compatible con el protocolo TLS 1.3.

Descripción de la arquitectura

Azure Key Vault es un servicio para almacenar secretos de forma segura en la nube de Azure. Al almacenar las claves en Azure Key Vault, se reducen las posibilidades de robo de claves. Una vez que el almacén de claves esté configurado, puede almacenar sus claves en él. Configure los servidores virtuales en el dispositivo ADC para realizar operaciones de clave privada en el almacén de claves. El dispositivo ADC tiene acceso a la clave de cada protocolo de enlace SSL.

El siguiente diagrama ilustra el proceso para obtener un token de acceso de Azure Active Directory después de la autenticación. Este token se usa con llamadas de API REST para operaciones de cifrado mediante claves privadas.

Obtener token de acceso

El siguiente diagrama muestra un protocolo de enlace RSA típico. El mensaje de intercambio de claves de cliente (CKE) cifrado mediante la clave pública se descifra mediante la clave privada almacenada en Key Vault.

protocolo de enlace de Key Vault

En un protocolo de enlace ECDHE, el mensaje de intercambio de claves de servidor (SKE) enviado por el dispositivo Citrix ADC se firma mediante la clave privada almacenada en el almacén de claves.

Requisitos previos

  1. Debe tener una suscripción a Azure.

  2. (Opcional) Instale Azure CLI en una máquina Linux. Para obtener instrucciones, consulte la documentación de Azure https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-apt?view=azure-cli-latest.

  3. Complete la configuración en el portal de Azure antes de configurar entidades en el dispositivo ADC.

Configurar la integración de ADC Azure Key Vault

En primer lugar, realice la configuración en Azure Portal seguida de la configuración en el dispositivo ADC.

Realice los siguientes pasos en el portal de Azure

El siguiente diagrama de flujo muestra el flujo de alto nivel para la configuración requerida en el portal de Azure.

Pasos en el portal de Azure

  1. Cree la aplicación y la entidad de servicio en Azure Active Directory.
  2. Cree Key Vault en un grupo de recursos.
  3. Configure la aplicación y la entidad de servicio para realizar operaciones de firma y descifrado en Key Vault.
  4. Cree claves en Key Vault mediante una de las siguientes formas:

    1. Importando un archivo de clave.
    2. Generando un certificado.

Para obtener información acerca de los comandos para configurar los pasos anteriores, consulte la documentación de Azure en https://docs.microsoft.com/en-us/azure/active-directory/develop/app-objects-and-service-principals.

Realice los siguientes pasos en el dispositivo ADC

El siguiente diagrama de flujo muestra el flujo de alto nivel para la configuración requerida en el dispositivo ADC.

Pasos en el dispositivo ADC

  1. Configure un servidor DNS.
  2. Configure los certificados raíz para verificar los certificados presentados por Azure.
  3. Cree una aplicación de Azure.
  4. Crear entidad de Azure Key Vault.
  5. Crear clave HSM.
  6. Cree un par de certificados y claves.
  7. Enlazar el par de claves de certificado a un servidor virtual.

Configurar un servidor DNS

Se requiere un servidor DNS para la resolución de nombres del host de Key Vault y el punto final de Azure Active Directory.

Para configurar un servidor DNS mediante la CLI

En el símbolo del sistema, escriba:

add dns nameserver <IP address>

Ejemplo:

add dns nameserver 192.0.2.150

Para configurar un servidor DNS mediante la interfaz gráfica de usuario

  1. Vaya a Administración del tráfico > DNS > Servidores de nombres. Haga clic en Agregar.

    Agregar servidor de nombres DNS

  2. Introduzca valores para los siguientes parámetros:
    • Dirección IP: Dirección IP de un servidor de nombres externo o, si se establece el parámetro Local, dirección IP de un servidor DNS local (LDNS).
    • Protocolo: Protocolo utilizado por el servidor de nombres. UDP_TCP no es válido si el servidor de nombres es un servidor virtual DNS configurado en el dispositivo.

    Parámetros del servidor de nombres DNS

  3. Haga clic en Crear.

Agregar y vincular un certificado raíz

Descargue los certificados raíz del certificado presentado por Azure Key Vault https://<vault_name>.vault.azure.net y Azure Active Directory (AAD) https://login.microsoftonline.com y cárguelos en el dispositivo ADC. Estos certificados son necesarios para validar el certificado presentado por Azure Key Vault y AAD. Enlazar uno o más certificados al grupo de certificados de CA ns_callout_certs.

Para agregar un certificado raíz mediante la CLI

En el símbolo del sistema, escriba:

add ssl certkey <certkeyname> -cert <certname>
bind ssl caCertGroup <caCertGroupName> <certkeyName>

Ejemplo: En el ejemplo siguiente, el certificado raíz presentado por Azure Key Vault y AAD es el mismo.

add ssl certKey rootcert -cert RootCyberTrustRoot.crt
bind ssl cacertGroup ns_callout_certs  rootcert

Para agregar un certificado raíz mediante la interfaz gráfica de usuario

  1. Vaya a Administración del tráfico > SSL > Certificados > Certificados de CA.

    Instalar certificado de CA

  2. Introduzca valores para los siguientes parámetros:
    • Nombre del par de claves de certificado
    • Nombre de archivo de certificado

    Parámetros del certificado de CA

  3. Haga clic en Instalar.

  4. Vaya a Administración del tráfico > SSL > Grupo de certificados de CA.

  5. Seleccione ns_callout_certs y haga clic en Mostrar enlaces.

    Mostrar enlaces

  6. Haga clic en Bind.

  7. Seleccione el certificado de CA creado anteriormente y haga clic en Seleccionar.

  8. Haga clic en Vincular y, a continuación, haga clic en Cerrar.

Configurar una aplicación de Azure

La entidad de aplicación de Azure contiene las credenciales necesarias para autenticarse en Azure Active Directory y obtener el token de acceso. Es decir, para obtener acceso de autorización a los recursos y API de Key Vault, agregue el ID de aplicación de Azure, el secreto (contraseña) y el ID de arrendatario en el dispositivo ADC.
Al configurar la entidad de aplicación de Azure mediante la CLI, debe introducir la contraseña. Si utiliza la GUI, la entidad de aplicación de Azure contiene las credenciales necesarias para autenticarse en Azure Active Directory y obtener el token de acceso.

Para configurar una aplicación de Azure mediante la CLI

Desde la versión 13.0-61.x, se agrega un parámetro, VaultResource, aladd azure application comando para obtener el dominio del grupo de recursos antes de que se conceda el token de acceso a la aplicación. Este parámetro se agrega porque el nombre de dominio puede ser diferente para diferentes regiones. Por ejemplo, el dominio puede servault.azure.net ovault.usgov.net.

En el símbolo del sistema, escriba:

add azure application <name> -clientID <string> -clientSecret -tenantID <string> -vaultResource <string> [-tokenEndpoint <URL>]
show azure application

Ejemplo:

add azure application app10 -clientiD 12345t23aaa5 -clientsecret csHzOoEzmuY= -vaultResource example.vault.azure.net -tenantID 33583ee9ca5b
 Done
> sh azure application app10
1)  Name:  app10             ClientID:  12345t23aaa5
    TokenEndpoint:  "https://login.microsoftonline.com/33583ee9ca5b/"
    TenantID:  33583ee9ca5b  VaultResource:  example.vault.azure.net
 Done

Para configurar una aplicación de Azure mediante la interfaz gráfica de usuario

  1. Vaya a Administración del tráfico > SSL > Azure > Aplicación.

    Navegación de aplicaciones de Azure

  2. En el panel de detalles, haga clic en Agregar.

  3. Introduzca valores para los siguientes parámetros:

    • Nombre: Nombre del objeto de aplicación en el dispositivo Citrix ADC.
    • ID de cliente: ID de aplicación que se genera cuando se crea una aplicación en Azure Active Directory mediante la CLI de Azure o el portal de Azure (GUI).
    • Secreto de cliente: Contraseña para la aplicación configurada en Azure Active Directory. La contraseña se especifica en la CLI de Azure o se genera en el portal de Azure (GUI).
    • ID de arrendatario: ID del directorio dentro de Azure Active Directory en el que se creó la aplicación.
    • Recurso de Vault: Recurso de Vault para el que se concede el token de acceso. Ejemplovault.azure.net.
    • Punto final del token: URL desde donde se puede obtener el token de acceso. Si no se especifica el punto final del token, el valor predeterminado es https://login.microsoftonline.com/<tenant id>.

    Parámetros de la aplicación de Azure

Configurar el almacén de claves de Azure

Cree un objeto de Azure Key Vault en el dispositivo ADC.

Para configurar Azure Key Vault mediante la CLI

En el símbolo del sistema, escriba:

add azure keyVault <name> -azureVaultName <string> -azureApplication
       <string>
show azure keyvault

Ejemplo:

add azure keyvault kv1 -azureapplication app10 -azurevaultName pctest.vault.azure.net
> sh azure keyVault
1)  Name:  kv1               AzureVaultName:  pctest.vault.azure.net
  AzureApplication:  app10  State:  "Access token obtained"
 Done

En la siguiente tabla se enumeran los diferentes valores que puede tomar el estado de Azure Key Vault junto con una breve descripción de cada estado.

Estado Descripción
Created Estado inicial del objeto Key Vault. No se ha intentado la autenticación.
No se pudo alcanzar el punto final del token Indica una de las siguientes opciones: Servidor DNS no configurado, certificado emisor no enlazado a un grupo de certificados de CA o problemas de red.
Error de autorización Credenciales de aplicación incorrectas.
Error de análisis de token La respuesta de Azure Active Directory no está en el formato esperado.
Token de acceso obtenido Autenticado correctamente por Azure Active Directory.

Para configurar Azure Key Vault mediante la interfaz gráfica de usuario

  1. Vaya a Administración del tráfico > SSL > Azure > Almacén de claves.

    Navegación de Azure Key Vault

  2. Introduzca valores para los siguientes parámetros:

    • Nombre: Nombre del almacén de claves.
    • Nombre de almacén de claves de Azure: Nombre del almacén de claves configurado en la nube de Azure mediante la CLI de Azure o el portal de Azure (GUI) con nombre de dominio.
    • Nombre de aplicación de Azure: Nombre del objeto de aplicación de Azure creado en el dispositivo ADC. El objeto Application de Azure con este nombre se utiliza para la autenticación con Azure Active Directory.

    Parámetros de Azure Key Vault

Agregar clave HSM

El almacenamiento de su clave privada en el HSM proporciona el cumplimiento de FIPS 140-2 nivel 2.

Para agregar una clave HSM mediante la CLI

En el símbolo del sistema, escriba:

add ssl hsmKey <hsmKeyName> [-hsmType <hsmType>] [-key <string> |
       -serialNum <string>] {-password } [-keystore <string>]

Ejemplo:

add ssl hsmKey h1 -keystore kv1 -key san15key -hsmType KEYVAULT


> sh ssl hsmKey h1
    HSM Key Name: h1       Type: KEYVAULT
    Key: san15key
    Key store: kv1
    State: “Created”
 Done

En la siguiente tabla se enumeran los diferentes valores que puede tomar el estado de una clave HSM junto con una breve descripción de cada estado.

Estado Descripción
Created La clave HSM se agrega en el dispositivo ADC. Aún no se ha intentado realizar una operación clave.
Token de acceso no disponible El token de acceso no está disponible cuando se intentó la operación de clave.
No autorizado La aplicación de Azure configurada no tiene permiso para realizar la operación de clave.
No existe La clave no existe en Azure Key Vault.
Inalcanzable El host de Key Vault no es accesible en la red.
Marcado hacia abajo La clave HSM se marca como DOWN en el dispositivo ADC debido a errores de umbral durante el funcionamiento de la clave.
Operaciones clave correctas Respuesta correcta recibida del almacén de claves para la operación de claves.
Error en las operaciones clave Respuesta de error recibida de Key Vault para la operación de clave.
Funcionamiento de la llave con regulación La solicitud de operación de clave se limita por Key Vault.

Para agregar una clave HSM mediante la interfaz gráfica de usuario

  1. Vaya a Administración del tráfico > SSL > HSM.

    Agregar clave HSM

  2. Introduzca valores para los siguientes parámetros.

    • Nombre de clave HSM: Nombre de la clave.
    • Tipo de HSM: Tipo de HSM.
    • Almacén de claves: Nombre del objeto de almacén de claves que representa HSM donde se almacena la clave. Por ejemplo, nombre del objeto Key Vault o del objeto de autenticación de Azure Key Vault. Solo se aplica al tipo HSM KEYVAULT.

    Parámetros clave HSM

  3. Haga clic en Agregar

Agregar un par de claves de certificado

Agregue un par de claves de certificado mediante la clave HSM creada anteriormente.

Para agregar un par de claves de certificado mediante la CLI

En el símbolo del sistema, escriba:

add ssl certKey <certkeyName> (-cert <string> [-password]) -hsmKey <string>]
show ssl certkey

Ejemplo:

add ssl certKey serverrsa_2048 -cert /nsconfig/ssl/san_certs/san15.pem -hsmKey h1
> sh ssl certkey serverrsa_2048
    Name: serverrsa_2048        Status: Valid,   Days to expiration:9483
    Version: 3
    Serial Number: F5CFF9EF1E246022
    Signature Algorithm: sha256WithRSAEncryption
    Issuer:  C=in,O=citrix,CN=ca
    Validity
        Not Before: Mar 20 05:42:57 2015 GMT
        Not After : Mar 12 05:42:57 2045 GMT
    Certificate Type:   "Server Certificate"
    Subject:  C=in,O=citrix
    Public Key Algorithm: rsaEncryption
    Public Key size: 2048
    Ocsp Response Status: NONE
 Done

Para agregar un par de claves de certificado mediante la interfaz gráfica de usuario

  1. Vaya a Administración del tráfico > SSL > Instalar certificado (HSM).

    Agregar par de claves de certificado

  2. Introduzca valores para los siguientes parámetros:

    • Nombre del par de claves de certificado
    • Nombre de archivo de certificado
    • Clave HSM

    Parámetros del par de claves de certificado

  3. Haga clic en Instalar.

Enlazar el par de claves de certificado a un servidor virtual

El certificado utilizado para procesar transacciones SSL debe estar enlazado al servidor virtual que recibe los datos SSL.

Para enlazar el par de certificados SSL con un servidor virtual mediante la CLI

En el símbolo del sistema, escriba:

bind ssl vserver <vServerName> -certkeyName <certificate-KeyPairName>
show ssl vserver <vServerName>

Ejemplo:

bind ssl vserver v1 -certkeyName serverrsa_2048

sh ssl vserver v1

    Advanced SSL configuration for VServer v1:
    DH: DISABLED
    DH Private-Key Exponent Size Limit: DISABLED    Ephemeral RSA: ENABLED      Refresh Count: 0
    Session Reuse: ENABLED      Timeout: 120 seconds
    Cipher Redirect: DISABLED
    ClearText Port: 0
    Client Auth: DISABLED
    SSL Redirect: DISABLED
    Non FIPS Ciphers: DISABLED
    SNI: DISABLED
    OCSP Stapling: DISABLED
    HSTS: DISABLED
    HSTS IncludeSubDomains: NO
    HSTS Max-Age: 0
    HSTS Preload: NO
    SSLv3: ENABLED  TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED  TLSv1.3: DISABLED
    Push Encryption Trigger: Always
    Send Close-Notify: YES
    Strict Sig-Digest Check: DISABLED
    Zero RTT Early Data: DISABLED
    DHE Key Exchange With PSK: NO
    Tickets Per Authentication Context: 1

    ECC Curve: P_256, P_384, P_224, P_521

1)  CertKey Name: serverrsa_2048    Server Certificate



1)  Cipher Name: DEFAULT
    Description: Default cipher list with encryption strength >= 128bit
 Done

Para enlazar un par de claves de certificado SSL a un servidor virtual mediante la interfaz gráfica de usuario

  1. Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales y abra un servidor virtual SSL. Haga clic dentro de la sección Certificado.

    Certificado de servidor

  2. Haga clic en la flecha para seleccionar el par de tecla-certificado.

    Flecha de clic

  3. Seleccione el par de certificados y claves de la lista.

    Seleccionar par de certificados y claves

  4. Enlazar el par de claves de certificado al servidor virtual.

    Vincular certificado al servidor virtual

Limitaciones

  • El número de llamadas simultáneas a Azure Key Vault para operaciones clave es limitado. El rendimiento del dispositivo ADC depende de los límites de Key Vault. Para obtener más información, consulte Documentación de Microsoft Azure Key Vault.
  • Las claves EC no son compatibles.
  • Los protocolos EDT y DTLS no son compatibles.
  • Los dispositivos ADC con chips Intel Coleto SSL no son compatibles.
  • Las particiones de administración y clústeres no son compatibles.
  • No puede actualizar la entidad de Azure Application, el objeto Azure Key Vault y el par de claves de certificado HSM después de haberlos agregado al dispositivo ADC.

Preguntas frecuentes

Cuando se integran con Azure Key Vault, ¿se almacenan las claves privadas en la memoria del dispositivo ADC?

No, las claves privadas no se almacenan en la memoria del dispositivo ADC. Para cada transacción SSL, el dispositivo envía una solicitud a Key Vault.

¿Es la integración FIPS 140-2 queja nivel 2?

Sí, la solución integrada proporciona soporte FIPS 140-2 Nivel 2.

¿Qué tipos de claves son compatibles?

Solo se admiten los tipos de claves RSA.

¿Qué tamaños de clave son compatibles?

Se admiten claves RSA de 1024 bits, 2048 bits y 4096 bits.

¿Qué cifrados son compatibles?

Se admiten todos los cifrados admitidos en el dispositivo ADC, incluidos los cifrados TLSv1.3 con ECDHE y SHA256.

¿Se registran las transacciones?

El dispositivo ADC registra cada transacción que realiza con Key Vault. Se registran detalles como la hora, la dirección IP del almacén, el puerto, el éxito o el error de la conexión y los errores. A continuación se muestra una salida de registro SSL de ejemplo.

Apr  9 16:35:30 <local0.debug> 10.102.57.30 04/09/2019:16:35:30 GMT  0-PPE-0 : default SSLLOG SSL_HANDSHAKE_SUCCESS 896 0 :  Backend SPCBId 30894 - ServerIP 104.211.224.186 - ServerPort 443 - ProtocolVersion TLSv1.2 - CipherSuite "ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Non-Export 256-bit" - Session New - SERVER_AUTHENTICATED -SerialNumber "200005A75B04365827852D630000000005A75B" - SignatureAlgorithm "sha256WithRSAEncryption" - ValidFrom "Mar 17 03:28:42 2019 GMT" - ValidTo "Mar 17 03:28:42 2021 GMT" - HandshakeTime 40 ms
Apr  9 16:35:30 <local0.debug> 10.102.57.30 04/09/2019:16:35:30 GMT  0-PPE-0 : default SSLLOG SSL_HANDSHAKE_ISSUERNAME 897 0 :  SPCBId 30894 - IssuerName " C=US,ST=Washington,L=Redmond,O=Microsoft Corporation,OU=Microsoft IT,CN=Microsoft IT TLS CA 2"
Apr  9 16:35:30 <local0.debug> 10.102.57.30 04/09/2019:16:35:30 GMT  0-PPE-0 : default SSLLOG SSL_HANDSHAKE_SUBJECTNAME 898 0 :  SPCBId 30894 - SubjectName " CN=vault.azure.net"

Compatibilidad con Azure Key Vault