Partager via


Résoudre les problèmes d’Azure Cloud HSM

Cet article vous aide à résoudre les problèmes courants et les erreurs que vous pouvez rencontrer lors de l’utilisation du service HSM Cloud Azure.

Messages d’erreur courants

Les sections suivantes répondent à des questions sur les erreurs courantes, notamment les erreurs liées aux machines virtuelles et aux modules de sécurité matériels (HSM).

Pourquoi est-ce que je reçois le message d’erreur « Erreur de certificat : [Échec de signature du certificat] » lors de l’exécution de azcloudhsm_mgmt_util ?

Cette erreur peut se produire lorsque vous effectuez les étapes suivantes :

  1. Créez et initialisez votre déploiement Azure Cloud HSM à partir d’une autre machine virtuelle.
  2. Essayez d’installer le Kit de développement logiciel (SDK) client HSM cloud et exécutez à partir d’une autre machine virtuelle manquante ou qui n’a pas le fichier correct PO.crt de la machine virtuelle d’administration à partir de laquelle vous avez initialisé.

Si vous copiez le PO.crt fichier de votre machine virtuelle administrateur vers votre nouvelle machine virtuelle et réexécutez azcloudhsm_mgmt_util, vous devriez voir une connexion réussie à votre HSM.

Pourquoi est-ce que je reçois le message d'erreur « INF : shutdown_ssl_socket : SSL_shutdown a envoyé une alerte close_notify » lors de l’exécution de azcloudhsm_client ?

Cette erreur peut se produire lorsque vous effectuez les étapes suivantes :

  1. Créez et initialisez votre déploiement Azure Cloud HSM à partir d’une autre machine virtuelle.
  2. Essayez d’installer le Kit de développement logiciel (SDK) client HSM cloud et exécutez à partir d’une autre machine virtuelle manquante ou qui n’a pas le fichier correct PO.crt de la machine virtuelle d’administration à partir de laquelle vous avez initialisé.

Si vous copiez le PO.crt fichier de votre machine virtuelle administrateur vers votre nouvelle machine virtuelle et réexécutez azcloudhsm_client, vous devriez voir une connexion réussie à votre HSM.

Pourquoi est-ce que je reçois le message d’erreur « azcloudhsm_application.cfg n’est pas présent » ?

Pour garantir la réussite de l’exécution de votre application, vous devez respecter ces deux conditions :

  • Le azcloudhsm_application.cfg fichier est présent dans le même répertoire que votre application.

  • L’outil azcloudhsm_client est en cours d’exécution. Si azcloudhsm_client n’est pas actif, vous rencontrez une connexion de socket ayant échoué.

    De même, l’absence du azcloudhsm_application.cfg fichier entraîne un message d’erreur. En fonction de l’emplacement d’exécution de votre application, vous devrez peut-être copier le azcloudhsm_application.cfg fichier du répertoire sdk Azure Cloud HSM vers le répertoire où vous exécutez votre application.

Moteur OpenSSL pour azure Cloud HSM

Le moteur OpenSSL pour Azure Cloud HSM prend-il en charge Windows ?

Non. Le moteur OpenSSL pour Azure Cloud HSM prend en charge Linux (Ubuntu 20.04, Ubuntu 22.04, RHEL 7, RHEL 8 et CBL Mariner 2) uniquement.

Pourquoi est-ce que je reçois le message d'erreur « moteur non valide 'azcloudhsm_openssl', impossible de charger la bibliothèque partagée » ?

Le message d’erreur suggère que la variable LD_LIBRARY_PATH d’environnement requise n’est pas configurée. Cette configuration est nécessaire. Définissez la LD_LIBRARY_PATH variable d’environnement sur le répertoire où se trouve le Kit de développement logiciel (SDK) HSM Cloud Azure.

Vous devez mettre à jour vos variables d’environnement pour refléter la version correcte du Kit de développement logiciel (SDK) en exécutant cette commande :

export LD_LIBRARY_PATH=/opt/azurecloudhsm/lib64/:$LD_LIBRARY_PATH

Pourquoi est-ce que je reçois le message d’erreur « variable d’environnement azcloudhsm_openssl_conf n’est pas défini » ?

Le message d’erreur signale que la variable azcloudhsm_openssl_conf d’environnement requise n’est pas configurée. Définissez la variable d’environnement azcloudhsm_openssl_conf sur le chemin d’accès de votre fichier azcloudhsm_openssl_dynamic.conf dans le répertoire du SDK Azure Cloud HSM.

Vous devez mettre à jour vos variables d’environnement pour refléter la version correcte du Kit de développement logiciel (SDK) en exécutant cette commande :

export azcloudhsm_openssl_conf=/opt/azurecloudhsm/bin/azcloudhsm_openssl_dynamic.conf  

Pourquoi est-ce que je reçois le message d’erreur « variable d’environnement azcloudhsm_password n’est pas défini » ?

Le message d’erreur suggère que la variable azcloudhsm_password d’environnement requise n’est pas configurée. Définissez la variable d’environnement azcloudhsm_password sur la valeur de cryptouser:password.

Vous devez mettre à jour vos variables d’environnement pour refléter l’utilisateur et le mot de passe de chiffrement appropriés :

export azcloudhsm_password="cu1:user1234"

Fournisseur JCE pour Azure Cloud HSM

Les sections suivantes répondent aux questions relatives à l’extension de chiffrement Java (JCE).

L’intégration de JCE à Azure Cloud HSM prend-elle en charge Windows ?

Non. L’intégration JCE à Azure Cloud HSM prend en charge Linux (Ubuntu 20.04, Ubuntu 22.04, RHEL 7, RHEL 8, CBL Mariner 2) uniquement.

Pourquoi est-ce que je reçois le message d’erreur « Impossible de trouver des informations d’identification pour vous connecter au HSM » ?

L’erreur indique une difficulté à localiser ou à authentifier les informations d’identification requises pour la connexion à Cloud HSM. Lorsque vous utilisez les exemples de cette documentation ou que vous incorporez le fournisseur JCE pour Azure Cloud HSM dans vos applications, il est essentiel de vous connecter explicitement avec des informations d’identification :

// Explicit Login with Credentials
LoginManager lm=LoginManager.getInstance();
lm.login("PARTITION_1","cu1","user1234");

// Logout of the HSM
lm.logout();

Pourquoi est-ce que je reçois le message d’erreur « attribut avec la valeur 0 pour cette opération ? L’attribut doit être défini pour l’utilisateur KEK»?

L’erreur indique qu’une clé de chiffrement à clé (KEK) générée par l’utilisateur n’a pas été créée et désignée comme pouvant être extraite et wrap_with_trusted est défini sur 1. Pour connaître les paramètres appropriés à utiliser lorsque vous effectuez des opérations d’importation de clé, de wrap et de suppression de clé, consultez la section relative à la création d’une clé KEK générée par l’utilisateur dans le guide d’intégration JCE.

Pourquoi est-ce que je reçois le message d’erreur « Erreur de connexion au socket démon, échec de la connexion à l’API » ?

L’erreur indique une difficulté à localiser ou à authentifier les informations d’identification requises pour la connexion à Cloud HSM. Lorsque vous utilisez les exemples du guide d’intégration JCE ou que vous incorporez le fournisseur JCE Azure Cloud HSM dans vos applications, il est essentiel de vous connecter explicitement avec des informations d’identification pour garantir la connexion.

Bibliothèque PKCS#11 pour Azure Cloud HSM

Pourquoi le message d’erreur « C_Login a échoué avec le code d’erreur : 0xa3 » ?

L’erreur 0xa3 indique un échec de connexion. L’échec peut être lié au format du paramètre de code confidentiel que vous transmettez, ou le code confidentiel (mot de passe) peut être incorrect.

Le code confidentiel doit être fourni au format suivant : char pPin[256] = "crypto_user:user123";. La pPin valeur doit suivre la structure de <username>:<password>. Vérifiez que vous fournissez la pPin valeur dans ce format, car tout écart peut entraîner un échec de connexion.

Pourquoi le message d’erreur « C_Initialize() a échoué avec 00000005 (Échec de la connexion du socket) » ?

Un échec de connexion par socket durant C_Initialize peut être lié à l'outil azcloudhsm_client qui ne s'exécute pas sur votre système. Pour que vos applications PKCS#11 s’exécutent correctement, azcloudhsm_client elles doivent être en cours d’exécution. Vous pouvez commencer par exécuter azcloudhsm_client l’une des commandes suivantes dans un terminal distinct.

Si vous avez installé le SDK Azure Cloud HSM à l’aide de DEB ou RPM, le client n’est pas configuré automatiquement pour s’exécuter en tant que service. Le Kit de développement logiciel (SDK), pendant l’installation, inclut un fichier d’unité de service sous /etc/systemd/system/azure-cloud-hsm.service. Pour activer azcloudhsm_client l’exécution en tant que service, utilisez le fichier prédéfini azure-cloud-hsm.service .

Rechargez la systemd configuration et activez le service pour vous assurer qu’il est en cours d’exécution. Procédez comme suit :

  1. Ouvrez une fenêtre de terminal et remplacez le répertoire /etc/systemd/systempar , où se trouve le fichier d’unité de service HSM cloud :

    cd /etc/systemd/system
    
  2. Démarrez et activez le service client HSM cloud :

    sudo systemctl start azure-cloud-hsm.service
    sudo systemctl enable azure-cloud-hsm.service
    
  3. Vérifiez l’état du service client HSM cloud :

    sudo systemctl status azure-cloud-hsm.service
    
  4. Rechargez la configuration systemd :

    sudo systemctl daemon-reload
    sudo systemctl list-units --type=service --state=running
    

Linux (manuel)

Démarrez le démon client s’il n’est pas en cours d’exécution :

sudo ./azcloudhsm_client azcloudhsm_client.cfg

Vous pouvez également choisir d’exécuter le démon client en arrière-plan à l’aide de la commande suivante. Vous pouvez également exécuter le démon client en tant que service pour vous assurer qu’il est toujours en cours d’exécution.

sudo ./azcloudhsm_client azcloudhsm_client.cfg > /dev/null 2>&1 &

Si vous avez installé le SDK Azure Cloud HSM à l’aide d’un package MSI, le client est déjà configuré pour s’exécuter en tant que service. Si le client n’est pas en cours d’exécution, vous pouvez ouvrir Services.msc, cliquer avec le bouton droit sur Le service client Microsoft Azure Cloud HSM, puis sélectionner Démarrer.

Windows (manuel)

Démarrez le démon client s’il n’est pas en cours d’exécution :

cd C:\Program Files\Microsoft Azure Cloud HSM Client SDK 
.\azcloudhsm_client.exe .\azcloudhsm_resource.cfg 

Comment la bibliothèque PKCS#11 pour Linux sait-elle trouver la configuration du client ?

La bibliothèque PKCS#11 sait comment trouver la configuration du client, car vous devez disposer d’une copie de votre certificat propriétaire de partition (PO.crt) sur le serveur d’applications qui exécute votre application et à l’aide de la bibliothèque PKCS#11. En plus du certificat de propriétaire de la partition :

  • Vous devez mettre à jour /azcloudhsm_client/azcloudhsm_client.cfg sur le serveur d'applications où le SDK est installé pour le faire pointer vers votre déploiement Azure Cloud HSM (c'est-à-dire, hsm1.chsm-<resourcename>-<uniquestring>.privatelink.cloudhsm.azure.net).
  • L’outil azcloudhsm_client doit s’exécuter sur le serveur d’applications qui se connecte à votre déploiement Azure Cloud HSM.
  • Vous devez spécifier un code confidentiel dans votre application PKCS#11 à l’aide de la syntaxe <username>:<password>. Ce code confidentiel est utilisé pour appeler C_Login dans votre déploiement HSM cloud Azure.
  • Vous devez inclure pkcs11_headers/include/cryptoki.h et pkcs11_headers/include/pkcs11t.h dans votre application PKCS#11 pour utiliser la bibliothèque PKCS#11 pour Azure Cloud HSM.

Comment la bibliothèque PKCS#11 (azcloudhsm_pkcs11.dll) pour Windows sait-elle trouver la configuration du client ?

Le azcloudhsm_pkcs11.dll fichier du Kit de développement logiciel (SDK) Windows Cloud HSM Azure sait comment trouver la configuration du client, car vous devez disposer d’une copie de votre certificat de propriétaire de partition (PO.crt) sur le serveur d’applications exécutant votre application et à l’aide de la bibliothèque PKCS#11. En plus du certificat de propriétaire de partition :

  • Vous devez mettre à jour /azcloudhsm_client/azcloudhsm_client.cfg sur le serveur d'applications où le SDK est installé pour qu'il pointe vers votre déploiement Azure Cloud HSM, c’est-à-dire hsm1.chsm-<resourcename>-<uniquestring>.privatelink.cloudhsm.azure.net.
  • L’outil azcloudhsm_client doit s’exécuter sur le serveur d’applications qui se connecte à votre déploiement Azure Cloud HSM.
  • Vous devez spécifier un code confidentiel dans votre application PKCS#11 à l’aide de la syntaxe <username>:<password>. Ce code confidentiel est utilisé pour appeler C_Login dans votre déploiement HSM cloud Azure.
  • Vous devez inclure pkcs11_headers\include\cryptoki.h et pkcs11_headers\include\pkcs11t.h dans votre application PKCS#11 pour utiliser la bibliothèque PKCS#11 pour Azure Cloud HSM.

Pourquoi ai-je des erreurs PKCS#11 quand j’essaie de définir une clé ou un keystore ?

Vérifiez que vous disposez du client HSM Cloud Azure en cours d’exécution (sudo ./azcloudhsm_client azcloudhsm_client.cfg). Un utilisateur incorrect, un mot de passe incorrect, un client de sécurité liquide qui n’est pas en cours d’exécution ou un client qui ne parvient pas à se connecter peut entraîner l’erreur suivante :

Error Message:ERROR at line 1:
ORA-28407: Hardware Security Module failed with PKCS#11 error
CKR_GENERAL_ERROR(5)

Comment la bibliothèque PKCS#11 (azcloudhsm_pkcs11.dll) s’intègre-t-elle à OpenSC ?

Vous devez utiliser les arguments --sensitive et --private lorsque vous utilisez des outils open source de carte à puce (OpenSC), car les attributs sensibles et privés ne peuvent pas être 0. Sans ces arguments, les outils OpenSC définissent les attributs sensibles et privés sur 0. Ces attributs génèrent une exception, car azure Cloud HSM impose toujours un comportement sensible et privé.

Voici un exemple d’habillage AES (Advanced Encryption Standard) :

pkcs11-tool.exe --sensitive --private --module "C:\AzureCloudHSM-ClientSDK\AzureCloudHSM-ClientSDK-Windows-1.0.3.0\libs\pkcs11\azcloudhsm_pkcs11.dll" --login --login-type user --pin cu1:user1234 --keygen --key-type AES:32*

Voici un exemple de chiffrement à courbe elliptique (ECC) P521 :

pkcs11-tool.exe --sensitive --private --module "C:\AzureCloudHSM-ClientSDK\AzureCloudHSM-ClientSDK-Windows-1.0.3.0\libs\pkcs11\azcloudhsm_pkcs11.dll" --login --login-type user --pin cu1:user1234 --keypairgen --key-type EC:prime256v1 --usage-sign

Déchargement SSL/TLS pour le HSM cloud Azure

Les sections suivantes répondent aux questions relatives au déchargement du traitement SSL (Secure Sockets Layer) ou TLS (Transport Layer Security).

Le moteur OpenSSL pour HSM cloud Azure prend-il en charge PKCS#11 pour le déchargement SSL/TLS ?

Non. Le moteur OpenSSL pour HSM cloud Azure ne prend pas en charge PKCS#11 pour le déchargement SSL/TLS. Les clients qui nécessitent PKCS#11 pour le déchargement SSL/TLS doivent utiliser la bibliothèque de déchargement TLS pour Azure Managed HSM.

Pourquoi est-ce que je reçois le message d’erreur « Échec de la connexion au socket, LIQUIDSECURITY : Erreur de connexion au socket démon » lors de l’exécution de azcloudhsm_util ?

Le message d'erreur suggère que azcloudhsm_client n'est pas en cours d'exécution. Assurez-vous que azcloudhsm_client est en cours d'exécution pour que les outils HSM du cloud Azure fonctionnent correctement. Vous pouvez commencer azcloudhsm_client par vous assurer qu’il s’exécute en tant que service ou en exécutant manuellement l’une des commandes suivantes dans un terminal distinct.

Si vous avez installé le SDK Azure Cloud HSM à l’aide de DEB ou RPM, le client n’est pas configuré automatiquement pour s’exécuter en tant que service. Le Kit de développement logiciel (SDK), pendant l’installation, inclut un fichier d’unité de service sous /etc/systemd/system/azure-cloud-hsm.service. Pour activer azcloudhsm_client l’exécution en tant que service, utilisez le fichier prédéfini azure-cloud-hsm.service .

Rechargez la systemd configuration et activez le service pour vous assurer qu’il est en cours d’exécution. Procédez comme suit :

  1. Ouvrez une fenêtre de terminal et remplacez le répertoire /etc/systemd/systempar , où se trouve le fichier d’unité de service HSM cloud :

    cd /etc/systemd/system
    
  2. Démarrez et activez le service client HSM cloud :

    sudo systemctl start azure-cloud-hsm.service
    sudo systemctl enable azure-cloud-hsm.service
    
  3. Vérifiez l’état du service client HSM cloud :

    sudo systemctl status azure-cloud-hsm.service
    
  4. Rechargez la configuration systemd :

    sudo systemctl daemon-reload
    sudo systemctl list-units --type=service --state=running
    

Linux (manuel)

Démarrez le démon client s’il n’est pas en cours d’exécution :

sudo ./azcloudhsm_client azcloudhsm_client.cfg

Vous pouvez également choisir d’exécuter le démon client en arrière-plan à l’aide de la commande suivante. Vous pouvez également exécuter le démon client en tant que service pour vous assurer qu’il est toujours en cours d’exécution.

sudo ./azcloudhsm_client azcloudhsm_client.cfg > /dev/null 2>&1 &

Pourquoi est-ce que je reçois le message d’erreur « variable d’environnement azcloudhsm_password n’est pas défini » ?

Le message d’erreur suggère que la variable azcloudhsm_password d’environnement requise n’est pas configurée. Pour résoudre ce problème, définissez la azcloudhsm_password variable d’environnement sur la valeur de cryptouser:password.

Mettez à jour vos variables d’environnement pour refléter l’utilisateur et le mot de passe de chiffrement appropriés :

export azcloudhsm_password="cu1:user1234"

Pourquoi est-ce que je reçois le message d’erreur « Clé/Jeton introuvable » ou « Key-handle/token non valide » lorsque j’essaie d’importer une clé ?

Le message d’erreur suggère que le handle de clé d’enveloppement spécifié (l’ID de handle KEK) est incorrect. Le paramètre -f spécifie le nom de fichier contenant la clé à importer, tandis que -w spécifie le handle de clé d'enveloppement. Lors de la création d’une clé KEK générée par l’utilisateur, la valeur -w doit être l’ID du descripteur de clé de votre ID de clé KEK générée par l’utilisateur.

azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 importPrivateKey -l importTestKey -f key.pem -w 262150

Pourquoi est-ce que je reçois le message d’erreur « /configure : erreur : C compiler cc introuvable » quand j’essaie de configurer les sources NGINX ?

Le message d’erreur suggère que vous manquez un compilateur C à partir de votre système lorsque vous exécutez la configure commande. Selon votre installation, après avoir exécuté les commandes suivantes, vous devrez peut-être également installer openssl libssl-dev et zlib1g zlib1g-dev. Ces éléments sont des dépendances.

Systèmes Red Hat (à l’aide de YUM)

sudo yum update
sudo yum groupinstall "Development Tools"

Systèmes Red Hat (à l’aide de DNF)

sudo dnf update
sudo dnf install "Development Tools"

Systèmes Ubuntu (utilisant APT)

sudo apt update  
sudo apt install build-essential 

Pourquoi est-ce que je reçois le message d’erreur « /configure : erreur : les modules SSL nécessitent la bibliothèque OpenSSL » ?

Le message d’erreur indique que la bibliothèque OpenSSL est nécessaire pour activer les modules SSL pour NGINX. Pour résoudre ce problème, exécutez la commande suivante, puis réexécutez configure :

sudo apt-get install libssl-dev

Pourquoi est-ce que je reçois le message d’erreur « /configure : erreur : le module gzip HTTP requiert la bibliothèque zlib » ?

Le message d’erreur indique que la bibliothèque zlib est requise pour le module gzip HTTP dans NGINX. Pour résoudre ce problème, exécutez la commande suivante, puis réexécutez configure :

sudo apt-get install zlib1g-dev

Pourquoi est-ce que je reçois le message d’erreur « Erreur HSM : RET_USER_LOGIN_FAILURE » ?

Le message d’erreur indique que l’utilisateur spécifié n’existe pas sur un ou plusieurs nœuds où vous tentez d’effectuer une opération de chiffrement. Bien qu’Azure Cloud HSM fonctionne avec un cluster de trois nœuds, l’opération a été dirigée vers un nœud où la connexion a échoué.

Dans ce cas, un critical_err_info_ fichier est généré dans le AzureCloudHSM-ClientSDK répertoire. Le fichier indique « État : Erreur HSM : cet utilisateur n’existe pas ».

Pour atténuer cette erreur, vous devez créer un utilisateur de chiffrement (CU) répliqué sur les trois nœuds de votre déploiement Azure Cloud HSM. L’exemple suivant montre le démarrage azcloudhsm_mgmt_util et la connexion d’un administrateur en tant qu’utilisateur de l’agent de chiffrement (CO). L’exemple crée ensuite un utilisateur cu1 avec le rôle de CU.

sudo ./azcloudhsm_mgmt_util ./azcloudhsm_mgmt_util.cfg
loginHSM CO admin adminpassword 
createUser CU cu1 user1234
logoutHSM
loginHSM CU cu1 user1234

Comment afficher le contenu du fichier CRT, CSR ou clé que j’ai créé ?

Pour afficher le contenu du certificat (CRT), la demande de signature de certificat (CSR) ou le fichier de clé que vous avez créé dans votre terminal, utilisez cette commande :

cat filename.key

Pour afficher des informations détaillées sur un certificat X.509 contenu dans le fichier PEM (Privacy Enhanced Mail), utilisez la commande suivante. Si votre fichier PEM contient une clé privée ou d’autres types de données, vous devrez peut-être ajuster la commande en conséquence.

openssl x509 -in filename.pem -text -noout

Pour afficher des informations détaillées sur une demande de signature de certificat (CSR), utilisez la commande suivante. Ces informations incluent l’objet, la clé publique et tous les attributs inclus dans la demande.

openssl req -in filename.csr -text -noout

Pour afficher des informations détaillées sur une clé privée Rivest-Shamir-Adleman (RSA), utilisez la commande suivante. Ces informations incluent le module de la clé, l’exposant public et d’autres paramètres.

openssl rsa -in filename.key -text -noout

Pour afficher des informations détaillées sur une clé privée de courbe elliptique (EC), utilisez la commande suivante. Il affiche les paramètres de courbe, la valeur de clé privée et d’autres informations pertinentes.

openssl ec -in filename.key -text -noout

Comment générer une paire de clés ED25519 dans Azure Cloud HSM pour la signature ?

ED25519 clés sont généralement utilisées pour les certificats auto-signés ou dans les processus de signature de certificat qui utilisent directement la clé privée. Vous pouvez générer une paire de clés ED25519 à l’aide azcloudhsm_util du moteur OpenSSL pour azure Cloud HSM.

Important

Nous vous déconseillons d’utiliser openssl genpkey ou openssl ecparam. L'utilisation de openssl genpkey ou openssl ecparam avec -engine azcloudhsm_openssl pour générer une clé ED25519 ou ECCKeyPair ne produit pas de clé HSM. Au lieu de cela, il génère une clé logicielle. Si vous avez besoin de ED25519 ou d’autres types de clés EC, vous devez utiliser azcloudhsm_util pour créer la clé dans le HSM.

Openssl genpkey et openssl ecparam sont à la fois des commandes OpenSSL pour générer des clés de chiffrement, mais elles servent différents objectifs et prennent en charge différents types de clés. Utilisez openssl genpkey quand vous devez générer un large éventail de clés de chiffrement asymétriques, notamment RSA, DSA, ECDSA et ED25519 clés. Utilisez openssl ecparam spécifiquement pour générer des clés de chiffrement de courbe elliptique (ECDSA), telles que prime256v1, secp384r1 ou secp521r1.

./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 genECCKeyPair -i 28 -l labelED25519Test

Puis-je utiliser azcloudhsm_util pour générer des clés RSA et EC avant d’utiliser le moteur Azure Cloud HSM OpenSSL pour générer une demande de signature de certificat ?

Oui. Vous pouvez exécuter les commandes suivantes azcloudhsm_util pour créer une clé RSA ou EC, puis extraire la clé privée dans un format PEM faux. Remplacez {PRIVATE_KEY_HANDLE} par le handle de clé privée de la clé RSA ou EC que vous avez créée.

Le fichier de métadonnées de clé privée au format PEM ne contient aucun matériau de clé privée sensible. Les métadonnées identifient la clé privée, et seul le moteur OpenSSL pour Azure Cloud HSM comprend ce fichier.

Utilisez cette commande pour créer une clé RSA :

./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 genRSAKeyPair -m 2048 -e 65537 -l labelRSATest 
./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 getCaviumPrivKey -k {PRIVATE_KEY_HANDLE} -out web_server_fake_PEM.key 
openssl req -new -key web_server_fake_PEM.key -out web_server.csr -engine azcloudhsm_openssl 
openssl x509 -req -days 365 -in web_server.csr -signkey web_server_fake_PEM.key -out web_server.crt -engine azcloudhsm_openssl 

Utilisez cette commande pour créer une clé EC :

./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 genECCKeyPair -i 2 -l labelECTest 
./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 getCaviumPrivKey -k {PRIVATE_KEY_HANDLE} -out web_server_fake_PEM.key 
openssl req -new -key web_server_fake_PEM.key -out web_server.csr -engine azcloudhsm_openssl 
openssl x509 -req -days 365 -in web_server.csr -signkey web_server_fake_PEM.key -out web_server.crt -engine azcloudhsm_openssl 

SQL Server EKM pour Azure Cloud HSM

Les sections suivantes répondent aux questions relatives à la fonctionnalité EKM (Extensible Key Management) dans SQL Server.

Un fournisseur EKM SQL Server pour Azure Cloud HSM prend-il en charge les clés symétriques ?

Non. SQL Server ne prend pas en charge les clés symétriques pour le chiffrement transparent des données. Seules les clés asymétriques sont prises en charge.

Un fournisseur EKM SQL Server pour Azure Cloud HSM prend-il en charge SQL Server sur Linux ?

Non. Un fournisseur EKM SQL Server pour Azure Cloud HSM prend uniquement en charge Windows Server.

Un fournisseur EKM SQL Server pour Azure Cloud HSM prend-il en charge SQL Server SaaS/PaaS ?

Non. Azure Cloud HSM est une infrastructure en tant que service (IaaS) uniquement. Les clients SaaS (Software as a Service) ou PaaS (Platform as a Service) doivent utiliser Azure Managed HSM, qui prend en charge le chiffrement transparent des données pour Azure SQL Database et Azure SQL Managed Instance.

Un fournisseur EKM SQL Server pour Azure Cloud HSM prend-il en charge plusieurs connexions, informations d’identification et connexions ?

Pour un fournisseur EKM de SQL Server pour Azure Cloud HSM, la connexion SQL est limitée et ne peut avoir qu'un seul identifiant assigné.

Pourquoi est-ce que je reçois le message d’erreur « Erreur : Impossible d’initialiser le fournisseur de chiffrement. Code d’erreur du fournisseur : 1. (Échec - Consulter le fournisseur EKM pour plus d’informations)" ?

Cette erreur courante peut se produire lorsque vous exécutez le package MSI pour Azure Cloud HSM après avoir installé SQL Server. L’erreur disparaît lorsque vous redémarrez SQL Server. À ce stade, il récupère les variables d’environnement et les paramètres que vous avez créés lors de l’exécution du package MSI pour Azure Cloud HSM.

Intégration d’AD CS à Azure Cloud HSM

Les sections suivantes répondent aux questions relatives aux services de certificats Active Directory (AD CS).

Pourquoi obtenir le message d’erreur « Impossible d’ouvrir le fichier openssl-ca.cnf » lorsque j’essaie de migrer un certificat à partir d’un KSP Microsoft à l’aide de l’exemple fourni ?

Cette erreur se produit généralement lorsque le openssl-ca.cnf fichier n’existe pas lorsque vous essayez de migrer un certificat à partir d’un fournisseur de stockage de clés (KSP). Vous pouvez créer le fichier vous-même ou l’obtenir à partir d’une autre source.

Puis-je utiliser mes propres serveurs de signature dans mon réseau d’entreprise qui consomme le HSM Cloud Azure en tant que solution SaaS ?

Azure Cloud HSM est IaaS uniquement. Toutefois, vous pouvez utiliser vos propres serveurs de signature dans votre réseau d’entreprise.

Vous pouvez configurer une connexion VPN de site à site ou point à site à partir de votre passerelle de réseau local. Il s’agit de la méthode la plus courante, et elle convient à la plupart des cas d’usage. Configurez une connexion VPN entre les serveurs locaux de votre réseau d’entreprise et l’emplacement où azure Cloud HSM est déployé. Pour plus d’informations, consultez Tutoriel : Créer une connexion VPN de site à site dans le portail Azure.

Vous pouvez disposer d’AD CS pour vos serveurs de signature locaux. Le Kit de développement logiciel (SDK) doit se trouver sur votre hôte local et le client doit être accessible aux adresses IP privées de votre réseau virtuel Azure. Les conditions suivantes s'appliquent :

  • Vous devez exécuter azcloudhsm_client sur la même machine que celle sur laquelle existe l’API de chiffrement : fournisseur CNG (Next Generation) pour Azure Cloud HSM.
  • L’outil azcloudhsm_client doit être en mesure de communiquer avec les adresses IP privées du réseau virtuel Azure.

Lorsque nous avons testé AD CS, nous avons généré une paire de clés RSA, puis utilisé la gestion des certificats pour signer.

Les seules méthodes acceptées sont-elles de signer ou de vérifier par des fournisseurs HSM cloud, par exemple, azcloudhsm_util ?

Non. Nous vous recommandons d’utiliser le Kit de développement logiciel (SDK) Azure Cloud HSM et les interfaces (telles que PKCS#11, CNG, KSP, JCE et OpenSSL) qu’il fournit. Vous pouvez également utiliser l’outil de signature (signtool.exe) pour les opérations de signature ou de vérification.

AD CS est configuré pour utiliser CNG ou un KSP pour azure Cloud HSM.

Puis-je utiliser la signature/vérification à partir du HSM cloud via signtool.exe?

Oui. L’outil de signature accède automatiquement à votre déploiement HSM cloud. Il n’est pas nécessaire d’utiliser azcloudhsm_util. Nous avons inclus azcloudhsm_util les instructions comme moyen pour les clients de tester et de valider rapidement leurs configurations AD CS.

Puis-je utiliser des certificats auto-signés en fonction de la paire de clés dans Le HSM cloud pour les tests ?

Oui. Vous pouvez utiliser des certificats auto-signés en fonction de la paire de clés à des fins de test.

Existe-t-il une intégration ou un moyen de rendre les certificats disponibles via le magasin de certificats Windows local ?

Vous pouvez utiliser l’outil certreq.exe à cet effet.

Quels algorithmes les fournisseurs CNG et KSP pour azure Cloud HSM prennent-ils en charge ?

  • Chiffrement et déchiffrement RSA
  • Signature RSA avec des algorithmes de hachage SHA1, SHA256, SHA384, SHA512 et MD5
  • Courbes ECC ECDSA_P256, ECDSA_P384 et ECDSA_P521

Comment modifier ou gérer des autorisations de clé privée pour les utilisateurs non administrateurs sur Windows ?

Lorsque vous générez une clé à l’aide d’un HSM KSP ou CNG pour Azure Cloud HSM, seul l’administrateur est autorisé à accéder à la clé privée. Vous pouvez rencontrer des difficultés lors de l’affichage des informations de sécurité ou de la modification des autorisations via MMC (Microsoft Management Console). Ce comportement est intentionnel.

Par défaut, lorsque vous utilisez un KSP ou un CNG, l’accès au fichier de clé privée pour une nouvelle clé est limité à SYSTEM et aux administrateurs. Si vous devez fournir l’accès à un utilisateur non administrateur pour un fichier de clé privée spécifique, identifiez le nom de fichier de la clé privée et attribuez des autorisations directement. Les clés privées se trouvent dans le répertoire C:\Users\Default\AppData\Roaming\Microsoft\Crypto\CaviumKSP sur windows pour les clés HSM cloud.

Que fait azcloudhsm_ksp_import_key.exe ?

Vous pouvez utiliser azcloudhsm_ksp_import_key.exe pour importer ou représenter des clés asymétriques dans le KSP du HSM cloud.

Les algorithmes pris en charge sont RSA (2048 à 4096 dans plusieurs de 256), ECDSA et ECDH. Pour ECDSA et ECDH, les courbes prises en charge sont P256, P384 et P521. Une fois qu’une clé est importée ou représentée dans le KSP HSM cloud, vous devez gérer la clé uniquement à partir du KSP HSM cloud.

Vous pouvez vous connecter via votre réseau virtuel. Utilisez ces outils :

  • L’outil azcloudhsm_mgmt_util exécute des opérations (tâches d’administration sur le HSM). Il nécessite des informations d’identification de l’agent de chiffrement de partition (PCO).
  • L’outil azcloudhsm_client (démon client) se connecte via les informations d’identification de l’utilisateur de chiffrement de partition (PCU).

L’outil azcloudhsm_client et votre application doivent s’exécuter sur la même machine virtuelle au sein du réseau virtuel. La raison est que l’application se connecte au processus client via l’appel de procédure distante (RPC).

Le service HSM Cloud Azure écoute le port 443 (azcloudhsm_client requêtes), 444 (azcloudhsm_mgmt_util demandes) et 445 (communication serveur à serveur).

Les ports frontaux sont 2224 et 2225 pour le protocole TCP sur TLS. Ces ports sont uniquement destinés aux clients.