ينطبق على
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

تاريخ النشر الأصلي: 21 نوفمبر 2025

معرف KB: 5073121

مقدمة

كشفت تحديثات Windows في 14 أكتوبر 2025 التي تتناول CVE-2024-30098 عن مشكلات في التطبيقات حيث لا تحدد التعليمات البرمجية بشكل صحيح الموفر الذي يدير مفتاح الشهادات التي تم نشرها من بطاقة ذكية إلى مخزن الشهادات. يمكن أن يتسبب هذا الخطأ في فشل عمليات التشفير في سيناريوهات معينة. يوفر هذا المستند إرشادات لمطوري التطبيقات حول كيفية الكشف عن المعالج الصحيح وحل هذه المشكلات.

الملخص

عند نشر الشهادات من بطاقة ذكية إلى مخزن شهادات Windows، يمكن لعملية النشر استخدام أي من الموفرين التاليين:

  • موفر خدمة التشفير القديم (CSP)، والذي يعتمد على واجهة برمجة تطبيقات التشفير القديمة (CAPI)

  • موفر تخزين المفاتيح (KSP)، الذي يعتمد على واجهة برمجة تطبيقات التشفير: الجيل التالي (CNG). كان هذا هو البديل الحديث الذي تم تقديمه في Windows Vista.

قبل إصلاح CVE-2024-30098، استخدمت خوارزمية الانتشار CSP للشهادات المستندة إلى RSA وKSP لجميع الآخرين. كان هذا النهج غير آمن لأن CAPI لا يدعم خوارزميات التشفير الحديثة، ما يحد من قدرات الأمان.

في 14 أكتوبر 2025، أزالت تحديثات الأمان هذه المعالجة الخاصة والآن يتم استخدام KSP لجميع الشهادات.

تحديد مجموعة واجهة برمجة التطبيقات لاستخدامها

قد تفشل التطبيقات التي تعتمد على مفاتيح RSA التي تتم إدارتها بواسطة CSP عند إدارة المفتاح بواسطة KSP. لحل هذه المشكلة، يجب على التطبيقات اكتشاف الموفر الذي يدير المفتاح واستخدام مجموعة واجهة برمجة التطبيقات المقابلة (CAPI أو CNG).

هام: لا تستخدم دالات CryptAcquireContextW أو CryptAcquireContextA حيث يتم إهمال واجهة برمجة التطبيقات. بدلا من ذلك، استخدم الدالة CryptAcquireCertificatePrivateKey .

دالة CryptAcquireCertificatePrivateKey

يؤدي استدعاء CryptAcquireCertificatePrivateKey إلى إرجاع مقبض (phCryptProvOrNCryptKey) من النوع HCRYPTPROV_OR_NCRYPT_KEY_HANDLE. يمكن أن يكون هذا المقبض:

  • مقبض CSP (HCRYPTPROV): استخدم وظائف CryptoAPI مثل CryptSignHash.

  • مقبض CNG (NCRYPT_KEY_HANDLE): استخدم وظائف CNG مثل NCryptSignHash.

ملاحظة: عند استدعاء CryptAcquireCertificatePrivateKey، تأكد من تضمين CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG في المعلمة dwFlags.

لتحديد نوع المقبض، تحقق من قيمة pdwKeySpec :

قيمة pdwKeySpec

واجهة برمجة تطبيقات التشفير المراد استخدامها

AT_KEYEXCHANGE أو AT_SIGNATURE

CAPI

CERT_NCRYPT_KEY_SPEC

CNG

الحل البديل

يتوفر حل مؤقت للعملاء المتأثرين بتنفيذ هذا التغيير. يتوفر مفتاح تسجيل مؤقت لتبديل السلوك من وضع الإنفاذ إلى وضع التدقيق .

هام: ستتم إزالة دعم مفتاح التسجيل هذا في تحديثات أبريل 2026.

مسار التسجيل

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais

النوع

REG_DWORD

اسم القيمة

DisableCapiOverrideForRSA

القيمة

  • 1 = تمكين الإصلاح

  • تمت إزالة 0 أو مفتاح = تعطيل الإصلاح - التبديل إلى وضع التدقيق

المراجع

تخزين المفاتيح واستردادها

دالة CryptAcquireCertificatePrivateKey (wincrypt.h)

CVE-2024-30098 | تجاوز ثغرة أمنية في ميزة أمان خدمات التشفير في Windows

.

هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.