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.
Effektive Schlüsselverwaltung ist entscheidend für die Optimierung der Leistung, Sicherheit und Effizienz von Azure Cloud HSM. Dieser Artikel enthält bewährte Methoden und Empfehlungen für den Umgang mit Speichergrenzwerten für Schlüssel, Key-Wrapping-Sicherheit, Schlüsselattributen und Caching-Strategien.
Verwalten des Schlüsselspeicherlimits
Hardwaresicherheitsmodule (HARDWARE Security Modules, HSMs) haben Grenzwerte für die maximale Anzahl von Token und Sitzungsschlüsseln, die gleichzeitig gespeichert werden können. Ausführliche Informationen zu diesen Grenzwerten finden Sie unter Azure Cloud HSM-Dienstbeschränkungen.
Um eine Überschreitung der Azure Cloud HSM-Dienstgrenzwerte zu vermeiden, sollten Sie eine oder mehrere der folgenden Strategien für eine effiziente Schlüsselverwaltung verwenden:
- Tastendrehung: Drehen Sie die Tasten häufig, um sicherzustellen, dass ältere Schlüssel ersetzt werden und Speicherplatz für neue freigegeben wird. Häufige Drehungen tragen dazu bei, das HSM innerhalb von Speichergrenzwerten zu halten und gleichzeitig die Sicherheit aufrechtzuerhalten.
- Schlüsselhierarchie: Verwenden Sie eine Schlüsselhierarchie, in der Sie primärschlüssel verwenden, um andere Schlüssel zu verschlüsseln. Diese Hierarchie reduziert die Anzahl der Schlüssel, die direkt im HSM gespeichert werden müssen.
- Schlüsselfreigabe und -wiederverwendung: Für Anwendungen mit mehreren Sitzungen oder Token sollten Sie die Freigabe von Schlüsseln in Betracht ziehen oder sie wiederverwenden, um die Gesamtzahl der gespeicherten Anwendungen zu reduzieren.
- Löschen von Schlüsseln: Nachdem Sie keinen Schlüssel mehr benötigen (z. B. nach Dem Ende einer Sitzung), stellen Sie sicher, dass sie sicher gelöscht wird, um Speicherplatz für neue Schlüssel freizugeben.
Hinweis
Warten Sie 24 Stunden, nachdem Sie einen Schlüssel erstellt haben, um sicherzustellen, dass die Synchronisierung und Sicherungen in Ihrer Azure Cloud HSM-Bereitstellung abgeschlossen sind.
Verwalten des Schlüsselumbruchs
Sie verwenden das EXTRACTABLE Attribut in Azure Cloud HSM, um Schlüssel als extrahierend oder nichtextrahierbar zu markieren. Standardmäßig werden HSM-Schlüssel als extraktierbar festgelegt. Sie können extrahierbare Schlüssel aus dem HSM durch Key-Wrapping exportieren, wodurch die Schlüssel verschlüsselt werden. Die Schlüssel müssen dann vor der Verwendung über denselben Umbruchschlüssel entpackt werden.
Im Gegensatz dazu können nicht vertrahbare Schlüssel unter keinen Umständen aus Azure Cloud HSM exportiert werden. Nachdem Sie Schlüssel als nichtextrahierbar festgelegt haben, gibt es keine Möglichkeit, sie in extrahierend zu ändern. Es ist entscheidend, gründlich zu überlegen, ob Ihre Schlüssel extrahierbar sein müssen, und das Schlüsselattribut entsprechend festzulegen.
Wenn für Ihre Anwendung eine Schlüsselverpackung erforderlich ist, empfehlen wir Ihnen, die vertraute Schlüsselverpackung zu verwenden. Dieser Ansatz schränkt HSM-Benutzer ein, nur Schlüssel einzuschließen und aufzuheben, die ein Administrator explizit als vertrauenswürdig festgelegt hat:
EXTRACTABLE=0: Schlüssel, die mit demEXTRACTABLEAttributsatz0erstellt wurden, können nicht exportiert werden, außer als maskierte Objekte. Sie eignen sich ideal für Schlüssel, die HSM nie verlassen sollen.WRAP_WITH_TRUSTED=1: Standardmäßig verwenden extrahierbare Schlüssel, die über das Azure Cloud HSM SDK erstellt wurden, eine vertrauenswürdige Schlüsselverpackung. Die Spezifikation für PKCS#11 setztWRAP_WITH_TRUSTEDstandardmäßig aufCK_FALSE (0). Ohne vertrauenswürdige Schlüsselumhüllung kann ein Benutzer kryptographischer Systeme die privaten Daten eines Schlüssels ohne Autorisierung exportieren. Jeder, der Zugriff auf eine Clientanwendung hat und diese Schlüssel verwendet, kann diese in Nur-Text exportieren.
Wichtige Attributunterstützung für Azure Cloud HSM-Anbieter
| Azure Cloud HSM-Anbieter | Standardattribute für private und symmetrische Schlüssel | Unterstützt EXTRACTABLE=0 | Unterstützt das Konfigurieren von WRAP_WITH_TRUSTED innerhalb des Anbieters. | Standardwert für WRAP_WITH_TRUSTED |
|---|---|---|---|---|
azcloudhsm_util |
EXTRACTABLE, !WRAP_WITH_TRUSTED |
Ja | Ja | 1 (0 kann über Parameter festgelegt werden) |
| PKCS#11 | EXTRACTABLE, !WRAP_WITH_TRUSTED |
Ja | Ja | 0 (in der PKCS#11-Spezifikation angegeben, kann aber in der API auf 1 festgelegt werden) |
| CNG/KSP | EXTRACTABLE, !WRAP_WITH_TRUSTED |
Nein | Nein | 1 |
| OpenSSL-Modul | EXTRACTABLE, !WRAP_WITH_TRUSTED |
Nein | Nein | 1 |
| JCE | !EXTRACTABLE, !PERSISTANT!WRAP_WITH_TRUSTED |
Ja | Nein | 1 |
Schlüssel, die Sie mithilfe der Kryptografie-API erstellen: Der Anbieter der nächsten Generation (CNG) wird immer als EXTRACTABLEfestgelegt. Sie können das CavImportKey.exe Tool verwenden, um Schlüssel aus anderen Azure Cloud HSM-Tools über ihre Schlüsselhandles in den CNG-Anbieter zu importieren. Dieser Import erstellt einen Schlüssel im Schlüsselspeicheranbieter (Key Storage Provider, KSP) aus vorhandenen Schlüsselhandles.
Für Zertifizierungsstellen, die CNG oder KSP als Anbieter verwenden, werden alle im CNG-Anbieter generierten Schlüssel weiterhin als extrahierend gekennzeichnet. Wenn ein Schlüssel auf dem HSM mit TRUSTED markiert ist (z. B. der vom Benutzer generierte Schlüsselverschlüsselungsschlüssel), kann er verwendet werden, um den privaten Schlüssel-Klartext dieser Schlüssel zu extrahieren, auch nach der WRAP_WITH_TRUSTED-Änderung.
In solchen Fällen empfehlen wir, azcloudhsm_util zu verwenden, um den Schlüssel zu generieren, wenn er nicht als EXTRACTABLE gekennzeichnet werden soll. Wir empfehlen, dass Sie getAttribute verwenden, um sicherzustellen, dass die generierten Schlüssel über die gewünschten Attribute verfügen.
Verwenden von Schlüsselattributen zum Verwalten von Schlüsselberechtigungen
Verwenden Sie schlüsselattribute, um wichtige Funktionen wie Berechtigungen zu verwalten. Wenn Sie einen Schlüssel generieren, verwenden Sie Schlüsselattribute, um Berechtigungen anzugeben, die bestimmte Vorgänge für diesen Schlüssel zulassen oder einschränken. Wir empfehlen Ihnen, Schlüssel nur mit den erforderlichen Attributen für ihren beabsichtigten Zweck zu generieren.
Beispielsweise sollte ein für die Verschlüsselung verwendeter AES-Schlüssel (Advanced Encryption Standard) nicht in der Lage sein, Schlüssel außerhalb des HSM umschließen zu können. Weitere Informationen zu Attributen für das Azure Cloud HSM SDK finden Sie in den Integrationshandbüchern.
Optimieren der Latenz durch Zwischenspeichern von Schlüsselobjekten
Um die Latenz zu verringern, sollten Sie wichtige Objekte nach Möglichkeit zwischenspeichern. Bei der Suche nach Schlüsseln wird jedes HSM in Ihrem Azure Cloud HSM-Cluster abgefragt. Dieser Vorgang ist teuer und wird nicht effizient skaliert. Die Methode für Schlüsselsuchen hängt vom Anbieter ab:
- Für PKCS#11 verwenden Schlüsselsuchen die
C_FindObjectsAPI. - Für die Java Cryptography Extension (JCE) verwenden Schlüsselsuchen den
KeyStoreWert.
Um eine optimale Leistung zu erzielen, empfehlen wir Ihnen, Schlüsselsuchebefehle (z findKey . B. und key list) nur einmal während des Anwendungsstarts zu verwenden. Speichern Sie das zurückgegebene Schlüsselobjekt im Anwendungsspeicher. Wenn Sie dieses Schlüsselobjekt später benötigen, rufen Sie es aus dem Cache ab, anstatt es bei jedem Vorgang abzufragen. Bei der Abfrage wird ein erheblicher Leistungsmehraufwand verursacht.