Alkuperäinen julkaisupäivä: 21. marraskuuta 2025
KB-tunnus: 5073121
Johdanto
14. lokakuuta 2025 julkaistut Windows-päivitykset, joissa käsitellään CVE-2024-30098-versiota , paljastivat ongelmia sovelluksissa, joissa koodi ei tunnista oikein, mikä palveluntarjoaja hallitsee älykortista varmennesäilöön välitettyjen varmenteiden avainta. Tämä virheellinen tunnistaminen voi aiheuttaa salaustoimintojen epäonnistumisen tietyissä tilanteissa. Tässä asiakirjassa on sovelluskehittäjille ohjeita oikean käsittelytoiminnon tunnistamiseen ja ongelmien ratkaisemiseen.
Yhteenveto
Kun varmenteet välitetään älykortista Windows-varmennesäilöön, välitysprosessi voi käyttää jompaakumpaa seuraavista palveluntarjoajista:
-
Vanha salauspalvelu (CSP), joka perustuu vanhaan salaussovelluksen ohjelmointirajapintaan (CAPI)
-
Avaintallennuspalvelu (KSP), joka perustuu salauksen ohjelmointirajapintaan: Seuraava sukupolvi (CNG). Tämä oli Windows Vistassa esitelty nykyaikainen korvaava versio.
Ennen CVE-2024-30098-korjausta levitysalgoritmi käytti CSP:tä RSA-pohjaisissa varmenteissa ja KSP:tä kaikille muille. Tämä lähestymistapa oli epävarma, koska CAPI ei tue nykyaikaisia salausalgoritmeja, mikä rajoittaa suojausominaisuuksia.
Suojauspäivitykset poistivat tämän erityisen käsittelyn 14. lokakuuta 2025, ja nyt KSP:tä käytetään kaikissa varmenteissa.
Käytettävän ohjelmointirajapinnan määrittäminen
Sovellukset, jotka käyttävät CSP:n hallinnoimia RSA-avaimia, saattavat epäonnistua, kun avainta hallinnoi KSP. Tämän ratkaisemiseksi sovellusten on tunnistettava, mikä palveluntarjoaja hallitsee avainta, ja käytettävä vastaavaa ohjelmointirajapintajoukkoa (CAPI tai CNG).
Tärkeää: Älä käytä CryptAcquireContextW - tai CryptAcquireContextA-funktioita , koska ohjelmointirajapinta on vanhentunut. Käytä sen sijaan CryptAcquireCertificatePrivateKey-funktiota .
CryptAcquireCertificatePrivateKey-funktio
Calling CryptAcquireCertificatePrivateKey palauttaa kahvan (phCryptProvOrNCryptKey) tyypin HCRYPTPROV_OR_NCRYPT_KEY_HANDLE. Tämä kahva voi olla:
-
CSP-kahva (HCRYPTPROV): Käytä CryptoAPI-funktioita, kuten CryptSignHash.
-
CNG-kahva (NCRYPT_KEY_HANDLE): Käytä CNG-funktioita, kuten NCryptSignHash.
Huomautus: Kun kutsut CryptAcquireCertificatePrivateKeytä, muista sisällyttää CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG dwFlags-parametriin.
Voit määrittää kahvan tyypin tarkistamalla pdwKeySpec-arvon :
|
pdwKeySpec-arvo |
Käytettävä salauksen ohjelmointirajapinta |
|
AT_KEYEXCHANGE tai AT_SIGNATURE |
CAPI |
|
CERT_NCRYPT_KEY_SPEC |
CNG |
Vaihtoehtoinen menetelmä
Tilapäinen työ on asiakkaiden käytettävissä, joihin tämän muutoksen täytäntöönpano vaikuttaa. Käytettävissä on tilapäinen rekisteriavain, jonka avulla voit vaihtaa toiminnan pakotuksestavalvontatilaan .
Tärkeää: Tämän rekisteriavaimen tuki poistetaan huhtikuun 2026 päivityksissä.
|
Rekisteripolku |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais |
|
Type (Tyyppi) |
REG_DWORD |
|
Arvon nimi |
DisableCapiOverrideForRSA |
|
Arvon tiedot |
|
Viitteet
Avaintallennustila ja noutaminen
CryptAcquireCertificatePrivateKey-funktio (wincrypt.h)
CVE-2024-30098 | Windowsin salauspalveluiden suojausominaisuuden ohitushaavoittuvuus
.