Citrix ADC

Prise en charge de Azure Key Vault

L’appliance Citrix ADC s’intègre aux HSM externes (SafeNet et Thales) pour les déploiements sur site. Pour les déploiements cloud, l’appliance ADC s’intègre à Azure Key Vault. L’appliance stocke ses clés privées dans le coffre de clés pour faciliter la gestion et la sécurité de la clé privée dans le domaine du cloud public. Vous n’avez plus besoin de stocker et de gérer les clés à différents emplacements pour les appliances ADC déployées dans plusieurs centres de données et fournisseurs de cloud.

L’utilisation d’ADC avec le niveau de tarification Azure Key Vault Premium, qui fournit des clés soutenues par HSM, garantit la conformité FIPS 140-2 niveau 2.

Azure Key Vault est une offre standard de Microsoft. Pour plus d’informations sur Azure Key Vault, consultez la documentation Microsoft Azure.

Remarque :

L’intégration de Citrix ADC avec Azure Key Vault est prise en charge par le protocole TLS 1.3.

Aperçu de l’architecture

Azure Key Vault est un service permettant de stocker des secrets en toute sécurité dans le cloud Azure. En stockant vos clés dans Azure Key Vault, vous réduisez les risques de vol de clés. Une fois le coffre-fort de clés configuré, vous pouvez y stocker vos clés. Configurez des serveurs virtuels sur l’appliance ADC pour effectuer des opérations de clé privée dans le coffre de clés. L’appliance ADC accède à la clé pour chaque prise de contact SSL.

Le schéma suivant illustre le processus pour obtenir un jeton d’accès auprès d’Azure Active Directory après authentification. Ce jeton est utilisé avec les appels d’API REST pour les opérations de chiffrement utilisant des clés privées.

Obtenir un jeton d'accès

Le schéma suivant montre une poignée de main RSA typique. Le message d’échange de clés client (CKE) chiffré à l’aide de la clé publique est déchiffré à l’aide de la clé privée stockée dans le coffre de clés.

Poignée de main Key Vault

Dans une poignée de main ECDHE, le message d’échange de clés de serveur (SKE) envoyé par l’appliance Citrix ADC est signé à l’aide de la clé privée stockée dans le coffre de clés.

Conditions préalables

  1. Vous devez disposer d’un abonnement Azure.

  2. (Facultatif) Installez Azure CLI sur une machine Linux. Pour obtenir des instructions, consultez la documentation Azure https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-apt?view=azure-cli-latest.

  3. Terminez la configuration sur le portail Azure avant de configurer les entités sur l’appliance ADC.

Configurer l’intégration d’ADC Azure Key Vault

Effectuez d’abord la configuration sur le portail Azure, puis la configuration sur l’appliance ADC.

Effectuez les étapes suivantes sur le portail Azure

L’organigramme suivant montre le flux de haut niveau pour la configuration requise sur le portail Azure.

Étapes sur le portail Azure

  1. Créez le principal d’application et de service dans Azure Active Directory.
  2. Créez Key Vault dans un groupe de ressources.
  3. Configurez l’application et le principal de service pour effectuer des opérations de signature et de déchiffrement sur le coffre de clés.
  4. Créez des clés dans le coffre de clés de l’une des manières suivantes :

    1. En important un fichier clé.
    2. En générant un certificat.

Pour plus d’informations sur les commandes permettant de configurer les étapes précédentes, consultez la documentation Azure à l’adresse https://docs.microsoft.com/en-us/azure/active-directory/develop/app-objects-and-service-principals.

Effectuez les étapes suivantes sur l’appliance ADC

L’organigramme suivant montre le flux de haut niveau pour la configuration requise sur l’appliance ADC.

Étapes à suivre sur l'appareil ADC

  1. Configurez un serveur DNS.
  2. Configurez les certificats racine pour vérifier les certificats présentés par Azure.
  3. Créez une application Azure.
  4. Créez une entité Azure Key Vault.
  5. Créez une clé HSM.
  6. Créez une paire de clés de certificat.
  7. Liez la paire de clés de certificat à un serveur virtuel.

Configurer un serveur DNS

Un serveur DNS est requis pour la résolution de nom de l’hôte Key Vault et du point de terminaison Azure Active Directory.

Pour configurer un serveur DNS à l’aide de la CLI

À l’invite de commandes, tapez :

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

Exemple :

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

Pour configurer un serveur DNS à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > DNS > Serveurs de noms. Cliquez sur Ajouter.

    Ajouter un serveur de noms DNS

  2. Entrez des valeurs pour les paramètres suivants :
    • Adresse IP : adresse IP d’un serveur de noms externe ou, si le paramètre Local est défini, adresse IP d’un serveur DNS local (LDNS).
    • Protocol : protocole utilisé par le serveur de noms. UDP_TCP n’est pas valide si le serveur de noms est un serveur virtuel DNS configuré sur l’appliance.

    Paramètres du serveur de noms DNS

  3. Cliquez sur Créer.

Ajouter et lier un certificat racine

Téléchargez les certificats racine du certificat présenté par Azure Key Vault https://<vault_name>.vault.azure.net et Azure Active Directory (AAD) https://login.microsoftonline.com et chargez-le sur l’appliance ADC. Ces certificats sont nécessaires pour valider le certificat présenté par Azure Key Vault et AAD. Liez un ou plusieurs certificats au groupe de certificats de l’autorité de certification ns_callout_certs.

Pour ajouter un certificat racine à l’aide de la CLI

À l’invite de commandes, tapez :

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

Exemple : Dans l’exemple suivant, le certificat racine présenté par Azure Key Vault et AAD est identique.

add ssl certKey rootcert -cert RootCyberTrustRoot.crt
bind ssl cacertGroup ns_callout_certs  rootcert
<!--NeedCopy-->

Pour ajouter un certificat racine à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > SSL > Certificats > Certificats d’autorité de certification.

    Installer le certificat d'autorité de certification

  2. Entrez des valeurs pour les paramètres suivants :
    • Nom de la paire de clés de certificat
    • Nom du fichier de certificat

    Paramètres du certificat CA

  3. Cliquez sur Installer.

  4. Accédez à Gestion du trafic > SSL > Groupe de certificats d’autoritéde certification.

  5. Sélectionnez ns_callout_certs et cliquez sur Afficher les liaisons.

    Afficher les fixations

  6. Cliquez sur Bind.

  7. Sélectionnez le certificat d’autorité de certification créé précédemment et cliquez sur Sélectionner.

  8. Cliquez sur Lier, puis sur Fermer.

Configurer une application Azure

L’entité d’application Azure contient les informations d’identification requises pour s’authentifier auprès d’Azure Active Directory et obtenir le jeton d’accès. En d’autres mots, pour obtenir l’autorisation d’accès aux ressources et aux API Key Vault, ajoutez l’ID d’application Azure, le secret (mot de passe) et l’ID de locataire sur l’appliance ADC.
Lorsque vous configurez l’entité Application Azure à l’aide de l’interface de ligne de commande, vous devez entrer le mot de passe Si vous utilisez l’interface graphique, l’entité d’application Azure contient les informations d’identification requises pour s’authentifier auprès d’Azure Active Directory et obtenir le jeton d’accès.

Pour configurer une application Azure à l’aide de la CLI

À partir de la version 13.0-61.x, un paramètre, VaultResource, est ajouté à la commande add azure application pour obtenir le domaine du groupe de ressources avant que le jeton d’accès ne soit accordé à l’application. Ce paramètre est ajouté car le nom de domaine peut être différent selon les régions. Par exemple, le domaine peut être vault.azure.net ou vault.usgov.net.

À l’invite de commandes, tapez :

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

Exemple :

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

Pour configurer une application Azure à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > SSL > Azure > Application.

    Navigation dans les applications Azure

  2. Dans le volet d’informations, cliquez sur Ajouter.

  3. Entrez des valeurs pour les paramètres suivants :

    • Nom : nom de l’objet d’application sur l’appliance Citrix ADC.
    • ID client : ID d’application généré lorsqu’une application est créée dans Azure Active Directory à l’aide de l’interface de ligne de commande Azure ou du portail Azure (GUI).
    • Secret client : mot de passe de l’application configurée dans Azure Active Directory. Le mot de passe est spécifié dans l’interface de ligne de commande Azure ou généré dans le portail Azure (GUI).
    • ID du locataire : ID du répertoire dans Azure Active Directory dans lequel l’application a été créée.
    • Vault Resource : ressource Vault pour laquelle un jeton d’accès est accordé. Exemple vault.azure.net.
    • Point final du jeton : URL à partir de laquelle le jeton d’accès peut être obtenu. Si le point final du jeton n’est pas spécifié, la valeur par défaut est https://login.microsoftonline.com/<tenant id>.

    Paramètres de l'application Azure

Configurer Azure Key Vault

Créez un objet Azure Key Vault sur l’appliance ADC.

Pour configurer Azure Key Vault à l’aide de la CLI

À l’invite de commandes, tapez :

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

Exemple :

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

Le tableau suivant répertorie les différentes valeurs que l’état d’Azure Key Vault peut prendre, ainsi qu’une brève description de chaque état.

State Description
Created État initial de l’objet Key Vault. L’authentification n’a pas été tentée.
Could not reach token end point Indique l’un des éléments suivants : serveur DNS non configuré, certificat émetteur non lié à un groupe de certificats d’autorité de certification ou problèmes de réseau.
Authorization failed Informations d’identification d’application incorrectes
Token parse error La réponse d’Azure Active Directory n’est pas au format attendu.
Access token obtained Authentification réussie par Azure Active Directory.

Pour configurer le coffre-fort de clés Azure à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > SSL > Azure > Key Vault.

    Navigation dans Azure Key Vault

  2. Entrez des valeurs pour les paramètres suivants :

    • Nom : nom du coffre de clés.
    • Nom du coffre de clés Azure : nom du coffre de clés configuré dans le cloud Azure à l’aide de l’interface de ligne de commande Azure ou du portail Azure (GUI) avec nom de domaine.
    • Nom de l’application Azure : nom de l’objet Application Azure créé sur l’appliance ADC. L’objet Application Azure portant ce nom est utilisé pour l’authentification auprès d’Azure Active Directory.

    Paramètres Azure Key Vault

Ajouter une clé HSM

Le stockage de votre clé privée dans le HSM garantit la conformité FIPS 140-2 niveau 2.

Pour ajouter une clé HSM à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

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

Exemple :

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

Le tableau suivant répertorie les différentes valeurs que l’état d’une clé HSM peut prendre, ainsi qu’une brève description de chaque état.

State Description
Created La clé HSM est ajoutée sur l’appliance ADC. Aucune opération clé n’a encore été tentée.
Token d’accès non disponible Le jeton d’accès n’est pas disponible lors d’une tentative d’opération de clé
Non autorisé L’application Azure configurée n’est pas autorisée à effectuer l’opération clé.
N’existe pas La clé n’existe pas dans Azure Key Vault.
Injoignable L’hôte Key Vault n’est pas accessible sur le réseau.
Marqué en bas La touche HSM est marquée DOWN sur l’appliance ADC en raison d’erreurs de seuil lors du fonctionnement de la clé.
Opérations clés réussies Réponse réussie reçue de Key Vault pour l’opération des clés.
Les opérations clés ont échoué Réponse en cas d’échec reçue de Key Vault pour le fonctionnement des clés.
Opération de clé étranglée La demande d’opération de clé est ralentie par le coffre de clés.

Pour ajouter une clé HSM à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > SSL > HSM.

    Ajouter une clé HSM

  2. Entrez des valeurs pour les paramètres suivants.

    • Nom de la clé HSM : nom de la clé.
    • Type HSM : type de HSM.
    • Magasin de clés : nom de l’objet de stockage de clés représentant le HSM dans lequel la clé est stockée. Par exemple, le nom de l’objet Key Vault ou de l’objet d’authentification Azure Key Vault. S’applique uniquement au KEYVAULT type HSM.

    Paramètres clés HSM

  3. Cliquez sur Ajouter.

Ajouter une paire de clés de certificat

Ajoutez une paire de clés de certificat à l’aide de la clé HSM créée précédemment.

Pour ajouter une paire de clés de certificat à l’aide de la CLI

À l’invite de commandes, tapez :

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

Exemple :

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

Pour ajouter une paire de clés de certificat à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > SSL > Certificat d’installation (HSM).

    Ajouter une paire de clés de certificat

  2. Entrez des valeurs pour les paramètres suivants :

    • Nom de la paire de clés de certificat
    • Nom du fichier de certificat
    • Clé HSM

    Paramètres de la paire de clés de certificat

  3. Cliquez sur Installer.

Liez la paire de clés de certificat à un serveur virtuel

Le certificat utilisé pour le traitement des transactions SSL doit être lié au serveur virtuel qui reçoit les données SSL.

Pour lier la paire de clés de certificat SSL à un serveur virtuel à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

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

Exemple :

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

Pour lier une paire de clés de certificat SSL à un serveur virtuel à l’aide de l’interface graphique

  1. Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels et ouvrez un serveur virtuel SSL. Cliquez dans la section Certificat.

    Écran Server certificate

  2. Cliquez sur la flèche pour sélectionner la paire de clés de certificat.

    Cliquez sur la flèche

  3. Sélectionnez la paire de clés de certificat dans la liste.

    Sélectionner une paire de clés de certificat

  4. Liez la paire de clés de certificat au serveur virtuel.

    Lier le certificat au serveur virtuel

Limitations

  • Le nombre d’appels simultanés vers Azure Key Vault pour des opérations clés est limité. Les performances de l’appliance ADC dépendent des limites de Key Vault. Pour plus d’informations, reportez-vous à la documentation de Microsoft Azure Key Vault.
  • Les clés EC ne sont pas prises en charge.
  • Les protocoles EDT et DTLS ne sont pas pris en charge.
  • Les appareils ADC équipés de puces SSL Intel Coleto ne sont pas pris en charge.
  • Les partitions de clustering et d’administration ne sont pas prises en charge.
  • Vous ne pouvez pas mettre à jour l’entité Application Azure, l’objet Azure Key Vault et la paire certificat-clé HSM après les avoir ajoutés à l’appliance ADC.
  • Un ensemble de certificats avec des clés HSM n’est pas pris en charge.
  • Une erreur n’apparaît pas si la clé HSM et le certificat ne correspondent pas. Lors de l’ajout d’une paire de clés de certificat, assurez-vous que la clé HSM et le certificat correspondent.
  • Vous ne pouvez pas lier une clé HSM à un serveur virtuel DTLS.
  • Vous ne pouvez pas signer les demandes OCSP à l’aide d’une paire de clés de certificat créée à l’aide d’une clé HSM.
  • Vous ne pouvez pas lier une paire de clés de certificat à un service SSL si la paire de clés de certificat est créée à l’aide d’une clé HSM.

Questions fréquentes

Lorsqu’elles sont intégrées à Azure Key Vault, les clés privées sont-elles stockées dans la mémoire de l’appliance ADC ?

Non, les clés privées ne sont pas stockées dans la mémoire de l’appliance ADC. Pour chaque transaction SSL, l’appliance envoie une demande à Key Vault.

L’intégration est-elle conforme à la norme FIPS 140-2 niveau 2 ?

Oui, la solution intégrée prend en charge la norme FIPS 140-2 niveau 2.

Quels types de clés sont pris en charge ?

Seuls les types de clés RSA sont pris en charge.

Quelles sont les tailles de clés prises en charge ?

Les clés RSA 1 024 bits, 2 048 bits et 4096 bits sont prises en charge.

Quels chiffrements sont pris en charge ?

Tous les chiffrements pris en charge par l’appliance ADC, y compris les chiffrements TLSv1.3 avec ECDHE et SHA256 sont pris en charge.

Les transactions sont-elles enregistrées ?

L’appliance ADC enregistre chaque transaction qu’elle effectue avec le coffre de clés. Les détails tels que l’heure, l’adresse IP du coffre-fort, le port, la réussite ou l’échec de la connexion et les erreurs sont consignés. Voici un exemple de sortie de journal SSL.

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-->
Prise en charge de Azure Key Vault