Überprüfen von Schlüsseln für verwaltete Azure-HSMs per Schlüsselnachweis

Der Schlüsselnachweis ist eine Funktionalität von Azure Managed HSM. Sie können die Integrität und Authentizität kryptografischer Schlüssel überprüfen, die im Hardwaresicherheitsmodul (HARDWARE Security Module, HSM) gespeichert sind. Es ermöglicht Organisationen zu überprüfen, ob Schlüssel in einem vertrauenswürdigen, FIPS 140-3 Level 3 zertifizierten HSM generiert und gespeichert werden, ohne die FIPS-Grenze zu verlassen. Durch die Bereitstellung von kryptografischen Nachweisen, dass die Schlüssel sicher behandelt werden, verbessert der Schlüsselnachweis das Vertrauen in Schlüsselverwaltungsprozesse, wodurch die Einhaltung strenger Sicherheitsstandards und Vorschriften ermöglicht wird. Diese Funktion ist besonders in Szenarien hilfreich, in denen Kunden sicherstellen müssen, dass ihre Schlüssel vor unbefugtem Zugriff geschützt sind, auch von Cloudanbietern.

Voraussetzungen

  • AZ CLI-Version (2.73.0 oder höher): Führen Sie az --version für die Version aus. Wenn Sie die Azure CLI installieren oder aktualisieren müssen, siehe Installieren der Azure CLI.
  • Python-Version (3.13.2 oder höher): Für die Version ausführen python3 --version .
  • Pip3-Version (24.3.1 oder höher): Führen Sie pip3 --version aus, um die Version zu überprüfen.
  • Erlaubnisse: Kryptobenutzer des verwalteten HSM oder einer benutzerdefinierten Rolle mit getkey-Berechtigungen

Herunterladen oder Klonen des GitHub-Repositorys

Laden Sie das GitHub-Repository herunter, oder klonen Sie es mit allen Dateien, die für den Schlüsselnachweis erforderlich sind.

Einrichten einer virtuellen Umgebung und Installieren der erforderlichen Python-Pakete

Richten Sie eine virtuelle Umgebung ein, und installieren Sie die erforderlichen Python-Pakete von requirements.txt. In diesem Beispiel benennen wir die virtuelle Umgebung „Nachweis“. Stellen Sie sicher, dass Sie sich im Repository befinden, das Sie in Schritt 1 heruntergeladen oder geklont haben. Verwenden Sie unter Windows die Eingabeaufforderung.

python3 -m venv attestation
attestation\Scripts\activate.bat
pip3 install -r requirements.txt
cd src/

Abrufen von Nachweisdaten für einen bestimmten Schlüssel aus dem HSM

Abrufen von Attestierungsdaten für einen bestimmten Schlüssel aus dem HSM mithilfe des Azure CLI az keyvault key get-attestation Befehls. Das Einbeziehen der Schlüsselversion ist optional. Die JSON-Datei enthält wichtige Eigenschaften, den Nachweis-BLOB und alle Zertifikate, die für den Schlüsselnachweis erforderlich sind. In diesem Beispiel heißt attestation.jsondie JSON-Datei .

Verwendung:

az keyvault key get-attestation --hsm-name <hsm-name> --name <key-name> --version <key-version> --file <output-file>.json

oder

az keyvault key get-attestation --id https://<hsm-name>.managedhsm.azure.net/keys/<key-name>/<key-version> --file <output-file>.json

Beispiele

  • Für einen in HSM <key-name> benannten Schlüssel mit dem Namen <hsm-name>:

    az keyvault key get-attestation --hsm-name <hsm-name> --name <key-name> --file attestation.json
    

    oder

      az keyvault key get-attestation --id https://<hsm-name>.managedhsm.azure.net/keys/<key-name> --file attestation.json
    
  • Für einen Schlüssel namens <key-name> in einem HSM namens <hsm-name>, mit einer bestimmten Schlüsselversion <key-version>:

    az keyvault key get-attestation --hsm-name <hsm-name> --name <key-name> --version <key-version> --file attestation.json
    

    oder

      az keyvault key get-attestation --id https://<hsm-name>.managedhsm.azure.net/keys/<key-name>/<key-version> --file attestation.json
    

Überprüfen der Nachweisdaten

Das Python-Skript validate_attestation.py extrahiert das Attestation-BLOB und Zertifikate aus der JSON-Datei. Es erstellt eine Zertifikatkette, um zu bestätigen, dass der Schlüssel von Marvell, dem Stamm des HSM-Anbieters signiert ist, und überprüft, ob der Schlüssel mit einem von Microsoft signierten Zertifikat signiert ist. Außerdem werden die Attribute der Binärdatei für den Nachweis analysiert und die Ergebnisse gedruckt. Asymmetrische Schlüssel erhalten sowohl einen öffentlichen als auch einen privaten Schlüsselnachweis, während symmetrische Schlüssel nur einen privaten Schlüsselnachweis erhalten. Ein optionaler Parameter --v oder --verbose kann eingeschlossen werden, um die Eigenschaften der Zertifikatkette und zusätzliche Informationen zu den Attributen des Schlüssels anzuzeigen.

Verwendung:

python3 validate_attestation.py -af <attestation.json>

Beispiele

  • Ohne ausführlichen Modus:

    python3 validate_attestation.py -af attestation.json
    
  • Mit ausführlichem Modus:

    python3 validate_attestation.py -af attestation.json --v
    

Wenn Sie den ausführlichen Modus verwenden, sehen Sie, wie wir eine Zertifikatkettenvalidierung durchführen und welche Zertifikate zur Überprüfung der Integrität des Attestation Blobs sowohl für Marvell als auch für Microsoft eingesetzt werden.

Sie können die Von uns verwendeten /src/vendor/marvell/marvell_validate_key_attestation.pyZertifikate überprüfen.

Nächste Schritte