AWS CloudHSM KeyStore Java-Klasse für Client SDK 3 verwenden - AWS CloudHSM

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS CloudHSM KeyStore Java-Klasse für Client SDK 3 verwenden

Die AWS CloudHSM KeyStore Klasse stellt einen speziellen PKCS12-Schlüsselspeicher bereit, der den Zugriff auf AWS CloudHSM Schlüssel über Anwendungen wie Keytool und Jarsigner ermöglicht. Dieser Schlüsselspeicher kann Zertifikate zusammen mit Ihren Schlüsseldaten speichern und sie mit den in AWS CloudHSM gespeicherten Schlüsseldaten korrelieren.

Anmerkung

Da es sich bei Zertifikaten um öffentliche Informationen handelt und um die Speicherkapazität für kryptografische Schlüssel zu maximieren, wird das Speichern von Zertifikaten auf HSMs nicht unterstützt AWS CloudHSM .

Die AWS CloudHSM KeyStore Klasse implementiert das KeyStore Service Provider Interface (SPI) der Java Cryptography Extension (JCE). Weitere Informationen zur Verwendung KeyStore finden Sie unter Class. KeyStore

Auswählen des passenden Schlüsselspeichers

Der AWS CloudHSM Java Cryptographic Extension (JCE) -Anbieter verfügt über einen standardmäßigen, schreibgeschützten Passthrough-Schlüsselspeicher, der alle Transaktionen an das HSM weiterleitet. Dieser Standardschlüsselspeicher unterscheidet sich von dem Spezialschlüsselspeicher. AWS CloudHSM KeyStore In den meisten Situationen erhalten Sie eine bessere Laufzeitleistung und mehr Durchsatz, wenn Sie den Standard verwenden. Sie sollten den nur AWS CloudHSM KeyStore für Anwendungen verwenden, bei denen Sie Unterstützung für Zertifikate und zertifikatsbasierte Operationen benötigen und zusätzlich wichtige Operationen an das HSM auslagern möchten.

Obwohl beide Schlüsselspeicher den JCE-Anbieter für Operationen verwenden, sind sie unabhängige Entitäten und tauschen keine Informationen miteinander aus.

Laden Sie den Standard-Schlüsselspeicher für Ihre Java-Anwendung wie folgt:

KeyStore ks = KeyStore.getInstance("Cavium");

Laden Sie das spezielle CloudHSM KeyStore wie folgt:

KeyStore ks = KeyStore.getInstance("CloudHSM")

Initialisieren AWS CloudHSM KeyStore

Melden Sie sich genauso AWS CloudHSM KeyStore an, wie Sie sich beim JCE-Anbieter anmelden. Sie können entweder Umgebungsvariablen oder die Systemeigenschaftendatei verwenden, und Sie sollten sich anmelden, bevor Sie CloudHSM KeyStore verwenden. Ein Beispiel für die Anmeldung bei einem HSM mit dem JCE-Anbieter finden Sie unter Anmeldung an HSM.

Falls gewünscht, können Sie ein Passwort angeben, um die lokale PKCS12-Datei zu verschlüsseln, die Schlüsselspeicherdaten enthält. Wenn Sie den AWS CloudHSM Keystore erstellen, legen Sie das Passwort fest und geben es an, wenn Sie die Methoden load, set und get verwenden.

Instanziieren Sie ein neues CloudHSM-Objekt KeyStore wie folgt:

ks.load(null, null);

Schreiben Sie Schlüsselspeicherdaten mit der store-Methode in eine Datei. Von da an können Sie den vorhandenen Schlüsselspeicher mit der load-Methode mit der Quelldatei und dem Passwort wie folgt laden:

ks.load(inputStream, password);

Verwenden AWS CloudHSM KeyStore

Ein KeyStore CloudHSM-Objekt wird in der Regel über eine Drittanbieteranwendung wie jarsigner oder keytool verwendet. Sie können auch direkt mit Code auf das Objekt zugreifen.

AWS CloudHSM KeyStore entspricht der KeyStoreJCE-Klassenspezifikation und bietet die folgenden Funktionen.

  • load

    Lädt den Schlüsselspeicher aus dem angegebenen Eingabe-Stream. Wenn beim Speichern des Schlüsselspeichers ein Passwort festgelegt wurde, muss dasselbe Passwort angegeben werden, damit das Laden erfolgreich ist. Setzen Sie beide Parameter auf null, um einen neuen leeren Schlüsselspeicher zu initialisieren.

    KeyStore ks = KeyStore.getInstance("CloudHSM"); ks.load(inputStream, password);
  • aliases

    Gibt eine Aufzählung der Aliasnamen aller Einträge in der angegebenen Schlüsselspeicherinstanz zurück. Die Ergebnisse umfassen Objekte, die lokal in der PKCS12-Datei gespeichert sind, sowie Objekte, die sich auf dem HSM befinden.

    Beispiel-Code:

    KeyStore ks = KeyStore.getInstance("CloudHSM"); for(Enumeration<String> entry = ks.aliases(); entry.hasMoreElements();) { String label = entry.nextElement(); System.out.println(label); }
  • ContainsAlias

    Gibt „true“ zurück, wenn der Schlüsselspeicher Zugriff auf mindestens ein Objekt mit dem angegebenen Alias hat. Der Schlüsselspeicher prüft lokal in der PKCS12-Datei gespeicherte Objekte und Objekte auf dem HSM.

  • DeleteEntry

    Löscht einen Zertifikateintrag aus der lokalen PKCS12-Datei. Das Löschen von Schlüsseldaten, die in einem HSM gespeichert sind, wird mit dem nicht unterstützt. AWS CloudHSM KeyStore Sie können Schlüssel mit dem Key_mgmt_util-Tool von CloudHSM löschen.

  • GetCertificate

    Gibt das Zertifikat zurück, das einem Alias zugeordnet ist, falls verfügbar. Wenn der Alias nicht existiert oder auf ein Objekt verweist, das kein Zertifikat ist, gibt die Funktion NULL zurück.

    KeyStore ks = KeyStore.getInstance("CloudHSM"); Certificate cert = ks.getCertificate(alias)
  • GetCertificateAlias

    Gibt den Namen (Alias) des ersten Schlüsselspeichereintrags zurück, dessen Daten mit dem angegebenen Zertifikat übereinstimmen.

    KeyStore ks = KeyStore.getInstance("CloudHSM"); String alias = ks.getCertificateAlias(cert)
  • GetCertificateChain

    Gibt die Zertifikatkette zurück, die dem angegebenen Alias zugeordnet ist. Wenn der Alias nicht existiert oder auf ein Objekt verweist, das kein Zertifikat ist, gibt die Funktion NULL zurück.

  • GetCreationDate

    Gibt das Erstellungsdatum des durch den angegebenen Alias identifizierten Eintrags zurück. Wenn kein Erstellungsdatum verfügbar ist, gibt die Funktion das Datum zurück, an dem das Zertifikat gültig wurde.

  • GetKey

    GetKey wird an das HSM übergeben und gibt ein Schlüsselobjekt zurück, das dem angegebenen Label entspricht. Da es das HSM getKey direkt abfragt, kann es für jeden Schlüssel auf dem HSM verwendet werden, unabhängig davon, ob er von der generiert wurde. KeyStore

    Key key = ks.getKey(keyLabel, null);
  • IsCertificateEntry

    Überprüft, ob der Eintrag mit dem angegebenen Alias einen Zertifikateintrag darstellt.

  • IsKeyEntry

    Überprüft, ob der Eintrag mit dem angegebenen Alias einen Schlüsseleintrag darstellt. Die Aktion durchsucht sowohl die PKCS12-Datei, als auch das HSM nach dem Alias.

  • SetCertificateEntry

    Weist dem angegebenen Alias das angegebene Zertifikat zu. Wenn der angegebene Alias bereits verwendet wird, um einen Schlüssel oder ein Zertifikat zu identifizieren, wird ein KeyStoreException ausgelöst. Sie können JCE-Code verwenden, um das Schlüsselobjekt abzurufen, und dann die KeyStore SetKeyEntry Methode verwenden, um das Zertifikat dem Schlüssel zuzuordnen.

  • SetKeyEntry mit byte[]-Schlüssel

    Diese API wird derzeit vom Client-SDK 3 nicht unterstützt.

  • SetKeyEntry mit Key-Objekt

    Weist den angegebenen Schlüssel dem angegebenen Alias zu und speichert ihn im HSM. Wenn das Key-Objekt nicht vom Typ CaviumKey ist, wird der Schlüssel als extrahierbarer Sitzungsschlüssel in das HSM importiert.

    Wenn das Key-Objekt vom Typ PrivateKey ist, muss es von einer entsprechenden Zertifikatkette begleitet werden.

    Wenn der Alias bereits vorhanden ist, wird ein SetKeyEntry- Aufruf ausgelöst, und KeyStoreException verhindert, dass der Schlüssel überschrieben wird. Wenn der Schlüssel überschrieben werden muss, verwenden Sie hierfür KMU oder JCE.

  • EngineSize

    Gibt die Anzahl der Einträge im Schlüsselspeicher zurück.

  • Store

    Speichert den Schlüsselspeicher im angegebenen Ausgabe-Stream als PKCS12-Datei und sichert ihn mit dem angegebenen Passwort. Darüber hinaus bleiben alle geladenen Schlüssel (die über setKey-Aufrufe gesetzt werden) bestehen.