適用先
Win 10 Ent LTSB 2016 Win 10 Ent LTSC 2019 Windows 10 IoT Enterprise LTSC 2021 Windows 10, version 22H2, all editions Windows 11 Home and Pro, version 22H2 Windows 11 Enterprise Multi-Session, version 22H2 Windows 11 Enterprise and Education, version 22H2 Windows 11 IoT Enterprise, version 22H2 Windows 11 SE, version 23H2 Windows 11 Home and Pro, version 23H2 Windows 11 Enterprise and Education, version 23H2 Windows 11 Enterprise Multi-Session, version 23H2 Windows 11 version 24H2, all editions Windows 11 version 25H2, all editions Windows Server 2012 ESU Windows Server 2012 R2 ESU Windows Server 2016 Windows Server 2019 Windows Server 2022 Windows Server 2025

元の発行日: 2025 年 11 月 21 日

KB ID: 5073121

概要

2025 年 10 月 14 日、CVE-2024-30098 に対処する Windows 更新プログラムにより、スマート カードから証明書ストアに伝達される証明書のキーを管理しているプロバイダーがコードで正しく識別されないアプリケーションの問題が明らかになっています。 この誤識別により、特定のシナリオで暗号化操作が失敗する可能性があります。 このドキュメントでは、適切なハンドラーを検出し、これらの問題を解決する方法に関するアプリケーション開発者向けのガイダンスを提供します。

概要

スマート カードから Windows 証明書ストアに証明書が伝達される場合、伝達プロセスでは次のいずれかのプロバイダーを使用できます。

  • 従来の暗号化アプリケーション プログラミング インターフェイス (CAPI) に依存するレガシ暗号化サービス プロバイダー (CSP)

  • キー ストレージ プロバイダー (KSP)。これは、暗号化 API: 次世代 (CNG) に依存しています。 これは、Windows Vista で導入された最新の代替品でした。

CVE-2024-30098 の修正前は、伝達アルゴリズムで RSA ベースの証明書に CSP、その他すべてに KSP が使用されていました。 CAPI では最新の暗号化アルゴリズムがサポートされていないため、セキュリティ機能が制限されているため、この方法は安全ではありません。

2025 年 10 月 14 日、セキュリティ更新プログラムによってこの特別な処理が削除され、すべての証明書に KSP が使用されるようになりました。

使用する API セットを決定する

キーが KSP によって管理されている場合、CSP によって管理されている RSA キーに依存するアプリケーションが失敗する可能性があります。 これを解決するには、アプリケーションでキーを管理するプロバイダーを検出し、対応する API セット (CAPI または CNG) を使用する必要があります。

重要: API は非推奨であるため、 CryptAcquireContextW 関数または CryptAcquireContextA 関数は使用しないでください。 代わりに、 CryptAcquireCertificatePrivateKey 関数を 使用します。

CryptAcquireCertificatePrivateKey 関数

CryptAcquireCertificatePrivateKey を呼び出すと、HCRYPTPROV_OR_NCRYPT_KEY_HANDLE型のハンドル (phCryptProvOrNCryptKey) が返されます。 このハンドルは次のとおりです。

  • CSP ハンドル (HCRYPTPROV): CryptSignHash などの CryptoAPI 関数を使用します。

  • CNG ハンドル (NCRYPT_KEY_HANDLE): NCryptSignHash などの CNG 関数を使用します。

注: CryptAcquireCertificatePrivateKey を呼び出す場合は、dwFlags パラメーターに CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG を含める必要があります。

ハンドルの種類を確認するには、pdwKeySpec 値をチェックします。

pdwKeySpec 値

使用する Crypto API

AT_KEYEXCHANGEまたはAT_SIGNATURE

CAPI

CERT_NCRYPT_KEY_SPEC

CNG

回避策

この変更の適用によって影響を受けるお客様は、一時的な回避策を利用できます。 一時レジストリ キーを使用して、動作を 強制 モードから 監査 モードに切り替えることができます。

重要: このレジストリ キーのサポートは、2026 年 4 月の更新プログラムで削除されます。

レジストリ パス

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais

Type

REG_DWORD

値の名前

DisableCapiOverrideForRSA

値のデータ

  • 1 = 修正プログラムを有効にする

  • 0 またはキーが削除された = 修正を無効にする – 監査モードに切り替える

参考資料

キーの保存と取得

CryptAcquireCertificatePrivateKey 関数 (wincrypt.h)

CVE-2024-30098 |Windows 暗号化サービスのセキュリティ機能バイパスの脆弱性

.

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。