Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu belgede, müşterilerin şirket içi HSM'lerinden Key Vault HSM korumalı anahtarları içeri aktarmaya yönelik belirtimler açıklanmaktadır.
Senaryo
Key Vault müşterisi, yerel HSM'sinden Azure Key Vault'u destekleyen Azure dışındaki HSM'e güvenli bir şekilde anahtar aktarmak istiyor. Bu işleme Bring Your Own Key (BYOK) adı verilir.
Aşağıdaki gereksinimler geçerlidir:
- Aktarım anahtarı hiçbir zaman HSM'nin dışında düz metin biçiminde bulunmaz.
- HSM dışında aktarım anahtarı her zaman Azure Key Vault HSM'de tutulan bir anahtarla korunur.
Terminoloji
| Anahtar Adı | Anahtar Türü | Başlangıç | Açıklama |
|---|---|---|---|
| Anahtar Değiştirme Anahtarı (KEK) | RSA | Azure Key Vault HSM | Azure Key Vault'de oluşturulan bir HSM destekli RSA anahtar çifti |
| Sarmalama Anahtarı | Ekim | Satıcı HSM | Şirket içi HSM tarafından oluşturulan [kısa ömürlü] sekizli anahtar |
| Hedef Anahtar | RSA, EC, oct (yalnızca Yönetilen Donanım Güvenlik Modülü) | Satıcı HSM | Azure Key Vault HSM'ye aktarım anahtarı |
Key Exchange Key: BYOK anahtarını içeri aktardığınız anahtar kasasında oluşturduğunuz, HSM destekli bir anahtar. Bu KEK aşağıdaki özelliklere sahip olmalıdır:
- Bu bir RSA-HSM anahtarıdır (4096 bit, 3072 bit veya 2048 bit).
- Yalnızca BYOK sırasında kullanabileceğiniz sabit bir
key_ops(YALNIZCAimport) bulunmaktadır. - Hedef Anahtarı içeri aktardığınız kasada bulunmalıdır.
Kullanıcı adımları
Bir anahtar aktarımı gerçekleştirmek için kullanıcı aşağıdaki adımları gerçekleştirir:
- KEK oluşturun.
- KEK'nin ortak anahtarını alın.
- HSM satıcı tarafından sağlanan BYOK aracını kullanarak KEK'yi hedef HSM'ye içeri aktarın ve KEK tarafından korunan hedef anahtarı dışarı aktarın.
- Korumalı hedef anahtarı Azure Key Vault içeri aktarın.
Müşteriler, 3. adımı tamamlamak için HSM satıcısı tarafından sağlanan BYOK aracını ve belgelerini kullanır. Anahtar aktarım blobu ( .byok dosya) oluşturur.
HSM kısıtlamaları
Mevcut HSM'ler, yönettikleri anahtarlara aşağıdakiler dahil olmak üzere kısıtlamalar uygulayabilir:
- Anahtar sarmalama tabanlı dışarı aktarmaya izin vermek için HSM'yi yapılandırmanız gerekebilir.
- Denetimli dışarı aktarmaya izin vermek için HSM için hedef anahtarı CKA_EXTRACTABLE olarak işaretlemeniz gerekebilir.
- Bazı durumlarda KEK ve sarmalama anahtarını CKA_TRUSTED olarak işaretlemeniz gerekebilir ve bu da HSM'deki anahtarları sarmalamada kullanılmasını sağlar.
Kaynak HSM yapılandırması genellikle bu belirtim kapsamının dışındadır. Microsoft, HSM satıcısının bu tür yapılandırma adımlarını dahil etmek için BYOK aracına eşlik eden belgeler üretmesini bekler.
Uyarı
Azure PowerShell ve Azure portalı gibi diğer arabirimleri kullanarak bu adımlardan birkaçını gerçekleştirebilirsiniz. Bu adımları Key Vault SDK'daki eşdeğer işlevleri kullanarak program aracılığıyla da gerçekleştirebilirsiniz.
KEK Oluştur
anahtar işlemleri içeri aktaracak şekilde ayarlanmış bir KEK oluşturmak için az keyvault key create komutunu kullanın. Bu komuttan döndürülen anahtar tanımlayıcısını kid not edin.
az keyvault key create --kty RSA-HSM --size 4096 --name KEKforBYOK --ops import --vault-name <vault-name>
Uyarı
Hizmetler farklı Anahtar Şifreleme Anahtarı (KEK) uzunluklarını destekler. Örneğin Azure SQL yalnızca 2048 bit veya 3072 bit anahtar uzunluklarını destekler. Ayrıntılar için hizmetinizin belgelerine bakın.
KEK'nin ortak anahtarını alma
KEK'nin ortak anahtar bölümünü indirin ve bir PEM dosyasında depolayın.
az keyvault key download --name KEKforBYOK --vault-name <vault-name> --file KEKforBYOK.publickey.pem
HSM satıcısı tarafından sağlanan BYOK aracını kullanarak anahtar aktarım blobu oluşturma
Anahtar aktarım blobu (dosya olarak .byok depolanır) oluşturmak için HSM satıcısı tarafından sağlanan BYOK aracını kullanın. Araç, KEK ortak anahtarını girdilerinden biri olarak bir .pem dosyası şeklinde alır.
Anahtar aktarım blobu
Microsoft hedef anahtarı Azure Key Vault aktarmak için PKCS#11 CKM_RSA_AES_KEY_WRAP mekanizmasını kullanmayı planlıyor. Bu mekanizma tek bir blob oluşturur ve daha da önemlisi, iki HSM ara AES anahtarını işler ve kısa ömürlü olduğunu garanti eder. Bu mekanizma şu anda bazı HSM'lerde kullanılamaz, ancak AES anahtarıyla CKM_AES_KEY_WRAP_PAD kullanarak hedef anahtarı korumanın ve CKM_RSA_PKCS_OAEP kullanarak AES anahtarını korumanın bileşimi eşdeğer bir blob oluşturur.
Hedef anahtar düz metin anahtar türüne bağlıdır.
- RSA anahtarı için, özel anahtar ASN.1 DER kodlaması [RFC3447] kullanır ve PKCS#8 [RFC5208] içerisinde sarmalanmıştır.
- ASN.1 DER kodlaması [RFC5915] kullanan bir EC anahtarının özel anahtarı, PKCS#8 [RFC5208] içine sarılır.
- Sekizli anahtar için anahtar ham baytları kullanır.
İşlem, CKM_RSA_AES_KEY_WRAP mekanizmasını kullanarak düz metin anahtarının baytlarını dönüştürür:
- İşlem, kısa ömürlü bir oktet anahtar oluşturur ve sarmalama RSA anahtarını ve RSA-OAEP ile SHA1 kullanarak şifreler.
- İşlem, oct anahtarı ve Doldurma ile AES Anahtar Sarma kullanılarak kodlanmış düz metin anahtarını şifreler.
- İşlem, son şifreli metin blob'unu oluşturmak için şifrelenmiş OCT anahtarı ve şifrelenmiş düz metin anahtarını birleştirir.
Aktarım blobu biçimi, doğru şifre çözme için gerekli meta verileri hizmete teslim etmek için öncelikle bir araç olarak JSON Web Şifrelemesi sıkıştırma serileştirmesini (RFC7516) kullanır.
CKM_RSA_AES_KEY_WRAP_PAD kullanırsanız aktarım blobunun JSON serileştirmesi şöyle olur:
{
"schema_version": "1.0.0",
"header":
{
"kid": "<kek-key-id>",
"alg": "dir",
"enc": "CKM_RSA_AES_KEY_WRAP"
},
"ciphertext":"BASE64URL(<ciphertext>)",
"generator": "BYOK tool name and version; source HSM name and firmware version"
}
-
kid= KEK'nin anahtar tanımlayıcısı. Key Vault anahtarları için bu şekilde görünür:https://<vault-name>.vault.azure.net/keys/mykek/<key-version> -
alg= algoritma. -
dir= Doğrudan mod. Başvurulankid, CKM_RSA_AES_KEY_WRAP'in doğru bir temsilini olan şifreli metni doğrudan olarak korur. -
generator= BYOK aracının ve kaynak HSM üreticisinin ve modelinin adını ve sürümünü belirten bilgilendirme alanı. Sorun giderme ve destek için bu bilgileri kullanın.
.byok (PowerShell) veya Add-AzKeyVaultKey (CLI) komutlarını kullandığınızda Azure PowerShell veya CLI istemcisinin doğru şekilde davranması için JSON blobunu az keyvault key import uzantısına sahip bir dosyada depolayın.
HSM anahtarını içeri aktarmak için anahtar aktarım blobunu yükleyin
Anahtarı içeri aktarmak için Anahtar Aktarım Blobunu (".byok" dosyasını) çevrimiçi bir iş istasyonuna aktarın ve ardından az keyvault key import komutunu çalıştırın. Bu komut blobu yeni bir HSM destekli anahtar olarak Key Vault içeri aktarır.
RSA anahtarını içeri aktarmak için aşağıdaki komutu kullanın:
az keyvault key import --vault-name <vault-name> --name <key-name> --byok-file KeyTransferPackage-<key-name>.byok --ops encrypt decrypt
EC anahtarını içeri aktarmak için anahtar türünü ve eğri adını belirtin.
az keyvault key import --vault-name <vault-name> --name <key-name> --kty EC-HSM --curve-name "P-256" --byok-file KeyTransferPackage-<key-name>.byok --ops sign verify
Bu komutu çalıştırdığınızda, aşağıdaki gibi bir REST API isteği gönderir:
PUT https://<vault-name>.vault.azure.net/keys/<key-name>?api-version=7.6
RSA anahtarı içeri aktarılırken istek gövdesi şöyledir:
{
"key": {
"kty": "RSA-HSM",
"key_ops": [
"decrypt",
"encrypt"
],
"key_hsm": "<base64-encoded-byok-blob>"
},
"attributes": {
"enabled": true
}
}
EC anahtarını içe aktarırken istek içeriği:
{
"key": {
"kty": "EC-HSM",
"crv": "P-256",
"key_ops": [
"sign",
"verify"
],
"key_hsm": "<base64-encoded-byok-blob>"
},
"attributes": {
"enabled": true
}
}
key_hsm Değer, KeyTransferPackage-<key-name>.byok dosyasının Base64 biçiminde kodlanmış tüm içeriğidir.
Kaynaklar
Sonraki Adımlar
- Adım adım BYOK yönergeleri:
HSM korumalı anahtarları Key Vault (BYOK)