Původní datum publikování: úterý 21. listopadu 2025
ID znalostní báze: 5073121
Úvod
Aktualizace Windows ze 14. října 2025, které se týkají cve-2024-30098 , odhalily problémy v aplikacích, kdy kód správně neidentifikuje, který poskytovatel spravuje klíč certifikátů šířených z čipové karty do úložiště certifikátů. Tato nesprávná identifikace může v určitých scénářích způsobit selhání kryptografických operací. Tento dokument obsahuje pokyny pro vývojáře aplikací, jak rozpoznat správnou obslužnou rutinu a vyřešit tyto problémy.
Souhrn
Když se certifikáty šíří z čipové karty do úložiště certifikátů Windows, může proces šíření použít některého z následujících zprostředkovatelů:
-
Starší verze CSP (Cryptographic Service Provider), který se spoléhá na starší verzi rozhraní CAPI (Kryptografická aplikace programování)
-
Poskytovatel úložiště klíčů (KSP), který využívá rozhraní API kryptografie: Další generace (CNG). Toto byla moderní náhrada zavedená v systému Windows Vista.
Před opravou CVE-2024-30098 algoritmus šíření používal CSP pro certifikáty založené na RSA a KSP pro všechny ostatní. Tento přístup byl nezabezpečený, protože CAPI nepodporuje moderní kryptografické algoritmy, což omezuje možnosti zabezpečení.
Aktualizace zabezpečení ze 14. října 2025 odebraly toto zvláštní zpracování a teď se používá pro všechny certifikáty KSP.
Určení nastaveného rozhraní API pro použití
Aplikace, které spoléhají na klíče RSA spravované poskytovatelem CSP, můžou selhat, když klíč spravuje KSP. Aby bylo možné tento problém vyřešit, musí aplikace zjistit, který poskytovatel klíč spravuje, a použít odpovídající sadu rozhraní API (CAPI nebo CNG).
Důležité informace: Nepoužívejte funkce CryptAcquireContextW ani CryptAcquireContextA , protože rozhraní API je zastaralé. Místo toho použijte funkci CryptAcquireCertificatePrivateKey .
Funkce CryptAcquireCertificatePrivateKey
Volání CryptAcquireCertificatePrivateKey vrátí popisovač (phCryptProvOrNCryptKey) typu HCRYPTPROV_OR_NCRYPT_KEY_HANDLE. Tento popisovač může být:
-
Popisovač CSP (HCRYPTPROV): Použijte funkce CryptoAPI, jako je CryptSignHash.
-
Popisovač CNG (NCRYPT_KEY_HANDLE):Použijte funkce CNG, jako je NCryptSignHash.
Poznámka: Při volání CryptAcquireCertificatePrivateKey nezapomeňte do parametru dwFlags zahrnout CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG .
Pokud chcete určit typ popisovače, zkontrolujte hodnotu pdwKeySpec :
|
hodnota pdwKeySpec |
Kryptografické rozhraní API, které se má použít |
|
AT_KEYEXCHANGE nebo AT_SIGNATURE |
CAPI |
|
CERT_NCRYPT_KEY_SPEC |
CNG |
Alternativní řešení
Pro zákazníky, na které má vynucování této změny vliv, je k dispozici dočasná obměna. K dispozici je dočasný klíč registru pro přepnutí chování z režimu vynucení do režimu auditování .
Důležité: Podpora tohoto klíče registru bude v aktualizacích z dubna 2026 odebrána.
|
Cesta registru |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais |
|
Type (Typ) |
REG_DWORD |
|
Název hodnoty |
DisableCapiOverrideForRSA |
|
Údaj hodnoty |
|
Reference
Funkce CryptAcquireCertificatePrivateKey (wincrypt.h)
.