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.
Richten Sie die Quorum-Authentifizierung für AWS CloudHSM Krypto-Benutzer mithilfe der CloudHSM-CLI ein
In diesen Themen wird beschrieben, wie Sie Ihr CloudHSM für die Quorumauthentifizierung durch Krypto-Benutzer konfigurieren. Führen Sie diese Schritte einmal bei der Ersteinrichtung durch. Weitere Informationen zur Schlüsselverwaltung und -nutzung finden Sie unterSchlüsselverwaltung und -nutzung mit aktivierter Quorum-Authentifizierung für die AWS CloudHSM Verwendung von CloudHSM CLI.
Themen
Voraussetzungen
Vertrautheit mit der CloudHSM-CLI
Schritt 1. Erstellen und Registrieren eines Schlüssels für das Signieren
Um die Quorum-Authentifizierung zu verwenden, muss jeder Krypto-Benutzer alle der folgenden Schritte ausführen:
Themen
Erstellen eines RSA-Schlüsselpaares
Es gibt viele verschiedene Möglichkeiten, ein Schlüsselpaar zu erstellen und zu schützen. In den folgenden Beispielen wird gezeigt, wie dies mit OpenSSL
Beispiel – Erstellen eines privaten Schlüssels mit OpenSSL
Das folgende Beispiel zeigt, wie OpenSSL verwendet wird, um einen 2048-Bit-RSA-Schlüssel zu erstellen. Um dieses Beispiel zu verwenden, <crypto_user1.key>
ersetzen Sie es durch den Namen der Datei, in der Sie den Schlüssel speichern möchten.
$
openssl genrsa -out
<crypto_user1.key>
Generating RSA private key, 2048 bit long modulus .....................................+++ .+++ e is 65537 (0x10001)
Generieren eines öffentlichen Schlüssels mit dem privaten Schlüssel, den Sie gerade erstellt haben.
Beispiel – Erstellen Sie einen öffentlichen Schlüssel mit OpenSSL
Das folgende Beispiel zeigt, wie Sie OpenSSL verwenden, um einen öffentlichen Schlüssel aus dem privaten Schlüssel zu erstellen, den Sie gerade erstellt haben.
$
openssl rsa -in crypto_user1.key -outform PEM -pubout -out crypto_user1.pub
writing RSA key
Erstellen Sie ein Registrierungstoken
Sie erstellen ein Token und signieren es mit dem privaten Schlüssel, den Sie gerade im vorherigen Schritt generiert haben.
Erstellen Sie ein Registrierungstoken
-
Verwenden Sie den folgenden Befehl, um die CloudHSM-CLI zu starten:
-
Erstellen Sie ein Registrierungstoken, indem Sie den Befehl quorum token-sign generate ausführen:
aws-cloudhsm >
quorum token-sign generate --service registration --token /path/tokenfile
{ "error_code": 0, "data": { "path": "/path/tokenfile" } }
-
Der Befehl quorum token-sign generate generiert ein Registrierungstoken im angegebenen Dateipfad. Untersuchen Sie die Tokendatei:
$
cat /path/tokenfile
{ "version": "2.0", "tokens": [ { "approval_data":
<approval data in base64 encoding>
, "unsigned":<unsigned token in base64 encoding>
, "signed": "" } ] }Die Tokendatei besteht aus Folgendem:
approval_data: Ein Base64-kodiertes zufälliges Datentoken, dessen Rohdaten das Maximum von 245 Byte nicht überschreiten.
unsigned: Ein Base64-codiertes und SHA256 gehashtes Token der approval_data.
signiert: Ein base64-kodiertes signiertes Token (Signatur) des unsignierten Tokens, unter Verwendung des zuvor mit OpenSSL generierten privaten RSA-Schlüssels mit 2048 Bit.
Sie signieren das unsignierte Token mit dem privaten Schlüssel, um nachzuweisen, dass Sie Zugriff auf den privaten Schlüssel haben. Sie benötigen die vollständig mit einer Signatur und dem öffentlichen Schlüssel aufgefüllte Registrierungstokendatei, um den Krypto-Benutzer als Quorum-Benutzer im Cluster zu registrieren. AWS CloudHSM
Signieren Sie das unsignierte Registrierungstoken
Dekodieren Sie das Base64-kodierte unsignierte Token und platzieren Sie es in einer Binärdatei:
$
echo -n '6BMUj6mUjjko6ZLCEdzGlWpR5sILhFJfqhW1ej3Oq1g=' | base64 -d > crypto_user.bin
Verwenden Sie OpenSSL und den privaten Schlüssel, um das jetzt binäre unsignierte Registrierungstoken zu signieren und eine binäre Signaturdatei zu erstellen:
$
openssl pkeyutl -sign \ -inkey crypto_user1.key \ -pkeyopt digest:sha256 \ -keyform PEM \ -in crypto_user.bin \ -out crypto_user.sig.bin
-
Kodieren Sie die binäre Signatur in Base64:
$
base64 -w0 crypto_user.sig.bin > crypto_user.sig.b64
-
Kopieren Sie die Base64-kodierte Signatur und fügen Sie sie in die Token-Datei ein:
{ "version": "2.0", "tokens": [ { "approval_data":
<approval data in base64 encoding>
, "unsigned":<unsigned token in base64 encoding>
, "signed":<signed token in base64 encoding>
} ] }
Registrieren Sie den öffentlichen Schlüssel beim HSM
Nach der Erstellung eines Schlüssels muss der Krypto-Benutzer den öffentlichen Schlüssel im Cluster registrieren. AWS CloudHSM
-
Starten Sie CloudHSM CLI:
-
Melden Sie sich als der Krypto-Benutzer an, dessen öffentlichen Schlüssel Sie registrieren möchten.
aws-cloudhsm >
login --username crypto_user1 --role crypto-user
Enter password: { "error_code": 0, "data": { "username": "crypto_user1", "role": "crypto-user" } }
-
Registrieren Sie den öffentlichen Schlüssel mit dem. Registrieren Sie die Token-Sign-Quorum-Strategie eines Benutzers mithilfe der CloudHSM-CLI Weitere Informationen finden Sie im folgenden Beispiel. Alternativ können Sie auch den Befehl help user change-quorum token-sign register ausführen.
Beispiel — Registriert einen öffentlichen Schlüssel beim AWS CloudHSM Cluster
Das folgende Beispiel zeigt, wie Sie den user change-quorum token-sign register Befehl in der CloudHSM-CLI verwenden, um einen öffentlichen Schlüssel für Krypto-Benutzer beim HSM zu registrieren. Um diesen Befehl verwenden zu können, muss der Crypto-Benutzer beim HSM angemeldet sein. Ersetzen Sie diese Werte durch Ihre eigenen Werte:
aws-cloudhsm >
user change-quorum token-sign register --public-key
</path/crypto_user.pub>
--signed-token</path/tokenfile>
{ "error_code": 0, "data": { "username": "crypto_user1", "role": "crypto-user" } }
Anmerkung
/path/crypto_user.pub: Der Dateipfad zur PEM-Datei mit öffentlichem Schlüssel
Erforderlich: Ja
/path/token_file: Der Dateipfad mit dem Token, das mit dem privaten Benutzerschlüssel signiert wurde
Erforderlich: Ja
-
Nachdem alle Krypto-Benutzer ihre öffentlichen Schlüssel registriert haben, zeigt die Ausgabe des user list Befehls dies im Quorumfeld an und gibt an, welche aktivierte Quorumstrategie verwendet wird.
In diesem Beispiel hat der AWS CloudHSM Cluster zwei mit jeweils denselben Krypto-Benutzern HSMs, wie in der folgenden Ausgabe des Befehls dargestellt. user list Weitere Informationen zum Erstellen von Benutzern finden Sie unter Benutzerverwaltung mit CloudHSM CLI.
aws-cloudhsm >
user list
{ "error_code": 0, "data": { "users": [ { "username": "admin", "role": "admin", "locked": "false", "mfa": [], "quorum": [], "cluster-coverage": "full" }, { "username": "crypto_user1", "role": "crypto-user", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "crypto_user2", "role": "crypto-user", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "crypto_user3", "role": "crypto-user", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "app_user", "role": "internal(APPLIANCE_USER)", "locked": "false", "mfa": [], "quorum": [], "cluster-coverage": "full" } ] } }
Schritt 2. Legen Sie die Schlüsselquorumwerte bei der Schlüsselgenerierung fest
Um die Quorumauthentifizierung zu verwenden, muss sich ein Krypto-Benutzer beim HSM anmelden und dann die zugehörigen Schlüsselquorumwerte festlegen. Dies ist die Mindestanzahl von Genehmigungen durch Krypto-Benutzer, die für die Verwaltung und Nutzung von HSM-Schlüsseln erforderlich sind. Weitere Informationen zu den zugehörigen Tastenbefehlen im Zusammenhang mit der Schlüsselverwaltung oder der Schlüsselverwendung finden Sie unter. Unterstützte Dienste und Typen
Generieren Sie ein key pair mit festgelegten Schlüsselquorumwerten
-
Verwenden Sie den folgenden Befehl, um die CloudHSM-CLI zu starten:
-
Melden Sie sich mit der CloudHSM-CLI als Crypto-Benutzer an.
aws-cloudhsm >
login --username crypto_user1 --role crypto-user
Enter password: { "error_code": 0, "data": { "username": "crypto_user1", "role": "crypto-user" } }
In diesem Beispiel wird ein RSA-Schlüsselpaar generiert, bei dem die Schlüsselquorumwerte zwei (2) sowohl für Schlüsselverwaltungs- als auch für Schlüsselverwendungsvorgänge festgelegt sind. Sie können einen beliebigen Wert zwischen Null (0) und acht (8) wählen, bis hin zur Gesamtzahl der Krypto-Benutzer auf dem HSM. In diesem Beispiel hat das HSM drei (3) Krypto-Benutzer, sodass der maximal mögliche Wert drei (3) ist. Beachten Sie, dass wir in diesem Beispiel den Schlüssel <crypto_user2>
während der Schlüsselgenerierung mit teilen. Beachten Sie auch, dass öffentliche Schlüssel keine Quorumwerte haben.
aws-cloudhsm >
key generate-asymmetric-pair rsa \ --public-exponent 65537 \ --modulus-size-bits 2048 \ --public-label rsa-public-key-example \ --private-label rsa-private-key-example \ --public-attributes verify=true \ --private-attributes sign=true --share-crypto-users crypto_user2 \ --manage-private-key-quorum-value 2 \ --use-private-key-quorum-value 2
{ "error_code": 0, "data": { "public_key": { "key-reference": "0x0000000000640006", "key-info": { "key-owners": [ { "username": "crypto_user", "key-coverage": "full" } ], "shared-users": [], "key-quorum-values": { "manage-key-quorum-value": 0, "use-key-quorum-value": 0 }, "cluster-coverage": "full" }, "attributes": { "key-type": "rsa", "label": "rsa-public-key-example", "id": "0x", "check-value": "0x218f50", "class": "public-key", "encrypt": false, "decrypt": false, "token": true, "always-sensitive": false, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": false, "sign": false, "trusted": false, "unwrap": false, "verify": true, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 512, "public-exponent": "0x010001", "modulus": "0xbdf471a3d2a869492f51c767bece8780730ae6479a9a75efffe7cea3594fb28ca518630e7b1d988b45d2fedc830b7ab848448c24c476cacb73d1523278aed289551e07af0fbfabe4811cc4601678bd097b5c0a578249ed1eb0e4878a80ba1ed85ac46eb1fee60d2a8bdd322075196dec4b57fa2cd82af44ad068115ac219bc073ec65c19c97bd883cf26931408d7bc51e237626b8b9b8f2485425907a0eb42f2f4c40018c8dac7ceeb1b646305a2e537ab904346883e41d568264abee0137048e4657d2cf72801810f3212f662b7a7ae134848b922771f6a30aa76718008d9cc74ff8ddcd8d867b05c3d40020d1514999af96889911467191b9f390d8de07f83", "modulus-size-bits": 2048 } }, "private_key": { "key-reference": "0x0000000000640007", "key-info": { "key-owners": [ { "username": "crypto_user", "key-coverage": "full" } ], "shared-users": [ { "username": "crypto_user2", "key-coverage": "full" } ], "key-quorum-values": { "manage-key-quorum-value": 2, "use-key-quorum-value": 2 }, "cluster-coverage": "full" }, "attributes": { "key-type": "rsa", "label": "rsa-private-key-example", "id": "0x", "check-value": "0x218f50", "class": "private-key", "encrypt": false, "decrypt": false, "token": true, "always-sensitive": true, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": true, "sign": true, "trusted": false, "unwrap": false, "verify": false, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 1216, "public-exponent": "0x010001", "modulus": "0xbdf471a3d2a869492f51c767bece8780730ae6479a9a75efffe7cea3594fb28ca518630e7b1d988b45d2fedc830b7ab848448c24c476cacb73d1523278aed289551e07af0fbfabe4811cc4601678bd097b5c0a578249ed1eb0e4878a80ba1ed85ac46eb1fee60d2a8bdd322075196dec4b57fa2cd82af44ad068115ac219bc073ec65c19c97bd883cf26931408d7bc51e237626b8b9b8f2485425907a0eb42f2f4c40018c8dac7ceeb1b646305a2e537ab904346883e41d568264abee0137048e4657d2cf72801810f3212f662b7a7ae134848b922771f6a30aa76718008d9cc74ff8ddcd8d867b05c3d40020d1514999af96889911467191b9f390d8de07f83", "modulus-size-bits": 2048 } } } }
Bei der Generierung eines Schlüssels mit Quorumsteuerelementen muss der Schlüssel einer Mindestanzahl von Benutzern zugeordnet werden, die dem größten Schlüsselquorumwert entspricht. Zu den assoziierten Benutzern gehören der Schlüsselinhaber und Crypto-Benutzer, mit denen der Schlüssel geteilt wird. Um die Mindestanzahl der Benutzer zu ermitteln, mit denen der Schlüssel geteilt werden soll, ermitteln Sie den größten Quorumwert zwischen dem Quorumwert für die Schlüsselnutzung und dem Quorumwert für die Schlüsselverwaltung und subtrahieren Sie 1, um den Schlüsselbesitzer zu berücksichtigen, der standardmäßig mit dem Schlüssel verknüpft ist. Verwenden Sie den Befehl, um den Schlüssel mit mehreren Benutzern zu teilen. Einen Schlüssel mit CloudHSM CLI teilen
Wenn der Schlüssel bei der Schlüsselgenerierung nicht mit genügend Benutzern geteilt wird, schlägt dies fehl, wie unten dargestellt.
aws-cloudhsm >
key generate-asymmetric-pair rsa \ --public-exponent 65537 \ --modulus-size-bits 2048 \ --public-label rsa-public-key-example \ --private-label rsa-private-key-example \ --public-attributes verify=true \ --private-attributes sign=true --share-crypto-users crypto_user2 crypto_user3 \ --manage-private-key-quorum-value 3 \ --use-private-key-quorum-value 4
{ "error_code": 1, "data": "Invalid quorum value provided." }