Özgün yayımlama tarihi: 21 Kasım 2025, İstanbul
KB Kimliği: 5073121
Giriş
14 Ekim 2025'te CVE-2024-30098'i ele alan Windows güncelleştirmeleri, kodun akıllı karttan sertifika deposuna yayılan sertifikaların anahtarını doğru şekilde belirlemediği uygulamalarda sorunları ortaya çıkardı. Bu kimlik doğrulaması, şifreleme işlemlerinin belirli senaryolarda başarısız olmasına neden olabilir. Bu belge, uygulama geliştiricilerine doğru işleyiciyi algılama ve bu sorunları çözme konusunda rehberlik sağlar.
Özet
Sertifikalar akıllı karttan Windows sertifika deposuna yayıldığında, yayma işlemi aşağıdaki sağlayıcılardan birini kullanabilir:
-
Eski Şifreleme Uygulama Programlama Arabirimine (CAPI) bağlı olan Eski Şifreleme Hizmeti Sağlayıcısı (CSP)
-
Şifreleme API'sine dayalı Anahtar Depolama Sağlayıcısı (KSP): Yeni Nesil (CNG). Bu, Windows Vista'da kullanıma sunulan modern bir değişimdi.
CVE-2024-30098 düzeltmesi öncesinde, yayma algoritması RSA tabanlı sertifikalar için CSP ve diğerleri için KSP kullanıyordu. CAPI modern şifreleme algoritmalarını desteklemediğinden ve güvenlik özelliklerini sınırladığından bu yaklaşım güvenli değildi.
14 Ekim 2025 güvenlik güncelleştirmeleri bu özel işlemeyi kaldırdı ve şimdi KSP tüm sertifikalar için kullanılıyor.
Kullanılacak API kümesini belirleme
CSP tarafından yönetilen RSA anahtarlarını kullanan uygulamalar, anahtar KSP tarafından yönetildiğinde başarısız olabilir. Bu sorunu çözmek için uygulamaların anahtarı hangi sağlayıcının yönettiğini algılaması ve ilgili API kümesini (CAPI veya CNG) kullanması gerekir.
Önemli: API kullanım dışı olduğundan CryptAcquireContextW veya CryptAcquireContextA işlevlerini kullanmayın. Bunun yerine CryptAcquireCertificatePrivateKey işlevini kullanın.
CryptAcquireCertificatePrivateKey işlevi
CryptAcquireCertificatePrivateKey çağrısı, HCRYPTPROV_OR_NCRYPT_KEY_HANDLE türünde bir tanıtıcı (phCryptProvOrNCryptKey) döndürür. Bu tanıtıcı şu olabilir:
-
CSP tanıtıcısı (HCRYPTPROV): CryptSignHash gibi CryptoAPI işlevlerini kullanın.
-
CNG tanıtıcısı (NCRYPT_KEY_HANDLE): NCryptSignHash gibi CNG işlevlerini kullanın.
Not: CryptAcquireCertificatePrivateKey çağrısı yaparken dwFlags parametresine CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG eklediğinizden emin olun.
Tanıtıcı türünü belirlemek için pdwKeySpec değerini denetleyin:
|
pdwKeySpec değeri |
Kullanılacak Şifreleme API'si |
|
AT_KEYEXCHANGE veya AT_SIGNATURE |
CAPI |
|
CERT_NCRYPT_KEY_SPEC |
CNG |
Geçici çözüm
Geçici bir çözüm, bu değişikliğin uygulanmasından etkilenen müşteriler için kullanılabilir. Davranışı Zorlama'danDenetim moduna geçmek için geçici bir kayıt defteri anahtarı kullanılabilir.
Önemli: Bu kayıt defteri anahtarı desteği Nisan 2026 güncelleştirmelerinde kaldırılacaktır.
|
Kayıt defteri yolu |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais |
|
Tür |
REG_DWORD |
|
Value name |
DisableCapiOverrideForRSA |
|
Value data |
|
Başvurular
CryptAcquireCertificatePrivateKey işlevi (wincrypt.h)
CVE-2024-30098 | Windows Şifreleme Hizmetleri Güvenlik Özelliğini Atlama Güvenlik Açığı
.