Prise en charge de Azure Key Vault
L’appliance NetScaler 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 NetScaler 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.
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.
Dans une poignée de main ECDHE, le message d’échange de clés de serveur (SKE) envoyé par l’appliance NetScaler ADC est signé à l’aide de la clé privée stockée dans le coffre de clés.
Pré-requis
-
Vous devez disposer d’un abonnement Azure.
-
(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.
-
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.
- Créez le principal d’application et de service dans Azure Active Directory.
- Créez Key Vault dans un groupe de ressources.
- 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.
-
Créez des clés dans le coffre de clés de l’une des manières suivantes :
- En important un fichier clé.
- 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.
- Configurez un serveur DNS.
- Configurez les certificats racine pour vérifier les certificats présentés par Azure.
- Créez une application Azure.
- Créez une entité Azure Key Vault.
- Créez une clé HSM.
- Créez une paire de clés de certificat.
- 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
-
Accédez à Gestion du trafic > DNS > Serveurs de noms . Cliquez sur Ajouter.
- 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.
- 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
-
Accédez à Gestion du trafic > SSL > Certificats > Certificats CA .
- Entrez des valeurs pour les paramètres suivants :
- Nom de la paire de clés de certificat
- Nom du fichier de certificat
-
Cliquez sur Installer.
-
Accédez à Gestion du trafic > SSL > Groupe de certificats d’autoritéde certification.
-
Sélectionnez ns_callout_certs et cliquez sur Afficher les liaisons.
-
Cliquez sur Bind.
-
Sélectionnez le certificat d’autorité de certification créé précédemment et cliquez sur Sélectionner.
- 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
-
Accédez à Gestion du trafic > SSL > Azure > Application.
-
Dans le volet d’informations, cliquez sur Ajouter.
-
Entrez des valeurs pour les paramètres suivants :
- Nom : nom de l’objet d’application sur l’appliance NetScaler 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>
.
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.
État | 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
-
Accédez à Gestion du trafic > SSL > Azure > Key Vault.
-
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.
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.
État | 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
-
Accédez à Gestion du trafic > SSL > HSM.
-
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.
-
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
-
Accédez à Gestion du trafic > SSL > Certificat d’installation (HSM).
-
Entrez des valeurs pour les paramètres suivants :
- Nom de la paire de clés de certificat
- Nom du fichier de certificat
- Clé HSM
-
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
-
Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels et ouvrez un serveur virtuel SSL. Cliquez à l’intérieur de la section Certificat .
-
Cliquez sur la flèche pour sélectionner la paire de clés de certificat.
-
Sélectionnez la paire de clés de certificat dans la liste.
-
Liez la paire de clés de 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-->