Izvorni datum objave: 21. studenog 2025.
KB ID: 5073121
Uvod
14. listopada 2025. Windows ažurira adresi CVE-2024-30098 otkrio je probleme u aplikacijama u kojima kod ne identificira ispravno koji davatelj upravlja ključem za certifikate koji se propagiraju s pametne kartice u spremište certifikata. To neodatovanje može uzrokovati neuspjeh kriptografskih operacija u određenim scenarijima. Ovaj dokument nudi smjernice razvojnim inženjerima aplikacija o otkrivanju odgovarajućeg rukovatelja i rješavanju tih problema.
Sažetak
Kada se certifikati s pametne kartice prenesite u Windows spremište certifikata, postupak propagacije može koristiti bilo kojeg od sljedećih davatelja usluga:
-
Naslijeđeni davatelj kriptografskih usluga (CSP) koji se oslanja na naslijeđeno kriptografsko sučelje za programiranje aplikacija (CAPI)
-
Davatelj pohrane ključeva (KSP) koji se oslanja na API za kriptografiju: sljedeću generaciju (CNG). To je moderna zamjena uvedena u sustavu Windows Vista.
Prije popravka za CVE-2024-30098 algoritam propagacije koristio je CSP za certifikate utemeljene na RSA-u i KSP za sve ostale. Taj je pristup bio nesiguran jer CAPI ne podržava moderne kriptografske algoritme, ograničavajući sigurnosne mogućnosti.
Sigurnosna ažuriranja uklonjena su 14. listopada 2025., a sada se KSP koristi za sve certifikate.
Određivanje skupa API-ja koji će se koristiti
Aplikacije koje se koriste RSA ključevima kojima upravlja CSP možda neće uspjeti kada ključem upravlja KSP. Da bi riješili taj problem, aplikacije moraju otkriti koji davatelj upravlja ključem i koristiti odgovarajući skup API-ja (CAPI ili CNG).
Važno: Nemojte koristiti funkcije CryptAcquireContextW ili CryptAcquireContextA jer je API zastario. Umjesto toga koristite funkciju CryptAcquireCertificatePrivateKey .
CryptAcquireCertificatePrivateKey
Pozivanje ključa CryptAcquireCertificatePrivateKey vraća ručicu (phCryptProvOrNCryptKey) vrste HCRYPTPROV_OR_NCRYPT_KEY_HANDLE. Ova ručica može biti:
-
CSP ručica (HCRYPTPROV): koristite CryptoAPI funkcije kao što je CryptSignHash.
-
CNG ručica (NCRYPT_KEY_HANDLE): koristite CNG funkcije kao što je NCryptSignHash.
Napomena: Prilikom pozivanja ključa CryptAcquireCertificatePrivateKey obavezno uvrstite CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG u parametar dwFlags.
Da biste odredili vrstu ručice, provjerite vrijednost pdwKeySpec :
|
pdwKeySpec vrijednost |
Kripto API za korištenje |
|
AT_KEYEXCHANGE ili AT_SIGNATURE |
Capi |
|
CERT_NCRYPT_KEY_SPEC |
CNG |
Zaobilazno rješenje
Privremeni rad dostupan je korisnicima na koje utječe provođenje te promjene. Privremeni ključ registra dostupan je za prebacivanje ponašanja iz provođenja unačin nadzora .
Važno: Podrška za taj ključ registra bit će uklonjena u ažuriranjima iz travnja 2026.
|
Put registra |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais |
|
Vrsta |
REG_DWORD |
|
Naziv vrijednosti |
DisableCapiOverrideForRSA |
|
Podaci vrijednosti |
|
Reference
Funkcija CryptAcquireCertificatePrivateKey (wincrypt.h)
.