تاريخ النشر الأصلي: 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 |
|
القيمة |
|
المراجع
دالة CryptAcquireCertificatePrivateKey (wincrypt.h)
CVE-2024-30098 | تجاوز ثغرة أمنية في ميزة أمان خدمات التشفير في Windows
.