Originalni datum objavljivanja: 21. novembar 2025.
KB ID: 5073121
Uvod
Windows ispravke od 14. oktobra 2025. u kojima se rešavaju CVE-2024-30098 otkrili su probleme u aplikacijama u kojima kôd ne identifikuje koji dobavljač ispravno upravlja ključem za certifikate koji su preneti sa pametne kartice u skladište certifikata. Ova miigracija može da izazove neuspeh kriptografskih operacija u određenim scenarijima. Ovaj dokument pruža uputstva za projektante aplikacije o tome kako da otkriju odgovarajućeg rukovaoca i reše ove probleme.
Rezime
Kada se certifikati prenesu sa pametne kartice u Windows skladište certifikata, proces razdeljivanja može da koristi bilo kog od sledećih dobavljača:
-
Zastareli dobavljač kriptografskih usluga (CSP), koji se oslanja na zastareli šifrovani programski interfejs aplikacije (CAPI)
-
Ključni dobavljač skladišta (KSP), koji se oslanja na API šifrovanja: Sledeća generacija (CNG). Ovo je bila moderna zamena uvedena u operativnom sistemu Windows Vista.
Pre popravke za CVE-2024-30098, algoritam razdeljvanja koji koristi CSP za certifikate zasnovane na RSA i KSP za sve ostale. Ovaj pristup nije bio bezbedan jer CAPI ne podržava moderne kriptografske algoritme, ograničavajući bezbednosne mogućnosti.
Bezbednosne ispravke od 14. oktobra 2025. uklonjene su ovo posebno rukovanje, a sada se KSP koristi za sve certifikate.
Određivanje API-ja podešenog za korišćenje
Aplikacije koje se oslanjaju na RSA ključeve kojima upravlja CSP možda neće uspeti kada KSP upravlja ključem. Da bi rešile ovo, aplikacije moraju da otkriju koji dobavljač upravlja ključem i da koriste odgovarajući API skup (CAPI ili CNG).
Važno: Nemojte koristiti funkcije CryptAcquireContextW ili CryptAcquireContextA jer je API zastareo. Umesto toga koristite funkciju CryptAcquireCertificatePrivateKey .
Funkcija CryptAcquireCertificatePrivateKey
Pozivanje cryptAcquireCertificatePrivateKey vraća regulator tipa (phCryptProvOrNCryptKey) tipa HCRYPTPROV_OR_NCRYPT_KEY_HANDLE. Ovaj regulator može da bude:
-
CSP regulator (HCRYPTPROV): Koristite CryptoAPI funkcije kao što je CryptSignHash.
-
CNG regulator (NCRYPT_KEY_HANDLE): Koristite CNG funkcije kao što je NCryptSignHash.
Napomena: Kada pozivate CryptAcquireCertificatePrivateKey, obavezno uključite CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG u dwFlags parametar.
Da biste odredili tip regulatora, proverite vrednost pdwKeySpec :
|
pdwKeySpec vrednost |
Crypto API za korišćenje |
|
AT_KEYEXCHANGE ili AT_SIGNATURE |
CAPI (CAPI) |
|
CERT_NCRYPT_KEY_SPEC |
CNG |
Privremeno rešenje
Privremeni posao je dostupan za klijente na koje utiče sprovođenje ove promene. Dostupan je privremeni ključ registratora za prebacivanje ponašanja iz režima sprovođenjau režim nadzora .
Važno: Podrška za ovaj ključ registratora biće uklonjena u ispravkama iz aprila 2026.
|
Putanja registratora |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais |
|
Tip |
REG_DWORD |
|
Ime vrednosti |
DisableCapiOverrideForRSA |
|
Podaci o vrednosti |
|
Reference
Skladištenje i preuzimanje ključa
Funkcija CryptAcquireCertificatePrivateKey (wincrypt.h)
CVE-2024-30098 | Bezbednosna funkcija Windows šifrovanih usluga zaobiti ranjivost
.