Memvalidasi kunci HSM terkelola Azure Key Vault dengan pengesahan kunci

Pengesahan kunci adalah fungsionalitas HSM Terkelola. Ini memungkinkan Anda memvalidasi integritas dan keaslian kunci kriptografi yang disimpan dalam modul keamanan perangkat keras (HSM). Ini memungkinkan organisasi memverifikasi bahwa kunci dihasilkan dan disimpan dalam HSM bersertifikat FIPS 140-3 Level 3 yang tepercaya tanpa meninggalkan batas FIPS. Dengan memberikan bukti kriptografi bahwa kunci ditangani dengan aman, pengesahan kunci meningkatkan kepercayaan pada proses manajemen kunci, memungkinkan kepatuhan terhadap standar dan peraturan keamanan yang ketat. Fitur ini sangat berharga dalam skenario di mana pelanggan membutuhkan jaminan bahwa kunci mereka dilindungi dari akses yang tidak sah, bahkan dari penyedia cloud.

Prasyarat

  • Versi AZ CLI (2.73.0 atau lebih tinggi): Jalankan az --version untuk versi. Jika Anda perlu menginstal atau memperbarui, lihat Instal Azure CLI.
  • Versi Python (3.13.2 atau lebih tinggi): Jalankan python3 --version untuk versi.
  • Versi Pip3 (24.3.1 atau lebih tinggi): Jalankan pip3 --version untuk versi.
  • Izin: Pengguna kripto dari HSM Terkelola atau peran kustom dengan izin getkey

Mengunduh atau mengkloning repositori GitHub

Unduh atau kloning repositori GitHub dengan semua file yang diperlukan untuk pengesahan kunci.

Menyiapkan lingkungan virtual dan menginstal paket Python yang diperlukan

Siapkan lingkungan virtual dan instal paket Python yang diperlukan dari requirements.txt. Dalam contoh ini, kami menamai "pengesahan" lingkungan virtual. Pastikan Anda berada di repositori yang Anda unduh atau kloning di langkah 1. Jika menggunakan Windows, silakan gunakan Command Prompt.

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

Mendapatkan data pengesahan untuk kunci tertentu dari HSM

Dapatkan data pengesahan untuk kunci tertentu dari HSM menggunakan perintah Azure CLI az keyvault key get-attestation. Menyertakan versi kunci bersifat opsional. File JSON berisi properti utama, blob pengesahan, dan semua sertifikat yang diperlukan untuk pengesahan kunci. Dalam contoh ini, file JSON diberi nama attestation.json.

Penggunaan:

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

atau

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

Contoh:

  • Untuk kunci bernama <key-name> dalam HSM bernama <hsm-name>:

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

    atau

      az keyvault key get-attestation --id https://<hsm-name>.managedhsm.azure.net/keys/<key-name> --file attestation.json
    
  • Untuk kunci bernama <key-name> dalam HSM bernama <hsm-name>, dengan versi kunci tertentu <key-version>

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

    atau

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

Memvalidasi data verifikasi

Skrip validate_attestation.py Python mengekstrak blob pengesahan dan sertifikat dari file JSON. Ini membangun rantai sertifikat untuk mengonfirmasi bahwa kunci ditandatangani oleh Marvell, akar vendor HSM, dan memverifikasi bahwa kunci ditandatangani dengan sertifikat yang ditandatangani Microsoft. Ini juga mengurai atribut biner pengesahan dan mencetak hasilnya. Kunci asimetris menerima pengesahan kunci privat dan publik, sedangkan kunci simetris hanya menerima pengesahan kunci privat. Parameter --v opsional atau --verbose dapat disertakan untuk melihat properti rantai sertifikat dan informasi tambahan tentang atribut kunci.

Penggunaan:

python3 validate_attestation.py -af <attestation.json>

Contoh

  • Tanpa mode rinci

    python3 validate_attestation.py -af attestation.json
    
  • Dengan mode verbose:

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

Saat berjalan dalam mode verbose, Anda akan melihat bagaimana kami membuat validasi rantai sertifikat dan sertifikat mana yang digunakan untuk memverifikasi integritas blob pengesahan untuk Marvell dan Microsoft.

Anda dapat memvalidasi sertifikat yang kami gunakan dengan /src/vendor/marvell/marvell_validate_key_attestation.py.

Langkah selanjutnya