
أداة للتحقق مما إذا كان عميل PGP متأثرًا بـ CVE-2021-33560
هذه أداة للتحقق مما إذا كان عميل OpenPGP الخاص بك متأثرًا بـ CVE-2021-33560.
تكشف هذه الثغرة الأمنية عن إمكانية استرداد النص العادي للرسائل التي تشفرها إلى بعض المفاتيح الفرعية ElGamal. التفاصيل الفنية للثغرة موصوفة في هذا المقال في المدونة وهذا المقال البحثي.
تختبر هذه الأداة ما إذا كان عميل OpenPGP الخاص بك متأثرًا عند العمل كمرسل. وهي لا تخبر ما إذا كانت مفاتيحك الفرعية ElGamal متأثرة عند العمل كمستلم، وهذا للأسف فحص ثقيل حسابيًا لا يمكن إجراؤه إلا بواسطة خبير. إذا كنت تستخدم مفاتيح ElGamal الفرعية وتهتم بأمانها، اقرأ الأسئلة الشائعة لدينا.
تحتاج إلى إصدار بايثون 3.8 أو أعلى.
تعمل هذه الأداة عن طريق تشفير رسالة إلى مفتاح فرعي ElGamal مصمم خصيصًا، ثم تحليل النص المشفر الناتج للبحث عن الثغرة.
الطريقة التي تستورد بها المفتاح العام وتشفير إليه تعتمد على عميل OpenPGP الخاص بك. في المثال أدناه، نستخدم GPG (الذي تتأثر مكتبة libgcrypt الخاصة به حتى الإصدارين 1.8.8 و 1.9.3)، ولكن سيتعين عليك تكييف الخطوات لتناسب عميلك الخاص.
استنسخ هذا المستودع وادخل إليه
git clone https://github.com/IBM/PGP-client-checker-CVE-2021-33560.git
cd PGP-client-checker-CVE-2021-33560
استورد المفتاح العام (تعتمد هذه الخطوة على عميلك)
gpg --import key.asc
شفر رسالة (مثل "Hi") إلى المفتاح المستورد (تعتمد هذه الخطوة على عميلك)
echo "Hi" | gpg -e --always-trust --armor -r [email protected] --output ciphertext.asc
شغل الأداة على النص المشفر الذي تم الحصول عليه
./sec-check.py ciphertext.asc
وتفقد المخرجات. إذا كان عميلك متأثرًا، فقد تحصل على رسالة مشابهة لهذه:
Inspecting ./ciphertext.asc
Ephemeral secret bit length: 342
**Your client is affected by CVE-2021-33560!**
Your client seems to be based on an old version of libgcrypt. If a
security patch for your client is available, install it!
لمعرفة المزيد عن الثغرة، اقرأ مقالنا التقني في المدونة.