Hinweis:

Redundanz für asymmetrische Schlüssel in virtuellen Oracle Cloud Infrastructure-Vaults erstellen

Einführung

In der digitalen Welt von heute ist Datensicherheit von größter Bedeutung. Unternehmen verlassen sich zunehmend auf cloudbasierte Infrastruktur, um die Vertraulichkeit sensibler Informationen zu gewährleisten. Dazu verwenden sie oft Verschlüsselung, die eine sichere Schlüsselverwaltung erfordert. Das Schlüsselmanagement kann jedoch vor allem bei Redundanz und Verfügbarkeit erhebliche Herausforderungen stellen. In diesem Blogpost werden wir untersuchen, wie Sie Redundanz für asymmetrische Schlüssel in virtuellen Vaults erreichen können und wie Anwendungen in zwei verschiedenen Regionen dies für Verschlüsselung und Entschlüsselung nutzen können.

Oracle Cloud Infrastructure (OCI) bietet Virtual Private Vault (VPV), einen vollständig verwalteten Schlüsselverwaltungsservice, mit dem Sie Schlüssel für Datenverschlüsselung, -entschlüsselung und -signatur zentral verwalten können. Eines der wichtigsten Features von VPV ist regionsübergreifendes Backup und Restore. Mit diesem Feature können Sie Schlüssel regionsübergreifend sichern und wiederherstellen. So können Sie sie für die Verwendung in einer anderen Region als der Region verfügbar machen, in der sie erstellt wurden.

Es lohnt sich daran zu denken, dass Backup und Restore nur für VPV funktionieren, nicht für Virtual Vault (VV), einen anderen Schlüsselverwaltungsservice von OCI. Darüber hinaus gibt es keine Möglichkeit, HSM-(Hardware Security Module-)Schlüssel in Virtual Vault zu sichern. Mit der Option "Bring Your Own Key (BYOK)/Import Key" können Sie jedoch dasselbe Schlüsselmaterial in den Vaults zweier verschiedener Regionen importieren. Selbst wenn eine Region vollständig heruntergefahren ist, dient die Kopie in einer anderen Region als Backup. Diese Redundanz stellt sicher, dass Ihre Schlüssel immer verfügbar sind, auch wenn in einer Region ein Ausfall oder eine Katastrophe auftritt. Außerdem können Sie damit behördliche und Compliance-Anforderungen erfüllen, die wichtige Redundanz und Disaster Recovery erfordern.

Zielsetzung

In diesem Tutorial werden die allgemeinen Schritte zum Importieren desselben RSA-Schlüssels in virtuelle Vaults in zwei verschiedenen Regionen erläutert. Der Schlüsselimport wird Schritt für Schritt in einer Region ausgeführt, während ein Skript in der anderen Region für den Import verwendet wird. Nach dem Importieren des Schlüssels werden Testdaten mit dem Schlüssel in einer Region verschlüsselt. Anschließend wird der resultierende Cipher-Text mit demselben Schlüssel im Vault in der anderen Region entschlüsselt.

Voraussetzungen

Ein OCI-Account mit Zugriff zum Erstellen und Verwalten von Vaults und Schlüsseln.

Hinweis: Für das Szenario "Bring Your Own Key (BYOK)" müssen Sie OpenSSL patchen. Zum Patchen von OpenSSL ist der privilegierte Zugriff erforderlich, um die erforderlichen Shellbefehle auszuführen. Es wird empfohlen, die Shellbefehle in einem Linux-Feld mit privilegiertem Zugriff auszuführen. OCI-CLI-Befehle können entweder in der cloud shell oder in einem Linux-Feld ausgeführt werden, in dem OCI CLI installiert und konfiguriert ist. Befolgen Sie diese Prozedur, um OCI CLI auf einem Linux-Feld zu installieren und zu konfigurieren.

Aufgabe 1: Schlüssel in einen Vault in der ersten Region importieren (Beispiel:Phoenix)

Führen Sie die folgenden Schritte aus, um einen asymmetrischen Schlüssel (RSA) in einen virtuellen Vault zu importieren.

  1. Patch für OpenSSL: Für das Szenario "Bring your own key(BYOK)" müssen Sie OpenSSL für das Wrapping RSA_OAEP_AES_SHA256 patchen. Befolgen Sie diese Prozedur, um die OpenSSL zu patchen.

  2. Schlüsselmaterial generieren: Verwenden Sie Schlüsselmaterial, das von einem Tool oder einer Quelle basierend auf Ihren Anforderungen generiert wird. In diesem Tutorial generieren wir das Schlüsselmaterial mit OpenSSL.

    $HOME/local/bin/openssl.sh genrsa -out PRIVATEKEY.pem 2048
    
    
  3. Rufen Sie den öffentlichen RSA-Wrap-Schlüssel ab.

    oci kms management wrapping-key get --endpoint <control_plane_URL>
    
    
    oci kms management wrapping-key get --endpoint https://abcdefghijk-management.kms.us-phoenix-1.oraclecloud.com --raw-output --query 'data."public-key"' > VAULT_PUBLIC_WRAPPING_KEY.pem
    
    
  4. Wenden Sie RSA-OAEP mit AES an, um Schlüsselmaterial mit der CLI-Schnittstelle zu wrappen.

    a. Generieren Sie einen temporären AES-Schlüssel.

    openssl rand -out <temporary_AES_key_path> 32
    
    
    $HOME/local/bin/openssl.sh rand -out TEMP_AES_KEY.key 32
    
    

    b. Wrappen Sie den temporären AES-Schlüssel mit dem öffentlichen umschließenden Schlüssel, und verwenden Sie RSA-OAEP mit SHA-256.

    openssl pkeyutl -encrypt -in <temporary_AES_key_path> -inkey <vault_public_wrapping_key_path> -pubin -out <wrapped_temporary_AES_key_file> -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256
    
    
    $HOME/local/bin/openssl.sh pkeyutl -encrypt -in TEMP_AES_KEY.key -inkey VAULT_PUBLIC_WRAPPING_KEY.pem -pubin -out WRAPPED_TEMP_AES_KEY.bin -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256
    
    

    c. Hexadezimalwert des temporären AES-Schlüsselmaterials erzeugen

    temporary_AES_key_hexdump=$(hexdump -v -e '/1 "%02x"' < temporary_AES_key_path)
    
    
    TEMPORARY_AES_KEY_HEXDUMP=$(hexdump -v -e '/1 "%02x"' < TEMP_AES_KEY.key)
    
    

    d. Wenn der zu importierende RSA-Private Key im PEM-Format vorliegt, konvertieren Sie ihn in DER.

    ${OpenSSL_path} pkcs8 -topk8 -nocrypt -inform PEM -outform DER -in <your_pem_RSA_private_key_path> -out <your_RSA_private_key_file>
    
    
    $HOME/local/bin/openssl.sh pkcs8 -topk8 -nocrypt -inform PEM -outform DER -in PRIVATEKEY.pem -out TARGET_KEY.key
    
    

    e. Wrappen Sie Ihren RSA-Private Key mit dem temporären AES-Schlüssel.

    openssl enc -id-aes256-wrap-pad -iv A65959A6 -K temporary_AES_key_hexdump -in <your_RSA_private_key_file> -out <wrapped_target_key_file>
    
    
    $HOME/local/bin/openssl.sh enc -id-aes256-wrap-pad -iv A65959A6 -K $TEMPORARY_AES_KEY_HEXDUMP -in TARGET_KEY.key -out WRAPPED_TARGET_KEY.bin
    
    

    f. Erstellen Sie das gewrappte Schlüsselmaterial, indem Sie beide gewrappten Schlüssel verketten.

    cat <wrapped_temporary_AES_key_file> <wrapped_target_key_file> > <wrapped_key_material_file>
    
    
    cat WRAPPED_TEMP_AES_KEY.bin WRAPPED_TARGET_KEY.bin > WRAPPED_KEY_MATERIAL.bin
    
    

    g. Wenden Sie die base64-Codierung auf das gewrappte Schlüsselmaterial an, und importieren Sie es, um einen Schlüssel über CLI zu erstellen.

    base64 WRAPPED_KEY_MATERIAL.bin -w 0 > WRAPPED_KEY_MATERIAL.base64
    
    
  5. Schlüsselmaterial mit OCI CLI als externen Schlüssel importieren.

    oci kms management key import --wrapped-import-key <wrapped_key_material> --compartment-id <compartment_id> --display-name <key_name> --endpoint <control_plane_URL> --key-shape <key_encryption_information> --protection-mode <key_protection_mode>
    
    
    echo "{ \"wrappingAlgorithm\": \"RSA_OAEP_AES_SHA256\", \"keyMaterial\": \"$(cat WRAPPED_KEY_MATERIAL.base64)\" }" > WRAPPED_IMPORT_KEY.json
    
    
    echo "{ \"algorithm\": \"RSA\", \"length\": \"256\" }" > KEY_SHAPE.json
    
    
    oci kms management key import --wrapped-import-key file://WRAPPED_IMPORT_KEY.json --compartment-id ocid1.compartment.oc1..aaaaaaaabbbbbbbbbccccccccdddddddeeeeeefffff --display-name IMPORTEDKEY --endpoint https://abcdefghijk-management.kms.us-phoenix-1.oraclecloud.com --key-shape file://KEY_SHAPE.json --protection-mode SOFTWARE
    
    

Aufgabe 2: denselben Schlüssel in einen virtuellen Vault in der zweiten Region importieren (Beispiel: Ashburn)

Aufgabe 3: Daten verschlüsseln und entschlüsseln

Nachdem Sie einen Schlüssel in Ihrem Vault erstellt haben, können Sie damit Ihre Daten verschlüsseln und entschlüsseln.

  1. Mit dem im Vault vorhandenen RSA-Schlüssel für die erste Region verschlüsseln.

    oci kms crypto encrypt --key-id <key_ocid> --plaintext <plaintext Base64 Encoded> --encryption-algorithm <Encryption Algorithm> --endpoint <Vault Crypto Endpoint>

    • Zur Verschlüsselung mit dem RSA-Schlüsselverschlüsselungsalgorithmus ist der obligatorische Parameter, und die akzeptierten Werte sind RSA_OAEP_SHA_1, RSA_OAEP_SHA_256

      Bild 1

  2. Entschlüsseln Sie den RSA-Schlüssel im Vault für die zweite Region.

    oci kms crypto decrypt --key-id <key_ocid> --ciphertext <cipher text> --encryption-algorithm <Encryption Algorithm> --endpoint <Vault Crypto Endpoint>

    Bild 2

OCI Key Management bietet robuste Features, mit denen Sie Schlüsselredundanz erreichen und Ihre Verschlüsselungsschlüssel sicher verwalten können. Mit regionsübergreifendem Backup, Restore und Replikation für Virtual Private Vault und BYOK/key-Importoption für Virtual Vault können Sie sicherstellen, dass Ihre Daten sicher bleiben, auch wenn eine Region vollständig heruntergefahren ist. Anwendungen, die in verschiedenen Regionen gehostet werden, können diese Features nutzen, um Daten regionsübergreifend sicher zu verschlüsseln und zu entschlüsseln.

Danksagungen

Autor - Chaitanya Chintala (Cloud Security Advisor)

Weitere Lernressourcen

Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem die Website education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.

Produktdokumentation finden Sie im Oracle Help Center.