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 dans le cloud, l’appliance ADC s’intègre à Azure Key Vault. L’appliance stocke ses clés privées dans Key Vault pour faciliter la gestion et la sécurité de la clé privée dans le domaine du cloud public. Vous n’avez plus à stocker et à gérer les clés dans différents emplacements pour les appliances ADC déployées sur plusieurs datacenters et fournisseurs de cloud.

L’utilisation d’ADC avec le niveau de tarification Azure Key Vault Premium, qui fournit des clés HSM, assure 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 avec 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 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 Key Vault. L’appliance ADC accède à la clé de chaque poignée de main SSL.

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

Obtenir le jeton d'accès

Le diagramme 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 Key Vault.

Conditions préalables

  1. Vous devez disposer d’un abonnement Azure.

  2. (Facultatif) Installez Azure CLI sur une machine Linux. Pour obtenir des instructions, reportez-vous à la documentation Azurehttps://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 des 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 illustre le flux de haut niveau pour la configuration requise sur le portail Azure.

Étapes sur le portail Azure

  1. Créez l’application et le service principal 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écryptage sur Key Vault.
  4. Créez des clés dans Key Vault en utilisant l’une des méthodes 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’adressehttps://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 illustre le flux de haut niveau pour la configuration requise sur l’appliance ADC.

Étapes sur l'appliance 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éer 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 noms de l’hôte Key Vault et du point de terminaison Azure Active Directory.

Pour configurer un serveur DNS à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

add dns nameserver <IP address>

Exemple :

add dns nameserver 192.0.2.150

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).
    • Protocole - 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 Vaulthttps://<vault_name>.vault.azure.net et Azure Active Directory (AAD)https://login.microsoftonline.com et chargez-le sur l’appliance ADC. Ces certificats sont requis 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 certificationns_callout_certs.

Pour ajouter un certificat racine à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

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

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

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

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 de l'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 de certificat d'autorité de certification

  3. Cliquez sur Installer.

  4. Accédez à Gestion du trafic > SSL > Groupe de certificats CA.

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

    Afficher les liaisons

  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. Autrement dit, pour obtenir l’accès d’autorisation aux ressources et aux API Key Vault, ajoutez l’ID d’application Azure, le mot de passe (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 l’interface de ligne de commande

À l’invite de commandes, tapez :

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

Exemple :

add azure application app1 -clientiD 12345t23aaa5 -clientsecret csHzOoEzmuY= -tenantID 33583ee9ca5b
 Done

sh azure application
1)  Name:  app1
    ClientID:  12345t23aaa5
    TokenEndpoint:  "https://login.microsoftonline.com/33583ee9ca5b/" TenantID:  33583ee9ca5b
 Done

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

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

    Navigation des 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).
    • Client Secret : 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.
    • Point de fin de jeton — URL à partir de laquelle le jeton d’accès peut être obtenu. Si le point d’extrémité du jeton n’est pas spécifié, la valeur par défaut esthttps://login.microsoftonline.com/<tenant id>.

    Paramètres d'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 l’interface de ligne de commande

À l’invite de commandes, tapez :

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

Exemple :

add azure keyvault kv1 -azureapplication app1 -azurevaultName nsssltestvault3
show azure keyVault
1)  Name:  kv1               AzureVaultName:  SSLDevTest
    AzureApplication:  app1  State:  "Access token obtained"
 Done

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.

État Description
Créé État initial de l’objet Key Vault. L’authentification n’a pas été tentée.
Impossible d’atteindre le point d’extrémité du jeton 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.
Échec de l’autorisation Informations d’identification de l’application incorrectes.
Erreur d’analyse de jeton La réponse d’Azure Active Directory n’est pas dans le format attendu.
Jeton d’accès obtenu Authentification réussie par Azure Active Directory.

Pour configurer Azure Key Vault à l’aide de l’interface graphique

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

    Navigation Azure Key Vault

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

    • Nom - Nom du coffre à clés.
    • Azure Key Vault Name - Nom du Key Vault configuré dans le cloud Azure à l’aide de l’interface de ligne de commande Azure ou du portail Azure (GUI).
    • 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 avec Azure Active Directory.

    Paramètres Azure Key Vault

Ajouter une clé HSM

Le stockage de votre clé privée dans le HSM assure 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>]

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

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

État Description
Créé La clé HSM est ajoutée sur l’appliance ADC. Une opération clé n’est pas encore tentée.
Jeton d’accès non disponible Le jeton d’accès n’est pas disponible lors de la tentative d’opération de clé.
Non autorisé L’application Azure configurée n’a pas l’autorisation d’effectuer l’opération de 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é vers le bas La clé HSM est marquée vers le bas 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 du Key Vault pour l’opération des clés.
Échec des opérations de clé Réponse en cas de défaillance reçue de Key Vault pour le fonctionnement de la clé.
Opération de clé étranglée La demande d’opération de clé est étranglée par Key Vault.

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 magasin de clés représentant HSM où la clé est stockée. Par exemple, nom de l’objet Key Vault ou de l’objet d’authentification Azure Key Vault. S’applique uniquement auKEYVAULT type HSM.

    Paramètres de clé 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 l’interface de ligne de commande

À l’invite de commandes, tapez :

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

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

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

  1. Accédez à Gestion du trafic > SSL > Installer le certificat (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 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>

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

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.

    Certificat serveur

  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 les opérations clés est limité. Les performances de l’appliance ADC dépendent des limites de Key Vault. Pour connaître les limites de service Azure Key Vault, reportez-vous à la section https://docs.microsoft.com/en-us/azure/key-vault/key-vault-service-limits.
  • Les clés EC ne sont pas prises en charge.
  • Les protocoles EDT et DTLS ne sont pas pris en charge.
  • Les appareils ADC dotés de puces Intel Coleto SSL 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 de clés de certificat HSM après les avoir ajoutés à l’appliance ADC.

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.

Est-ce que l’intégration FIPS 140-2 niveau 2 plainte ?

Oui, la solution intégrée fournit la prise en charge 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 tailles de clés sont prises en charge ?

Les clés RSA 1024 bits, 2048 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 Key Vault. Les détails tels que l’heure, l’adresse IP du coffre-fort, le port, le succès 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"