Ursprüngliches Veröffentlichungsdatum: 21. November 2025
KB-ID: 5073121
Einführung
Die Windows-Updates gegen CVE-2024-30098 vom 14. Oktober 2025 haben Probleme in Anwendungen aufgedeckt, bei denen der Code nicht richtig identifiziert, welcher Anbieter den Schlüssel für Zertifikate verwaltet, die von einem intelligenten Karte an den Zertifikatspeicher weitergegeben werden. Diese Falsche Identifizierung kann dazu führen, dass kryptografische Vorgänge in bestimmten Szenarien fehlschlagen. Dieses Dokument enthält Anleitungen für Anwendungsentwickler, wie Sie den richtigen Handler erkennen und diese Probleme beheben können.
Zusammenfassung
Wenn Zertifikate von einem intelligenten Karte an den Windows-Zertifikatspeicher weitergegeben werden, kann der Weitergabeprozess einen der folgenden Anbieter verwenden:
-
Legacy Cryptographic Service Provider (CSP), der auf der älteren Kryptografieanwendungsprogrammierschnittstelle (Cryptographic Application Programming Interface, CAPI) basiert
-
Key Storage Provider (KSP), der auf der Kryptografie-API: Next Generation (CNG) basiert. Dies war der moderne Ersatz, der in Windows Vista eingeführt wurde.
Vor dem Fix für CVE-2024-30098 verwendete der Weitergabealgorithmus CSP für RSA-basierte Zertifikate und KSP für alle anderen Zertifikate. Dieser Ansatz war unsicher, da CAPI keine modernen kryptografischen Algorithmen unterstützt, was die Sicherheitsfunktionen einschränkt.
Mit den Sicherheitsupdates vom 14. Oktober 2025 wurde diese spezielle Behandlung entfernt, und jetzt wird KSP für alle Zertifikate verwendet.
Bestimmen des zu verwendenden API-Satzes
Anwendungen, die auf RSA-Schlüsseln basieren, die von CSP verwaltet werden, können fehlschlagen, wenn der Schlüssel von KSP verwaltet wird. Um dies zu beheben, müssen Anwendungen erkennen, welcher Anbieter den Schlüssel verwaltet, und den entsprechenden API-Satz (CAPI oder CNG) verwenden.
Wichtig: Verwenden Sie nicht die Funktionen CryptAcquireContextW oder CryptAcquireContextA , da die API veraltet ist. Verwenden Sie stattdessen die Funktion CryptAcquireCertificatePrivateKey .
CryptAcquireCertificatePrivateKey-Funktion
Beim Aufrufen von CryptAcquireCertificatePrivateKey wird ein Handle (phCryptProvOrNCryptKey) vom Typ HCRYPTPROV_OR_NCRYPT_KEY_HANDLE zurückgegeben. Dieses Handle kann wie folgt sein:
-
CSP-Handle (HCRYPTPROV):Verwenden Sie CryptoAPI-Funktionen wie CryptSignHash.
-
CNG-Handle (NCRYPT_KEY_HANDLE): Verwenden Sie CNG-Funktionen wie NCryptSignHash.
Hinweis: Wenn Sie CryptAcquireCertificatePrivateKey aufrufen, müssen Sie die CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG in den dwFlags-Parameter einschließen.
Um den Handletyp zu bestimmen, überprüfen Sie den PdwKeySpec-Wert :
|
pdwKeySpec-Wert |
Zu verwendende Kryptografie-API |
|
AT_KEYEXCHANGE oder AT_SIGNATURE |
CAPI |
|
CERT_NCRYPT_KEY_SPEC |
CNG |
Problemumgehung
Für Kunden, die von der Erzwingung dieser Änderung betroffen sind, ist eine vorübergehende Problemumgehung verfügbar. Ein temporärer Registrierungsschlüssel ist verfügbar, um das Verhalten vom Erzwingungsmodus in den Überwachungsmodus zu wechseln.
Wichtig: Die Unterstützung für diesen Registrierungsschlüssel wird in den Updates vom April 2026 entfernt.
|
Registrierungspfad |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais |
|
Type |
REG_DWORD |
|
Wertname |
DisableCapiOverrideForRSA |
|
Wertdaten |
|
Referenzmaterial
Schlüsselspeicherung und -abruf
CryptAcquireCertificatePrivateKey-Funktion (wincrypt.h)
.