In dieser Anleitung wird beschrieben, wie Sie einen kryptografischen Schlüssel als neue Schlüsselversion mit einer quantensicheren Importmethode in Cloud Key Management Service importieren. Dieser Ansatz trägt dazu bei, den Schlüssel während der Übertragung vor „Jetzt speichern, später entschlüsseln“-Angriffen (HNDL) durch zukünftige Quantencomputer zu schützen.
Beim quantensicheren Schlüsselimport werden standardmäßige Post-Quanten-Kryptografie-Tools (PQC) verwendet, darunter Key Encapsulation Mechanisms (KEMs) und Hybrid Public Key Encryption (HPKE), um Ihren Schlüssel während der Übertragung zu schützen.
Der Import quantensicherer Schlüssel wird für softwaregestützte Schlüssel (Schutzniveau SOFTWARE) unterstützt.
Hinweis
Bevor Sie einen Schlüssel importieren können, müssen Sie das Projekt, das lokale System und das Schlüsselmaterial selbst vorbereiten.
Projekt vorbereiten
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the required API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the required API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für den Schlüsselbund zuzuweisen, damit Sie die nötigen Berechtigungen zum Importieren eines Schlüssels haben:
-
Nur in vorhandene Schlüssel importieren:
Cloud KMS-Importeur (
roles/cloudkms.importer) -
Für den Import in neue Schlüssel:
Cloud KMS-Administrator (
roles/cloudkms.admin)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Lokales System vorbereiten
Sie benötigen eine kryptografische Bibliothek auf Ihrem lokalen System, die Tools für die Post-Quanten-Kryptografie (Post-Quantum Cryptography, PQC) unterstützt, einschließlich Key Encapsulation Mechanisms (KEMs) und Hybrid Public Key Encryption (HPKE). Sie können Tink, OpenSSL oder eine andere Kryptografiebibliothek verwenden, die Folgendes unterstützt:
- Hybrid Public Key Encryption (HPKE)
- Einer der folgenden KEM-Algorithmen:
ML-KEM-768ML-KEM-1024X-WING(eine Mischung ausML-KEM-768undX25519)
- Die Schlüsselableitungsfunktion (Key Derivation Function, KDF)
HKDF-SHA256 - Authentifizierte Verschlüsselung mit verknüpften Daten (Authenticated Encryption with Associated Data, AEAD) mit dem
AES-256-GCM-Algorithmus
Schlüssel vorbereiten
Prüfen Sie, ob Algorithmus und Länge Ihres Schlüssels unterstützt werden. Alle Versionen eines Schlüssels müssen dasselbe Schutzniveau (SOFTWARE) haben.
Den Zielschlüssel und Schlüsselbund erstellen
Wenn Sie Schlüsselmaterial importieren, wird es zu einer neuen Schlüsselversion eines vorhandenen Schlüssels. Dieser Schlüssel wird als Zielschlüssel bezeichnet. Der Zielschlüsselbund und der Zielschlüssel müssen vorhanden sein, bevor Sie Schlüsselmaterial importieren können.
Mit den unten aufgeführten Schritten können Sie einen leeren, softwarebasierten Schlüssel für einen neuen Schlüsselbund mit der Google Cloud CLI oder der Google Cloud -Konsole erstellen.
Console
Rufen Sie in der Google Cloud Console die Seite Schlüsselverwaltung auf.
Klicken Sie auf KeyRing erstellen.
Geben Sie im Feld Schlüsselbundname einen Namen für den Schlüsselbund ein.
Wählen Sie unter Standorttyp einen Standorttyp und einen Standort aus.
Klicken Sie auf Erstellen. Die Seite Schlüssel erstellen wird geöffnet.
Geben Sie im Feld Schlüsselname einen Namen für den Schlüssel ein.
Wählen Sie als Schutzniveau die Option Software aus.
Wählen Sie unter Schlüsselmaterial die Option Importierter Schlüssel aus und klicken Sie dann auf Weiter. Dadurch wird verhindert, dass eine erste Schlüsselversion erstellt wird.
Legen Sie den Zweck und den Algorithmus für den Schlüssel fest und klicken Sie dann auf Weiter.
Optional: Wenn dieser Schlüssel nur importierte Schlüsselversionen enthalten soll, wählen Sie Schlüsselversionen ausschließlich auf Import einschränken aus. So wird verhindert, dass Sie versehentlich neue Schlüsselversionen in Cloud KMS erstellen.
Optional: Bei importierten Schlüsseln ist die automatische Rotation standardmäßig deaktiviert. Wenn Sie die automatische Rotation aktivieren möchten, wählen Sie einen Wert aus dem Feld Zeitraum für die Schlüsselrotation aus.
Wenn Sie die automatische Rotation aktivieren, werden in Cloud KMS neue Schlüsselversionen generiert und die importierte Schlüsselversion nach einer Rotation nicht mehr die Standardversion.
Klicken Sie auf Erstellen.
gcloud
Wenn Sie Cloud KMS in der Befehlszeile verwenden möchten, müssen Sie zuerst Google Cloud CLI installieren oder ein Upgrade ausführen.
Erstellen Sie den Zielschlüsselbund. Wählen Sie einen Standort aus, der mit dem gewünschten Schutzgrad kompatibel ist. Weitere Informationen zu unterstützten Standorten finden Sie unter Cloud KMS-Standorte.
gcloud kms keyrings create KEY_RING \ --location LOCATION
Erstellen Sie den Zielschlüssel mit dem Befehl
kms keys createund dem Flag--skip-initial-version-creation. Dadurch wird ein Schlüssel ohne anfängliche Schlüsselversion erstellt, sodass Ihr importiertes Schlüsselmaterial die Version1hat. Verwenden Sie das Flag--import-only, um zu verhindern, dass Cloud KMS Schlüsselmaterial für neue Schlüsselversionen generiert. Wenn dieses Flag festgelegt ist, müssen neue Schlüsselversionen für diesen Schlüssel importiert werden. Als--import-onlyerstellte Schlüssel müssen manuell rotiert werden.gcloud kms keys create KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --purpose PURPOSE \ --protection-level SOFTWARE \ --skip-initial-version-creation \ --import-only
Ersetzen Sie Folgendes:
KEY_NAME: Der Name, den Sie für den Schlüssel verwenden möchten.LOCATION: der Speicherort des SchlüsselbundsKEY_RING: der Schlüsselbund, in dem Sie den Schlüssel erstellen möchtenPURPOSE: Der Zweck, den Sie für den Schlüssel verwenden möchten.
API
In diesen Beispielen wird curl als HTTP-Client verwendet, um die Verwendung der API zu demonstrieren. Weitere Informationen zur Zugriffssteuerung finden Sie unter Auf die Cloud KMS API zugreifen.
Neuen Schlüsselbund erstellen:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings?keyRingId=KEY_RING" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --header "x-goog-user-project: PROJECT_ID" \ --data "{}"Weitere Informationen finden Sie in der
KeyRing.createAPI-Dokumentation.Leeren Schlüssel erstellen, der nur für den Import verwendet werden kann:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?cryptoKeyId=KEY_NAME&skipInitialVersionCreation=true" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --header "x-goog-user-project: PROJECT_ID" \ --data "{"purpose":"PURPOSE", "importOnly": "true", "versionTemplate":{"protectionLevel":"PROTECTION_LEVEL","algorithm":"ALGORITHM"}}"Weitere Informationen finden Sie in der
CryptoKey.createAPI-Dokumentation.
Der Schlüsselbund und der Schlüssel sind jetzt vorhanden, aber der Schlüssel enthält kein Schlüsselmaterial, keine Version und ist nicht aktiv. Als Nächstes erstellen Sie einen Importjob.
Erstellen Sie den Importjob
Ein Importjob definiert die Merkmale der importierten Schlüssel, einschließlich des Schutzniveaus und der Importmethode.
Der Import von quantensicheren Schlüsseln wird nur für das Schutzniveau SOFTWARE unterstützt.
Wählen Sie eine der folgenden quantensicheren Importmethoden aus:
HPKE_KEM_XWING_HKDF_SHA256_AES_256_GCMHPKE_KEM_ML_KEM_768_HKDF_SHA256_AES_256_GCMHPKE_KEM_ML_KEM_1024_HKDF_SHA256_AES_256_GCM
gcloud
Führen Sie den folgenden Befehl aus, um einen Importjob mit einer quantensicheren Importmethode zu erstellen:
gcloud kms import-jobs create IMPORT_JOB \
--location LOCATION \
--keyring KEY_RING \
--import-method IMPORT_METHOD \
--protection-level software
Ersetzen Sie Folgendes:
IMPORT_JOB: Ein eindeutiger Name für den Importjob.LOCATION: der Speicherort des Schlüsselbunds, in dem Sie den Zielschlüssel erstellt haben