Installieren und verwenden Sie den AWS CloudHSM JCE-Anbieter für Client SDK 3 - 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.

Installieren und verwenden Sie den AWS CloudHSM JCE-Anbieter für Client SDK 3

Bevor Sie den JCE-Anbieter verwenden können, benötigen Sie den AWS CloudHSM Client.

Der Client ist ein Daemon, der eine end-to-end verschlüsselte Kommunikation mit den HSMs in Ihrem Cluster herstellt. Der JCE-Anbieter kommuniziert lokal mit dem Client. Wenn Sie das AWS CloudHSM Client-Paket noch nicht installiert und konfiguriert haben, tun Sie dies jetzt, indem Sie die Schritte unter befolgen. Installieren des Clients (Linux) Nachdem Sie den Client installiert und konfiguriert haben, verwenden Sie den folgenden Befehl ein, um ihn zu starten.

Beachten Sie, dass der JCE-Anbieter nur unter Linux und kompatiblen Betriebssystemen unterstützt wird.

Amazon Linux
$ sudo start cloudhsm-client
Amazon Linux 2
$ sudo systemctl cloudhsm-client start
CentOS 7
$ sudo systemctl cloudhsm-client start
CentOS 8
$ sudo systemctl cloudhsm-client start
RHEL 7
$ sudo systemctl cloudhsm-client start
RHEL 8
$ sudo systemctl cloudhsm-client start
Ubuntu 16.04 LTS
$ sudo systemctl cloudhsm-client start
Ubuntu 18.04 LTS
$ sudo systemctl cloudhsm-client start
Ubuntu 20.04 LTS
$ sudo systemctl cloudhsm-client start

Den JCE-Anbieter installieren

Verwenden Sie die folgenden Befehle, um den JCE-Anbieter herunterzuladen und zu installieren. Dieser Anbieter wird nur von Linux und kompatiblen Betriebssystemen unterstützt.

Anmerkung

Informationen zum Upgraden finden Sie unter Upgrade von Client-SDK 3.

Amazon Linux
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-jce-latest.el6.x86_64.rpm
$ sudo yum install ./cloudhsm-client-jce-latest.el6.x86_64.rpm
Amazon Linux 2
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-jce-latest.el7.x86_64.rpm
$ sudo yum install ./cloudhsm-client-jce-latest.el7.x86_64.rpm
CentOS 7
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-jce-latest.el7.x86_64.rpm
$ sudo yum install ./cloudhsm-client-jce-latest.el7.x86_64.rpm
CentOS 8
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-client-jce-latest.el8.x86_64.rpm
$ sudo yum install ./cloudhsm-client-jce-latest.el8.x86_64.rpm
RHEL 7
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-jce-latest.el7.x86_64.rpm
$ sudo yum install ./cloudhsm-client-jce-latest.el7.x86_64.rpm
RHEL 8
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-client-jce-latest.el8.x86_64.rpm
$ sudo yum install ./cloudhsm-client-jce-latest.el8.x86_64.rpm
Ubuntu 16.04 LTS
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-client-jce_latest_amd64.deb
$ sudo apt install ./cloudhsm-client-jce_latest_amd64.deb
Ubuntu 18.04 LTS
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Bionic/cloudhsm-client-jce_latest_u18.04_amd64.deb
$ sudo apt install ./cloudhsm-client-jce_latest_u18.04_amd64.deb

Nachdem Sie die vorangegangenen Befehle ausgeführt haben, finden Sie die folgenden JCE-Anbieter-Dateien:

  • /opt/cloudhsm/java/cloudhsm-version.jar

  • /opt/cloudhsm/java/cloudhsm-test-version.jar

  • /opt/cloudhsm/java/hamcrest-all-1.3.jar

  • /opt/cloudhsm/java/junit.jar

  • /opt/cloudhsm/java/log4j-api-2.17.1.jar

  • /opt/cloudhsm/java/log4j-core-2.17.1.jar

  • /opt/cloudhsm/lib/libcaviumjca.so

Überprüfen der Installation

Führen Sie grundlegende Funktionen des HSM aus, um die Installation zu überprüfen.

Um die Installation des JCE-Anbieters zu überprüfen
  1. (Optional) Falls Sie Java nicht bereits in Ihrer Umgebung installiert haben, verwenden Sie den folgenden Befehl zur Installation.

    Linux (and compatible libraries)
    $ sudo yum install java-1.8.0-openjdk
    Ubuntu
    $ sudo apt-get install openjdk-8-jre
  2. Verwenden Sie die folgenden Befehle, um die erforderlichen Umgebungsvariablen festzulegen. Ersetzen Sie <HSM user name> und <password> durch die Anmeldeinformationen eines Crypto-Benutzers (CU, Crypto-User).

    $ export LD_LIBRARY_PATH=/opt/cloudhsm/lib
    $ export HSM_PARTITION=PARTITION_1
    $ export HSM_USER=<HSM user name>
    $ export HSM_PASSWORD=<password>
  3. Führen Sie den folgenden Befehl aus, um den Test der grundlegenden Funktionen zu starten. Wenn dies erfolgreich ist, sollte die Ausgabe des Befehls ähnlich wie die folgende sein.

    $ java8 -classpath "/opt/cloudhsm/java/*" org.junit.runner.JUnitCore TestBasicFunctionality JUnit version 4.11 .2018-08-20 17:53:48,514 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:33) - Adding provider. 2018-08-20 17:53:48,612 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:42) - Logging in. 2018-08-20 17:53:48,612 INFO [main] cfm2.LoginManager (LoginManager.java:104) - Looking for credentials in HsmCredentials.properties 2018-08-20 17:53:48,612 INFO [main] cfm2.LoginManager (LoginManager.java:122) - Looking for credentials in System.properties 2018-08-20 17:53:48,613 INFO [main] cfm2.LoginManager (LoginManager.java:130) - Looking for credentials in System.env SDK Version: 2.03 2018-08-20 17:53:48,655 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:54) - Generating AES Key with key size 256. 2018-08-20 17:53:48,698 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:63) - Encrypting with AES Key. 2018-08-20 17:53:48,705 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:84) - Deleting AES Key. 2018-08-20 17:53:48,707 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:92) - Logging out. Time: 0.205 OK (1 test)

Bereitstellung von Anmeldeinformationen für den JCE-Anbieter

HSMs müssen Ihre Java-Anwendung authentifizieren, bevor die Anwendung sie nutzen kann. Jede Anwendung kann eine Sitzung verwenden. HSMs authentifizieren eine Sitzung, indem sie entweder eine explizite oder implizite Anmeldemethode verwenden.

Explizite Anmeldemethode – Mit dieser Methode können Sie CloudHSM-Anmeldeinformationen direkt in der Anwendung bereitstellen. Es verwendet die LoginManager.login()-Methode, bei der Sie den CU-Benutzernamen, das Passwort und die HSM-Partitions-ID übergeben. Weitere Informationen zur Verwendung der expliziten Anmeldemethode finden Sie im Code-Beispiel Anmelden bei einem HSM.

Implizite Anmeldemethode – Mit dieser Methode können Sie CloudHSM-Anmeldeinformationen entweder in einer neuen Property-Datei, über Systemeigenschaften oder als Umgebungsvariablen festlegen.

  • Neue Eigenschaftsdatei – Erstellen Sie eine neue Datei namens HsmCredentials.properties und fügen Sie sie zum CLASSPATH Ihrer Anwendung hinzu. Die Datei sollte Folgendes enthalten:

    HSM_PARTITION = PARTITION_1 HSM_USER = <HSM user name> HSM_PASSWORD = <password>
  • Systemeigenschaften – Anmeldeinformationen über Systemeigenschaften fest, wenn Sie Ihre Anwendung ausführen. Die folgenden Beispiele zeigen zwei verschiedene Möglichkeiten:

    $ java -DHSM_PARTITION=PARTITION_1 -DHSM_USER=<HSM user name> -DHSM_PASSWORD=<password>
    System.setProperty("HSM_PARTITION","PARTITION_1"); System.setProperty("HSM_USER","<HSM user name>"); System.setProperty("HSM_PASSWORD","<password>");
  • Umgebungsvariablen – Anmeldeinformationen als Umgebungsvariablen festlegen.

    $ export HSM_PARTITION=PARTITION_1 $ export HSM_USER=<HSM user name> $ export HSM_PASSWORD=<password>

Anmeldeinformationen sind möglicherweise nicht verfügbar, wenn die Anwendung sie nicht bereitstellt oder wenn Sie eine Operation ausführen, bevor der HSM die Sitzung authentifiziert. In diesen Fällen sucht die CloudHSM-Softwarebibliothek für Java in der folgenden Reihenfolge nach den Anmeldeinformationen:

  1. HsmCredentials.properties

  2. Systemeigenschaften

  3. Umgebungsvariablen

Fehlerbehandlung

Die Fehlerbehandlung ist bei der expliziten Anmeldung einfacher als bei der impliziten Anmeldemethode. Wenn Sie die Klasse LoginManager verwenden, haben Sie mehr Kontrolle darüber, wie Ihre Anwendung mit Fehlern umgeht. Bei der impliziten Anmeldemethode ist die Fehlerbehandlung schwer nachzuvollziehen, wenn die Anmeldeinformationen ungültig sind oder die HSMs Probleme bei der Authentifizierung der Sitzung haben.

Grundlagen der Schlüsselverwaltung im JCE-Anbieter

Die Grundlagen der Schlüsselverwaltung im JCE-Anbieter umfassen den Import von Schlüsseln, den Export von Schlüsseln, das Laden von Schlüsseln per Handle oder das Löschen von Schlüsseln. Weitere Informationen zur Schlüsselverwaltung finden Sie im Codebeispiel Schlüssel verwalten.

Weitere Codebeispiele für JCE-Anbieter finden Sie auch in Codebeispiele.