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'a HSM korumalı anahtarları içeri aktarmaya yönelik belirtimler açıklanmaktadır.
Senaryo
Key Vault müşterisi, bir anahtarı şirket içi HSM'sinden Azure dışındaki HSM destekli Azure Key Vault'a güvenli bir şekilde aktarmak istiyor. Key Vault dışında oluşturulan bir anahtarı içeri aktarma işlemi, Kendi Anahtarını Getir (KAG) olarak adlandırılır.
Gereksinimler şunlardır:
- Aktarılacak anahtar hiçbir zaman HSM'nin dışında düz metin biçiminde bulunmaz.
- HSM dışında, aktarılacak 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şim Anahtarı (KEK) | RSA | Azure Key Vault HSM | Azure Key Vault'ta oluşturulan HSM destekli RSA anahtar çifti |
| Sarmalama Anahtarı | Gelişmiş Şifreleme Standardı (AES) | Satıcı HSM | Şirket içi HSM tarafından oluşturulan bir [kısa ömürlü] AES anahtarı |
| Hedef Anahtar | RSA, EC, AES (Sadece Yönetilen HSM) | Satıcı HSM | Azure Key Vault HSM'ye aktarılacak anahtar |
Anahtar Değişimi Anahtarı: Müşterinin BYOK anahtarının içeri aktarıldığı anahtar kasasında oluşturduğu HSM destekli anahtar. Bu KEK aşağıdaki özelliklere sahip olmalıdır:
- Bu bir RSA-HSM anahtarıdır (4096 bit veya 3072 bit ya da 2048 bit)
- BYOK sırasında YALNIZCA kullanılmasını sağlayan sabit bir key_ops (YALNIZCA
import) vardır - Hedef Anahtarın aktarıldığı depo ile aynı kasada olmalı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ısı tarafından sağlanan BYOK aracını kullanarak - KEK'yi hedef HSM'ye aktarın ve KEK tarafından korunan Hedef Anahtarı dışarı aktarır.
- Korumalı Hedef Anahtarı Azure Key Vault'a aktarın.
Müşteriler, 3. Adımları tamamlamak için HSM satıcısı tarafından sağlanan BYOK aracını ve belgelerini kullanır. Bir Anahtar Aktarım Blobu (bir ".byok" dosyası) üretir.
HSM kısıtlamaları
Mevcut HSM, yönettikleri anahtara aşağıdakiler dahil olmak üzere kısıtlamalar uygulayabilir:
- HSM'nin anahtar sarmalama tabanlı dışarı aktarmaya izin verecek şekilde yapılandırılması gerekebilir
- HSM'nin denetimli dışarı aktarmaya izin vermek için hedef anahtarın CKA_EXTRACTABLE işaretlenmesi gerekebilir
- Bazı durumlarda KEK ve sarmalama anahtarının CKA_TRUSTED olarak işaretlenmesi gerekebilir ve bu da HSM'deki anahtarları sarmalamada kullanılmasına olanak tanır.
Kaynak HSM yapılandırması genel olarak 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ı
Bu adımlardan birkaçı Azure PowerShell ve Azure portalı gibi diğer arabirimler kullanılarak gerçekleştirilebilir. Ayrıca Key Vault SDK'sında eşdeğer işlevler kullanılarak program aracılığıyla da gerçekleştirilebilirler.
KEK Oluştur
anahtar işlemleri içeri aktaracak şekilde ayarlanmış KEK oluşturmak için az keyvault key create komutunu kullanın. Bu komuttan döndürülen 'kid' anahtar tanımlayıcısını not edin.
az keyvault key create --kty RSA-HSM --size 4096 --name KEKforBYOK --ops import --vault-name ContosoKeyVaultHSM
Uyarı
Hizmetler farklı KEK uzunluklarını destekler; Örneğin Azure SQL yalnızca 2048 veya 3072 bayt 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 ContosoKeyVaultHSM --file KEKforBYOK.publickey.pem
HSM satıcısı tarafından sağlanan BYOK aracını kullanarak anahtar aktarım blobu oluşturma
Müşteri, bir anahtar aktarım blobu (".byok" dosyası olarak depolanır) oluşturmak için HSM Satıcısı tarafından sağlanan BYOK aracını kullanır. KEK ortak anahtarı (.pem dosyası olarak) bu aracın girişlerinden biridir.
Anahtar Aktarım Blobu
Uzun vadede Microsoft, hedef anahtarı Azure Key Vault'a aktarmak için PKCS#11 CKM_RSA_AES_KEY_WRAP mekanizmasını kullanmak istiyor çünkü bu mekanizma tek bir blob üretir ve daha da önemlisi ara AES anahtarı iki HSM tarafından işlenir ve kısa ömürlü olması garanti edilir. Bu mekanizma bazı HSM'lerde mevcut değildir, ancak AES anahtarı kullanarak hedef anahtarı CKM_AES_KEY_WRAP_PAD ile korumanın ve AES anahtarının CKM_RSA_PKCS_OAEP ile korunmasını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] PKCS#8 [RFC5208] ile sarmalanmıştır.
- Bir EC anahtarı için, özel anahtar ASN.1 DER kodlaması [RFC5915], PKCS#8 [RFC5208] içinde sarmalanmıştır.
- Sekizli bir anahtar için anahtarın ham baytları
Düz metin anahtarının baytları daha sonra CKM_RSA_AES_KEY_WRAP mekanizması kullanılarak dönüştürülür:
- Geçici bir AES anahtarı oluşturulur ve RSA-OAEP ile SHA1 kullanılarak sarmalama RSA anahtarıyla şifrelenir.
- Kodlanmış düz metin anahtarı, Doldurma ile AES Anahtar Sarmalama yöntemiyle AES anahtarı kullanılarak şifrelenir.
- Şifrelenmiş AES anahtarı ve şifrelenmiş düz metin anahtarı, son şifreleme metni blobunu üretmek için birleştirilir.
Aktarım blobunun 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ılırsa aktarım blobunun JSON serileştirmesi şöyle olur:
{
"schema_version": "1.0.0",
"header":
{
"kid": "<key identifier of the KEK>",
"alg": "dir",
"enc": "CKM_RSA_AES_KEY_WRAP"
},
"ciphertext":"BASE64URL(<ciphertext contents>)",
"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 şöyle görünür:
https://ContosoKeyVaultHSM.vault.azure.net/keys/mykek/eba63d27e4e34e028839b53fac905621 - alg = algoritma.
- dir = Doğrudan mod, yani başvurulan kid, CKM_RSA_AES_KEY_WRAP'ın doğru bir temsili olan şifreli metni doğrudan korumak için kullanılır.
- generator = BYOK aracının adını ve sürümünü ve kaynak HSM üreticisini ve modelini belirten bilgi alanıdır. Bu bilgiler sorun giderme ve destek için tasarlanmıştır.
JSON blobu ".byok" uzantısına sahip bir dosyada depolanır, böylece Azure PowerShell veya CLI istemcisi 'Add-AzKeyVaultKey' (PSH) veya 'az keyvault key import' (CLI) komutları kullanıldığında doğru şekilde davranır.
HSM anahtarını içeri aktarmak için anahtar aktarım blobu yükleme
Müşteriler Anahtar Aktarım Blobunu (".byok" dosyası) çevrimiçi bir iş istasyonuna aktarıp az keyvault key import komutunu çalıştırarak bu blobu yeni bir HSM destekli anahtar olarak Key Vault'a aktarabilir.
Bir RSA anahtarını içeri aktarmak için şu komutu kullanın:
az keyvault key import --vault-name ContosoKeyVaultHSM --name ContosoFirstHSMkey --byok-file KeyTransferPackage-ContosoFirstHSMkey.byok --ops encrypt decrypt
Ec anahtarını içeri aktarmak için anahtar türünü ve eğri adını belirtmeniz gerekir.
az keyvault key import --vault-name ContosoKeyVaultHSM --name ContosoFirstHSMkey --byok-file --kty EC-HSM --curve-name "P-256" KeyTransferPackage-ContosoFirstHSMkey.byok --ops sign verify
Bu komut yürütürken aşağıdaki gibi bir REST API isteği gönderilmesiyle sonuçlanır:
PUT https://contosokeyvaulthsm.vault.azure.net/keys/ContosoFirstHSMKey?api-version=7.0
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ğeri, Base64 biçiminde kodlanmış KeyTransferPackage-ContosoFirstHSMkey.byok içeriğinin tamamıdır.
Kaynaklar
Sonraki Adımlar
- Adım adım BYOK yönergeleri: HSM korumalı anahtarları Key Vault'a aktarma (BYOK)