Opprinnelig publiseringsdato: 21. november 2025 kl.
KB-ID: 5073121
|
Endre dato |
Endre beskrivelse |
|
12. februar 2026 kl. |
|
|
11. desember 2025 |
|
Innføring
Oktober 14, 2025, Windows-oppdateringer adressering CVE-2024-30098 avslørte problemer i programmer der koden ikke korrekt identifisere hvilken leverandør administrerer nøkkelen for sertifikater overført fra et smartkort til sertifikatlageret. Denne feilidentifiseringen kan føre til at kryptografiske operasjoner mislykkes i enkelte scenarioer. Dette dokumentet gir veiledning for programutviklere om hvordan de oppdager riktig behandling og løser disse problemene.
Sammendrag
Når sertifikater overføres fra et smartkort til Windows-sertifikatlageret, kan overføringsprosessen bruke én av følgende leverandører:
-
Legacy Cryptographic Service Provider (CSP), som er avhengig av det eldre kryptografiske programmeringsgrensesnittet (CAPI)
-
Key Storage Provider (KSP), som er avhengig av kryptografi-API: Neste generasjon (CNG). Dette var den moderne erstatningen som ble introdusert i Windows Vista.
Før løsningen for CVE-2024-30098 brukte overføringsalgoritmen CSP for RSA-baserte sertifikater og KSP for alle andre. Denne tilnærmingen var usikker fordi CAPI ikke støtter moderne kryptografiske algoritmer, og begrenser sikkerhetsfunksjoner.
14. oktober 2025 fjernet sikkerhetsoppdateringer denne spesielle håndteringen, og nå brukes KSP for alle sertifikater.
Fastslå API-et som skal brukes
Programmer som er avhengige av at RSA-nøkler administreres av CSP, kan mislykkes når nøkkelen administreres av KSP. For å løse dette må programmer oppdage hvilken leverandør som administrerer nøkkelen og bruke det tilsvarende API-settet (CAPI eller CNG).
Viktig!: Ikke bruk CryptAcquireContextW - eller CryptAcquireContextA-funksjonene fordi API-en er avskrevet. Bruk i stedet CryptAcquireCertificatePrivateKey-funksjonen .
CryptAcquireCertificatePrivateKey-funksjonen
Kall til CryptAcquireCertificatePrivateKey returnerer et håndtak (phCryptProvOrNCryptKey) av typen HCRYPTPROV_OR_NCRYPT_KEY_HANDLE. Dette håndtaket kan være:
-
CSP-håndtak (HCRYPTPROV): Bruk CryptoAPI-funksjoner som CryptSignHash.
-
CNG-håndtak (NCRYPT_KEY_HANDLE): Bruk CNG-funksjoner som NCryptSignHash.
Obs!: Når du kaller CryptAcquireCertificatePrivateKey, må du huske å inkludere CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG i dwFlags-parameteren.
Hvis du vil finne håndtaktypen, kontrollerer du pdwKeySpec-verdien :
|
pdwKeySpec-verdi |
Krypto-API som skal brukes |
|
AT_KEYEXCHANGE eller AT_SIGNATURE |
CAPI |
|
CERT_NCRYPT_KEY_SPEC |
CNG |
Midlertidig løsning
Et midlertidig arbeid er tilgjengelig for kunder som påvirkes av håndhevelse av denne endringen. En midlertidig registernøkkel er tilgjengelig for å bytte virkemåte fra håndhevelse til overvåkingsmodus .
Viktig: Støtte for denne registernøkkelen fjernes i oppdateringene for februar 2027.
|
Registerbane |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais |
|
Type |
REG_DWORD |
|
Verdinavn |
DisableCapiOverrideForRSA |
|
Verdidata |
1 = aktiver sikkerhetsløsningen (håndhevelsesmodus) 0 eller nøkkel fjernet = deaktiver sikkerhetsløsningen og bytt til overvåkingsmodus |
Kilder
CryptAcquireCertificatePrivateKey-funksjonen (wincrypt.h)
CVE-2024-30098 | Sikkerhetsproblem i Windows Cryptographic Services Security Feature Bypass
.