Jenis, algoritma, dan operasi utama
Key Vault mendukung dua jenis sumber daya: vault dan HSM terkelola. Kedua jenis sumber daya mendukung berbagai kunci enkripsi. Untuk melihat ringkasan jenis kunci yang didukung, jenis perlindungan menurut setiap jenis sumber daya, lihat Tentang kunci.
Tabel berikut memperlihatkan ringkasan jenis kunci dan algoritma yang didukung.
Jenis/ukuran/kurva kunci | enkripsi/dekripsi (Bungkus/Buka Bungkus) |
tanda tangan/verifikasi |
---|---|---|
EC-P256, EC-P256K, EC-P384, EC-P521 | NA | ES256 ES256K ES384 ES512 |
RSA 2K, 3K, 4K | RSA1_5 RSA-OAEP RSA-OAEP-256 |
PS256 PS384 PS512 RS256 RS384 RS512 RSNULL |
AES 128-bit, 256-bit (Hanya HSM terkelola) |
AES-KW AES-GCM AES-CBC |
NA |
Algoritma EC
Pengidentifikasi algoritma berikut didukung dengan kunci EC-HSM
Jenis Kurva
- P-256 - Kurva NIST P-256, didefinisikan di DSS FIPS PUB 186-4.
- P-256K - Kurva SEC SECP256K1, didefinisikan pada SEC 2: Parameter Domain Kurva Elips yang Direkomendasikan.
- P-384 - Kurva NIST P-384, didefinisikan di DSS FIPS PUB 186-4.
- P-521 - Kurva NIST P-521, didefinisikan di DSS FIPS PUB 186-4.
SIGN/VERIFIKASI
- ES256 - ECDSA untuk hash SHA-256 dan kunci yang dibuat dengan kurva P-256. Algoritma ini dijelaskan di RFC7518.
- ES256K - ECDSA untuk hash SHA-256 dan kunci yang dibuat dengan kurva P-256K. Algoritma ini menunggu standardisasi.
- ES384 - ECDSA untuk hash SHA-384 dan kunci yang dibuat dengan kurva P-384. Algoritma ini dijelaskan di RFC7518.
- ES512 - ECDSA untuk hash SHA-512 dan kunci yang dibuat dengan kurva P-521. Algoritma ini dijelaskan di RFC7518.
Algoritma RSA
Pengidentifikasi algoritma berikut didukung dengan kunci RSA dan RSA-HSM
WRAPKEY/UNWRAPKEY, ENKRIPSI/DEKRIPSI
- RSA1_5 - Enkripsi kunci RSAES-PKCS1-V1_5 [RFC3447]
- RSA-OAEP - RSAES menggunakan Optimal Asymmetric Encryption Padding (OAEP) [RFC3447], dengan parameter default yang ditentukan oleh RFC 3447 di Bagian A.2.1. Parameter default tersebut menggunakan fungsi hash SHA-1 dan fungsi pembuatan masker MGF1 dengan SHA-1.
- RSA-OAEP-256 – RSAES menggunakan Optimal Asymmetric Encryption Padding dengan fungsi hash SHA-256 dan fungsi pembuatan masker MGF1 dengan SHA-256
SIGN/VERIFIKASI
- PS256 - RSASSA-PSS menggunakan SHA-256 dan MGF1 dengan SHA-256, seperti yang dijelaskan dalam RFC7518.
- PS384 - RSASSA-PSS menggunakan SHA-384 dan MGF1 dengan SHA-384, seperti yang dijelaskan dalam RFC7518.
- PS512 - RSASSA-PSS menggunakan SHA-512 dan MGF1 dengan SHA-512, seperti yang dijelaskan dalam RFC7518.
- RS256 - RSASSA-PKCS-v1_5 menggunakan SHA-256. Aplikasi yang disediakan nilai hash harus dihitung menggunakan SHA-256 dan harus panjangnya 32 byte.
- RS384 - RSASSA-PKCS-v1_5 menggunakan SHA-384. Aplikasi yang disediakan nilai hash harus dihitung menggunakan SHA-384 dan harus panjangnya 48 byte.
- RS512 - RSASSA-PKCS-v1_5 menggunakan SHA-512. Aplikasi yang disediakan nilai hash harus dihitung menggunakan SHA-512 dan harus panjangnya 64 byte.
- RSNULL - Lihat RFC2437,kasus penggunaan khusus untuk mengaktifkan skenario TLS tertentu.
Catatan
Mode padding RSA-PSS direkomendasikan untuk performa yang lebih baik. DigestInfo dibangun di sisi server untuk operasi Sign yang dihasilkan oleh algoritma RS256, RS384, dan RS512.
Algoritma kunci konten (hanya HSM Terkelola)
- AES-KW - Pembungkus Kunci AES (RFC3394).
- AES-GCM - Enkripsi AES dalam Mode Penghitung Galois (NIST SP 800-38d)
- AES-CBC - Enkripsi AES dalam Mode Rantai Blok Sandi (NIST SP 800-38a)
Catatan
Proses masuk dan verifikasi Algoritma harus cocok dengan jenis kunci, jika tidak, layanan yang akan mengembalikan ukuran kunci merupakan kesalahan yang salah.
Operasi utama
Key Vault, termasuk HSM terkelola, mendukung operasi berikut pada objek utama:
- Buat: Memungkinkan klien untuk membuat kunci di Key Vault. Nilai kunci dihasilkan oleh Key Vault dan disimpan, dan tidak dirilis ke klien. Kunci asimetris dapat dibuat di Key Vault.
- Impor: Memungkinkan klien mengimpor kunci yang ada ke Key Vault. Kunci asimetris dapat diimpor ke Key Vault menggunakan beberapa metode pengemasan yang berbeda dalam konstruksi JWK.
- Perbarui: Memungkinkan klien dengan izin yang memadai untuk memodifikasi metadata (atribut kunci) yang terkait dengan kunci yang sebelumnya disimpan dalam Key Vault.
- Hapus: Memungkinkan klien dengan izin yang memadai untuk menghapus kunci dari Key Vault.
- Daftar: Memungkinkan klien untuk mencantumkan semua kunci dalam Key Vault tertentu.
- Versi daftar: Memungkinkan klien untuk membuat daftar semua versi kunci tertentu di Key Vault tertentu.
- Dapat: Memungkinkan klien untuk mengambil bagian publik dari kunci tertentu di Key Vault.
- Microsoft Azure Backup: Mengekspor kunci dalam bentuk yang dilindungi.
- Pulihkan: Mengimpor kunci yang sebelumnya dicadangkan.
- Rilis: Dengan aman merilis kunci untuk kode resmi yang berjalan dalam lingkungan komputasi rahasia. Ini memerlukan pengesahan bahwa Trusted Execution Environment (TEE) memenuhi persyaratan release_policy kunci.
- Putar: Putar kunci yang sudah ada dengan menghasilkan versi baru kunci (hanya Key Vault).
Untuk informasi selengkapnya, lihat Operasi kunci di referensi Key Vault REST API.
Setelah kunci dibuat di Key Vault, operasi kriptografi berikut dapat dilakukan menggunakan kunci:
- Tanda tangani dan Verifikasi: Operasi ini adalah "sign hash" atau "verify hash" secara ketat, karena Key Vault tidak mendukung hashing konten sebagai bagian dari pembuatan tanda tangan. Aplikasi harus hash data yang akan ditandatangani secara lokal, kemudian meminta agar Key Vault menandatangani hash. Verifikasi hash yang ditandatangani didukung sebagai operasi kenyamanan untuk aplikasi yang mungkin tidak memiliki akses ke materi kunci [publik]. Untuk kinerja aplikasi terbaik, operasi VERIFIKASI harus dilakukan secara lokal.
- Enkripsi Kunci / Pembungkusan: Kunci yang disimpan di Key Vault dapat digunakan untuk melindungi kunci lain, biasanya kunci enkripsi konten simetris (CEK). Ketika kunci di Key Vault asimetris, enkripsi kunci digunakan. Misalnya, RSA-OAEP dan operasi WRAPKEY/UNWRAPKEY setara dengan ENCRYPT/DECRYPT. Ketika kunci di Vault Kunci simetris, pembungkus kunci digunakan. Misalnya, AES-KW. Operasi WRAPKEY didukung sebagai kemudahan untuk aplikasi yang mungkin tidak memiliki akses ke materi kunci [publik]. Untuk kinerja aplikasi terbaik, operasi WRAPKEY harus dilakukan secara lokal.
- Enkripsi dan Dekripsi: Kunci yang disimpan di Key Vault dapat digunakan untuk mengenkripsi atau mendekripsi satu blok data. Ukuran blok ditentukan oleh jenis kunci dan algoritma enkripsi terpilih. Operasi enkripsi didukung sebagai kemudahan untuk aplikasi yang mungkin tidak memiliki akses ke materi kunci [publik]. Untuk kinerja aplikasi terbaik, operasi ENKRIPSI harus dilakukan secara lokal.
Meskipun WRAPKEY/UNWRAPKEY menggunakan kunci asimetris mungkin tampak berlebihan (karena operasinya setara dengan ENCRYPT/DECRYPT), penggunaan operasi penting yang berbeda. Perbedaan ini memberikan pemisahan semantik dan otorisasi operasi ini, dan konsistensi ketika jenis kunci lainnya didukung oleh layanan.
Key Vault tidak mendukung operasi EKSPOR. Setelah kunci disediakan dalam sistem, kunci tidak dapat diekstraksi atau bahan kuncinya dimodifikasi. Namun, pengguna Key Vault mungkin memerlukan kunci mereka untuk kasus penggunaan lain, seperti setelah dihapus. Dalam hal ini, mereka dapat menggunakan operasi CADANGAN dan PEMULIHAN untuk mengekspor/mengimpor kunci dalam bentuk yang dilindungi. Kunci yang dibuat oleh operasi CADANGAN tidak dapat digunakan di luar Key Vault. Atau, operasi IMPOR dapat digunakan terhadap beberapa instans Key Vault.
Pengguna dapat membatasi salah satu operasi kriptografi yang didukung Key Vault secara per-kunci key_ops properti objek JWK.
Untuk informasi selengkapnya tentang objek JWK, lihat JSON Web Key (JWK).
Operasi kebijakan rotasi kunci
Rotasi otomatis kunci brankas kunci dapat diatur dengan mengonfigurasi kebijakan rotasi otomatis kunci. Fitur ini hanya tersedia di sumber daya Azure Key Vault.
- Dapatkan Kebijakan Rotasi: Ambil konfigurasi kebijakan rotasi.
- Atur Kebijakan Rotasi: Atur konfigurasi kebijakan rotasi.
Atribut kunci
Selain materi kunci, atribut berikut dapat ditentukan. Dalam Permintaan JSON, kata kunci dan kurung kurawal atribut, '{' '}', diperlukan meskipun tidak ada atribut yang ditentukan.
- enabled: boolean, opsional, defaultnya adalah benar. Menentukan apakah kunci diaktifkan dan dapat digunakan untuk operasi kriptografi. Atribut yang diaktifkan digunakan dengan nbf dan exp. Ketika operasi terjadi antara nbf dan exp, operasi hanya akan diizinkan jika diaktifkan diatur ke true. Operasi di luar jendela nbf / exp secara otomatis tidak diizinkan, kecuali untuk dekripsi, rilis, buka bungkus, dan verifikasi.
- nbf: IntDate, opsional, default sekarang. Atribut nbf (tidak sebelumnya) mengidentifikasi waktu sebelum kunci TIDAK BOLEH digunakan untuk operasi kriptografi, kecuali untuk dekripsi, rilis, buka bungkus, dan verifikasi. Pemrosesan atribut nbf mengharuskan tanggal/waktu saat ini HARUS setelah atau sama dengan tanggal/waktu yang tidak sebelum tercantum dalam atribut nbf. Key Vault DAPAT memberikan beberapa kelonggaran kecil, biasanya tidak lebih dari beberapa menit, untuk memperhitungkan penyimpangan jam. Nilainya HARUS merupakan angka yang berisi nilai IntDate.
- exp: IntDate, opsional, default “selamanya”. Atribut exp (waktu kedaluwarsa) mengidentifikasi waktu kedaluwarsa pada atau setelah itu kunci TIDAK BOLEH digunakan untuk operasi kriptografi, kecuali untuk dekripsi, rilis, unwrap, dan verifikasi. Pemrosesan atribut exp mengharuskan tanggal/waktu saat ini harus sebelum tanggal/waktu kedaluwarsa yang tercantum dalam atribut exp. Key Vault DAPAT memberikan beberapa kelonggaran kecil, biasanya tidak lebih dari beberapa menit, untuk memperhitungkan penyimpangan jam. Nilainya HARUS merupakan angka yang berisi nilai IntDate.
Ada lebih banyak atribut baca-saja yang disertakan dalam respons apa pun yang menyertakan atribut utama:
- created: IntDate, opsional. Atribut yang dibuat menunjukkan kapan versi kunci ini dibuat. Nilai adalah null untuk kunci yang dibuat sebelum penambahan atribut ini. Nilainya HARUS merupakan angka yang berisi nilai IntDate.
- updated: IntDate, opsional. Atribut yang diperbarui menunjukkan kapan versi kunci ini diperbarui. Nilai adalah null untuk kunci yang diperbarui sebelum penambahan atribut ini. Nilainya HARUS merupakan angka yang berisi nilai IntDate.
- hsmPlatform: string, opsional. Platform HSM yang mendasar yang melindungi kunci.
- Nilai hsmPlatform 2 berarti kunci dilindungi oleh platform HSM tervalidasi FIPS 140 Level 3 terbaru kami.
- Nilai hsmPlatform 1 berarti kunci dilindungi oleh platform HSM tervalidasi FIPS 140 Level 2 sebelumnya.
- Nilai hsmPlatform 0 berarti kunci dilindungi oleh modul kriptografi perangkat lunak FIPS 140 Level 1 HSM.
- jika ini tidak ditetapkan oleh kumpulan HSM Terkelola, itu dilindungi oleh platform HSM tervalidasi FIPS 140 Level 3 terbaru kami.
Penting untuk dicatat bahwa kunci terikat ke HSM tempat kunci dibuat. Kunci baru dibuat dan disimpan dengan mulus di HSM baru. Meskipun tidak ada cara untuk memigrasikan atau mentransfer kunci, versi kunci baru secara otomatis berada di HSM baru. Untuk informasi selengkapnya tentang cara bermigrasi ke kunci baru, lihat Cara memigrasikan beban kerja kunci.
Untuk informasi selengkapnya tentang IntDate dan jenis data lainnya, lihat [Tentang kunci, rahasia, dan sertifikat: Jenis data.
Operasi terkontrol tanggal-waktu
Kunci yang belum valid dan kedaluwarsa, di luar jendela nbf / exp, akan berfungsi untuk operasi dekripsi, rilis, buka bungkus, dan verifikasi (tidak akan mengembalikan 403, Terlarang). Alasan untuk menggunakan keadaan yang belum valid adalah untuk memungkinkan kunci untuk diuji sebelum penggunaan produksi. Alasan untuk menggunakan status kedaluwarsa adalah untuk memungkinkan operasi pemulihan pada data yang dibuat ketika kunci valid. Selain itu, Anda dapat menonaktifkan akses ke kunci menggunakan kebijakan Key Vault, atau dengan memperbarui atribut kunciyang diaktifkan ke salah.
Untuk informasi selengkapnya tentang jenis data, lihat Jenis data.
Untuk informasi selengkapnya tentang atribut lain yang memungkinkan, lihat JSON Web Key (JWK).
Tag kunci
Anda dapat menentukan lebih banyak metadata khusus aplikasi dalam bentuk tag. Key Vault mendukung hingga 15 tag, yang setiapnya dapat bernama 256 karakter dan bernilai 256 karakter.
Catatan
Tag dapat dibaca oleh penelepon jika mereka memiliki daftar atau mendapatkan izin ke kunci tersebut.
Kontrol akses kunci
Kontrol akses untuk kunci yang dikelola oleh Key Vault diberikan pada tingkat Key Vault yang bertindak sebagai kontainer kunci. Anda dapat mengontrol akses ke kunci menggunakan kontrol akses berbasis peran Key Vault (disarankan) atau model izin kebijakan akses vault lama. Model izin berbasis peran memiliki tiga peran yang telah ditentukan sebelumnya untuk mengelola kunci: 'Petugas Kripto Key Vault', 'Pengguna Kripto Key Vault', 'Pengguna Enkripsi Layanan Key Vault' dan dapat dilingkup ke tingkat langganan, grup sumber daya, atau vault.
Izin model izin kebijakan akses vault:
Izin untuk operasi manajemen utama
- get: Baca bagian publik dari kunci, ditambah atributnya
- daftar: Daftar kunci atau versi kunci yang disimpan dalam brankas kunci
- perbarui: Perbarui atribut untuk kunci
- buat: Buat kunci baru
- impor: Mengimpor kunci ke brankas kunci
- hapus: Hapus objek kunci
- pulihkan: Pulihkan Kunci yang dihapus
- cadangan: Mencadangkan kunci dalam brankas kunci
- pemulihan: Memulihkan kunci yang dicadangkan ke brankas kunci
Izin untuk operasi kriptografi
- dekripsi: Gunakan kunci untuk membuka proteksi urutan byte
- enkripsi: Gunakan kunci untuk melindungi urutan byte
- unwrapKey: Gunakan kunci untuk membuka proteksi kunci konten yang dibungkus
- wrapKey: Gunakan kunci untuk melindungi kunci konten
- verifikasi: Gunakan kunci untuk memverifikasi hash
- tanda: Gunakan kunci untuk menandatangani hash
Izin untuk operasi istimewa
- hapus menyeluruh: Hapus menyeluruh (menghapus secara permanen) kunci yang dihapus
- rilis: Merilis kunci ke lingkungan komputasi rahasia, yang cocok dengan release_policy kunci
Izin untuk operasi kebijakan rotasi
- Putar: Putar kunci yang sudah ada dengan menghasilkan versi baru kunci (hanya Key Vault)
- dapatkan kebijakan rotasi: Mengambil konfigurasi kebijakan rotasi
- menetapkan kebijakan rotasi: Mengatur konfigurasi kebijakan rotasi
Untuk informasi selengkapnya tentang bekerja dengan kunci, lihat Operasi kunci di referensi Key Vault REST API.