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 Key Vault para facilitar la administración y la seguridad de la clave privada en el dominio de la nube pública. Ya no tiene que almacenar y administrar claves en diferentes ubicaciones para los dispositivos ADC implementados en varios centros de datos y proveedores de nube.

El uso de ADC con el nivel de precios de Azure Key Vault Premium, que proporcionó claves admitidas 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 sobre Azure Key Vault, consulte la documentación de Microsoft Azure.

Nota:

La integración de Citrix ADC con Azure Key Vault se admite 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 guardar las llaves en Azure Key Vault, reduce las posibilidades de que se roben las llaves. Una vez que la bóveda de llaves esté configurada, podrás guardar las llaves en ella. Configure los servidores virtuales en el dispositivo ADC para realizar operaciones de clave privada en Key Vault. El dispositivo ADC accede a la clave de cada apretón de manos 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 a la API REST para operaciones de cifrado mediante claves privadas.

Obtener token de acceso

El siguiente diagrama muestra un apretón de manos típico de RSA. El mensaje de intercambio de claves de cliente (CKE) que se cifra con la clave pública se descifra mediante la clave privada almacenada en Key Vault.

Desafío mutuo de Key Vault

En un apretón de manos ECDHE, el mensaje de intercambio de claves de servidor (SKE) enviado por el dispositivo Citrix ADC se firma con la clave privada almacenada en Key Vault.

Requisitos previos

  1. Debe tener una suscripción a Azure.

  2. (Opcional) Instale la CLI de Azure 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 las entidades en el dispositivo ADC.

Configurar la integración de ADC Azure Key Vault

Primero realice la configuración en el portal de Azure, 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 una entidad de aplicación y servicio en Azure Active Directory.
  2. Cree Key Vault en un grupo de recursos.
  3. Configure la entidad principal de la aplicación y el servicio para que realice operaciones de firma y descifrado en Key Vault.
  4. Cree llaves en el depósito de llaves de una de las siguientes maneras:

    1. Al importar un archivo de clave.
    2. Generando un certificado.

Para obtener información sobre 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. Cree una entidad de Azure Key Vault.
  5. Cree una clave HSM.
  6. Cree un par de claves de certificado.
  7. Enlace 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 de conexión de Azure Active Directory.

Para configurar un servidor DNS mediante la CLI

En el símbolo del sistema, escriba:

add dns nameserver <IP address>
<!--NeedCopy-->

Ejemplo:

add dns nameserver 192.0.2.150
<!--NeedCopy-->

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árguelo en el dispositivo ADC. Estos certificados son necesarios para validar el certificado presentado por Azure Key Vault y AAD. Enlace 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>
<!--NeedCopy-->

Ejemplo: En el siguiente ejemplo, 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
<!--NeedCopy-->

Para agregar un certificado raíz mediante la GUI

  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 del archivo de certificado

    Parámetros de certificado 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 fijaciones

  6. Haga clic en Bind.

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

  8. Haga clic en Vinculary, a continuación, 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 usa 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

A partir de la versión 13.0-61.x, se agrega un parámetro, VaultResource, al comando add azure application 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 ser vault.azure.net o vault.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
<!--NeedCopy-->

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

<!--NeedCopy-->

Para configurar una aplicación de Azure mediante la GUI

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

    Navegación de aplicaciones 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 del 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 del 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.
    • Vault Resource: recurso de la bóveda para el que se concede el token de acceso. Ejemplo vault.azure.net.
    • Punto final del token: URL desde la que 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 aplicación de Azure

Configurar Azure Key Vault

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
<!--NeedCopy-->

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
<!--NeedCopy-->

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

State Descripción
Created Estado inicial del objeto Key Vault. No se ha intentado la autenticación.
Could not reach token end point Indica uno de los siguientes: servidor DNS no configurado, certificado del emisor no enlazado a un grupo de certificados de CA o problemas de red.
Authorization failed Credenciales de aplicación incorrectas.
Token parse error La respuesta de Azure Active Directory no tiene el formato esperado.
Access token obtained Azure Active Directory se autenticó correctamente.

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

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

    Navegación de Azure Key Vault

  2. Introduzca valores para los siguientes parámetros:

    • Nombre: Nombre de la bóveda de llaves.
    • Nombre de Azure Key Vault: Nombre del depósito 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 la 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 usa para la autenticación con Azure Active Directory.

    Parámetros de Azure Key Vault

Agregar clave HSM

Almacenar su clave privada en el HSM proporciona cumplimiento 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>]
<!--NeedCopy-->

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
<!--NeedCopy-->

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

State 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 Azure configurada no tiene permiso para realizar la operación clave.
No existe La clave no existe en Azure Key Vault.
Inalcanzable No se puede acceder al host de Key Vault en la red.
Marcado hacia abajo La tecla HSM está marcada como ABAJO en el dispositivo ADC debido a errores de umbral durante la operación de la tecla.
Operaciones clave correctas Se recibió una respuesta de éxito de Key Vault para la operación clave.
Las operaciones clave fallaron Se recibió una respuesta de error de Key Vault para la operación clave.
Operación clave estrangulada La solicitud de operación clave se ve regulada 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 almacenamiento de claves que representa el HSM donde se almacena la clave. Por ejemplo, nombre del objeto Key Vault o del objeto de autenticación de Azure Key Vault. Se aplica solo al tipo KEYVAULT de HSM.

    Parámetros clave HSM

  3. Haga clic en Agregar

Agregar un par de claves de certificado

Agregue un par de claves de certificado con 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
<!--NeedCopy-->

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
<!--NeedCopy-->

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 del archivo de certificado
    • Clave HSM

    Parámetros de par de claves de certificado

  3. Haga clic en Instalar.

Enlace el par de claves de certificado a un servidor virtual

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

Para enlazar el par de claves de certificado SSL a un servidor virtual mediante la CLI

En el símbolo del sistema, escriba:

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

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
<!--NeedCopy-->

Para enlazar un par de claves de certificado SSL a un servidor virtual mediante la GUI

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

    Certificado de servidor

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

    Flecha de clic

  3. Seleccione el par de claves de certificado de la lista.

    Seleccionar par de claves de certificado

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

    Enlazar el 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 la documentación de Microsoft Azure Key Vault.
  • Las claves EC no son compatibles.
  • No se admiten los protocolos EDT y DTLS.
  • Los dispositivos ADC con chips SSL Intel Coleto no son compatibles.
  • Las particiones de administración y clústeres no son compatibles.
  • No puede actualizar la entidad de aplicación de Azure, el objeto Azure Key Vault y el par de claves de certificado HSM después de haberlos agregado al dispositivo ADC.
  • No se admite un paquete de certificados con claves HSM.
  • No aparece un error si la clave HSM y el certificado no coinciden. Al agregar un par de claves de certificado, asegúrese de que la clave HSM y el certificado coincidan.
  • No se puede vincular una clave HSM a un servidor virtual DTLS.
  • No puede firmar solicitudes de OCSP mediante un par de claves de certificado que se cree con una clave HSM.
  • No puede vincular un par de claves de certificado a un servicio SSL si el par de claves de certificado se crea con una clave HSM.

Preguntas frecuentes

Cuando se integra con Azure Key Vault, ¿las claves privadas se almacenan 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.

¿La integración cumple con FIPS 140-2 nivel 2?

Sí, la solución integrada permite usar FIPS 140-2 de nivel 2.

¿Qué tipos de clave se admiten?

Solo se admiten los tipos de clave RSA.

¿Qué tamaños de clave se admiten?

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

¿Qué cifrados se admiten?

Se admiten todos los cifrados compatibles con 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 de la bóveda, el puerto, el éxito o el fallo 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"
<!--NeedCopy-->
Compatibilidad con Azure Key Vault