Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Authentifizierung ist ein wichtiger Aspekt für den sicheren Zugriff und Betrieb innerhalb von Azure Cloud HSM. In diesem Artikel werden Authentifizierungsmethoden beschrieben, einschließlich Befehlszeilenschnittstelle (CLI), PKCS#11, Java Cryptography Extension (JCE) und OpenSSL. Dieser Artikel enthält auch bewährte Methoden für die Multithreading- und Sitzungsverarbeitung.
Cloud HSM CLI-Authentifizierung
Sie können sich mithilfe von CLI-Tools wie azcloudhsm_util im interaktiven Modus oder im Einzelbefehlsmodus authentifizieren. Verwenden Sie im interaktiven Modus den loginHSM Befehl. Für den Einzelbefehlsmodus fügen Sie singlecmd und Parameter für loginHSM hinzu. Wir empfehlen Ihnen, Ihre HSM-Anmeldeinformationen sicher zu speichern, wenn Ihre Anwendung sie nicht verwendet.
Interaktiver Modus
./azcloudhsm_util
loginHSM -u CU -s cu1 -p user1234
Einzelbefehlsmodus
sudo ./azcloudhsm_util singlecmd loginHSM -u CU -s cu1 -p user1234 findKey
PKCS#11-Authentifizierung
In PKCS#11 melden Sie sich mit der C_Login-API an, nachdem Sie eine Sitzung mithilfe von C_OpenSession geöffnet haben. Sie müssen nur einmal pro Steckplatz (Cloud HSM-Cluster) verwenden C_Login . Nachdem Sie sich erfolgreich angemeldet haben, können Sie zusätzliche Sitzungen öffnen, ohne sich erneut anmelden zu müssen, indem Sie C_OpenSession verwenden.
char pPin[256] = "cu1:user1234";
…
rv = (func_list->C_Initialize) (NULL);
rv = (func_list->C_GetTokenInfo) (slot, &token_info);
rv = (func_list->C_OpenSession) (slot, CKF_SERIAL_SESSION | CKF_RW_SESSION, NULL, NULL, &session_rw);
rv = (func_list->C_Login) (session_rw, CKU_USER, (CK_UTF8CHAR_PTR) pPin, n_pin);
…
Codebeispiele für die Authentifizierung bei PKCS#11 finden Sie im Leitfaden für die Integration von PKCS#11 in Azure Cloud HSM.
JCE-Authentifizierung
Der JCE-Anbieter für Azure Cloud HSM bietet Unterstützung für implizite und explizite Anmeldemethoden. Jedes eignet sich für unterschiedliche Anwendungsfälle.
Es wird empfohlen, die implizite Anmeldung nach Möglichkeit zu verwenden, da das SDK die Authentifizierung autonom verwaltet. Diese Methode ist besonders nützlich, wenn Ihre Anwendung vom Cluster getrennt wird und eine erneute Authentifizierung erforderlich ist. Die implizite Anmeldung erleichtert auch die Bereitstellung von Anmeldeinformationen für Ihre Anwendung während der Integration mit Plattformen, bei denen direkte Kontrolle über Anwendungscode nicht möglich ist.
LoginManager lm = LoginManager.getInstance();
lm.login("PARTITION_1","cu1", "user1234");
…
lm.logout();
…
Weitere Informationen zu Anmeldemethoden finden Sie im Leitfaden für die Integration von JCE in Azure Cloud HSM.
OpenSSL-Authentifizierung
Wenn Sie ein OpenSSL-Modul für Azure Cloud HSM verwenden, geben Umgebungsvariablen die Anmeldeinformationen an. Wir empfehlen Ihnen, Ihre HSM-Anmeldeinformationen sicher zu speichern, wenn Ihre Anwendung sie nicht verwendet. Konfigurieren Sie Ihre Umgebung idealerweise so, dass diese Umgebungsvariablen automatisch abgerufen und festgelegt werden, um manuelle Eingaben zu vermeiden.
export azcloudhsm_password="cu1:user1234"
export azcloudhsm_openssl_conf=/usr/local/bin/AzureCloudHSM-ClientSDK-1.0.4.0/azcloudhsm_openssl_dynamic.conf
export LD_LIBRARY_PATH=/usr/local/lib64/AzureCloudHSM-ClientSDK-1.0.4.0/:$LD_LIBRARY_PATH
…
sudo ./azcloudhsm_client azcloudhsm_client.cfg > /dev/null 2>&1 &
openssl genpkey -algorithm RSA -out private_key.pem -engine azcloudhsm_openssl
…
Details zur Authentifizierung mit OpenSSL finden Sie im Leitfaden zur Integration von OpenSSL in Azure Cloud HSM.
Multithreading-Techniken
Azure Cloud HSM unterstützt Multithread-Anwendungen, es gibt jedoch Überlegungen zur Behandlung:
-
PKCS#11: Initialisieren Sie die PKCS#11-Bibliothek einmalig mit
C_Initialize. Weisen Sie jedem Thread eine eigene Sitzung mithilfe vonC_OpenSessionzu. Vermeiden Sie die Verwendung derselben Sitzung über mehrere Threads. -
JCE: Initialisieren Sie den Azure Cloud HSM-Anbieter nur einmal. Vermeiden Sie die Freigabe von Instanzen von SPI-Objekten (Service Provider Interface) über Threads hinweg. Verwenden Sie z. B.
Cipher,Signature,Digest,Mac,KeyFactoryundKeyGeneratorObjekte nur innerhalb ihrer jeweiligen Threadkontexte.
Wiederholungen für die Integration von HSM-Vorgängen
Microsoft vertauscht möglicherweise ein HSM in Ihrem Azure Cloud HSM-Cluster für betriebliche oder Wartungszwecke, z. B. wenn ein Gerät fehlschlägt. Um Ihre Anwendung für solche Szenarien vorzubereiten, empfehlen wir Ihnen, clientseitige Wiederholungslogik zu allen Vorgängen hinzuzufügen, die an Ihren Cluster gesendet werden. Diese Einrichtung geht davon aus, dass nachfolgende Wiederholungen bei fehlgeschlagenen Vorgängen, ob aufgrund von Ersatz- oder temporären Wartungsausfällen, erfolgreich sein werden.
Behandeln von Cloud-HSM-Clientsitzungen
Der Azure Cloud HSM-Client meldet sich bei allen HSM-Sitzungen an und ab, wann immer eine Anwendung eine Anmeldung oder Abmeldung durchführt. Als Ergebnis, wenn eine zweite Anwendung azurecloudhsm_client verwendet, teilt sie daher die gleichen Sessions und übernimmt dieselben Anmeldeinformationen, wenn sie vom selben Host ausgeführt wird. Das azurecloudhsm_client Tool verfolgt, welche Anwendungen versuchen, sich anzumelden. Es ermöglicht ordnungsgemäß angemeldeten Anwendungen das Ausführen von Befehlen, die eine Authentifizierung erfordern.
Wenn Sie beispielsweise mit azurecloudhsm_util angemeldet sind und versuchen, Ihre Anwendung oder Ihr Schlüsseltool in einem anderen Terminalfenster mit dem Azure Cloud HSM-Anbieter auszuführen, tritt ein Fehler auf, da eine aktive Sitzung bereits geöffnet ist. Sie müssen die azurecloudhsm_util-Sitzung für Ihre Anwendung schließen, um die Sitzung mit azurecloudhsm_client zu erstellen, die auf Ihrem Host ausgeführt wird, damit sie authentifiziert wird.