Eredeti közzététel dátuma: 2025. november 21.
TUDÁSBÁZIS AZONOSÍTÓJA: 5073121
Bevezetés
2025. október 14-én a CVE-2024-30098-ra vonatkozó Windows-frissítések olyan problémákat tártak fel az alkalmazásokban, amelyekben a kód nem tudja helyesen azonosítani, hogy melyik szolgáltató kezeli az intelligens kártyáról a tanúsítványtárolóba propagált tanúsítványok kulcsát. Ez a félrevezetettség bizonyos esetekben a titkosítási műveletek meghiúsulását okozhatja. Ez a dokumentum útmutatást nyújt az alkalmazásfejlesztőknek a megfelelő kezelő észleléséhez és a problémák megoldásához.
Összefoglalás
Amikor a tanúsítványokat intelligens kártyáról a Windows tanúsítványtárolójába propagálja, a propagálási folyamat az alábbi szolgáltatók bármelyikét használhatja:
-
Örökölt titkosítási szolgáltató (CSP), amely az örökölt titkosítási alkalmazásprogramozási felületre (CAPI) támaszkodik
-
Key Storage Provider (KSP), amely a Cryptography API: Next Generation (CNG) api-ra támaszkodik. Ez volt a Windows Vista rendszerben bevezetett modern csere.
A CVE-2024-30098 javítása előtt a propagálási algoritmus CSP-t használt az RSA-alapú tanúsítványokhoz és a KSP-t minden máshoz. Ez a megközelítés nem volt biztonságos, mert a CAPI nem támogatja a modern titkosítási algoritmusokat, ami korlátozza a biztonsági képességeket.
2025. október 14-én a biztonsági frissítések eltávolították ezt a speciális kezelést, és most már a KSP-t használják az összes tanúsítványhoz.
A használni kívánt API-készlet meghatározása
A CSP által felügyelt RSA-kulcsokra támaszkodó alkalmazások meghiúsulhatnak, ha a kulcsot a KSP kezeli. A probléma megoldásához az alkalmazásoknak észlelniük kell, hogy melyik szolgáltató kezeli a kulcsot, és a megfelelő API-készletet (CAPI vagy CNG) kell használniuk.
Fontos: Ne használja a CryptAcquireContextW vagy a CryptAcquireContextA függvényt, mivel az API elavult. Ehelyett használja a CryptAcquireCertificatePrivateKey függvényt .
CryptAcquireCertificatePrivateKey függvény
A CryptAcquireCertificatePrivateKey hívása egy HCRYPTPROV_OR_NCRYPT_KEY_HANDLE típusú leírót (phCryptProvOrNCryptKey) ad vissza. Ez a fogópont a következő lehet:
-
CSP-leíró (HCRYPTPROV): Használjon Olyan CryptoAPI-függvényeket, mint a CryptSignHash.
-
CNG-leíró (NCRYPT_KEY_HANDLE): Használjon olyan CNG-függvényeket, mint az NCryptSignHash.
Megjegyzés: A CryptAcquireCertificatePrivateKey meghívásakor mindenképpen adja meg a CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG a dwFlags paraméterben.
A leíró típusának meghatározásához ellenőrizze a pdwKeySpec értéket:
|
pdwKeySpec érték |
Használandó crypto API |
|
AT_KEYEXCHANGE vagy AT_SIGNATURE |
CAPI |
|
CERT_NCRYPT_KEY_SPEC |
CNG |
Kerülő megoldás
Ideiglenes megkerülő megoldás érhető el azoknak az ügyfeleknek, akikre hatással van a módosítás végrehajtása. Egy ideiglenes beállításkulcs érhető el a viselkedés kényszerítési módról naplózási módra való váltásához.
Fontos: A beállításkulcs támogatása a 2026. áprilisi frissítésekben megszűnik.
|
Beállításjegyzék elérési útja |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais |
|
Type (Típus) |
REG_DWORD |
|
Azonosító neve |
DisableCapiOverrideForRSA |
|
Érték |
|
Hivatkozások
CryptAcquireCertificatePrivateKey függvény (wincrypt.h)
.