
badkeys v0.0.20
أداة للعثور على الثغرات الأمنية الشائعة في المفاتيح العامة للتشفير.
badkeys
أداة ومكتبة لفحص المفاتيح العامة المشفّرة بحثاً عن ثغرات معروفة
ما هو؟
badkeys يفحص المفاتيح العامة في صيغ متعددة بحثاً عن ثغرات معروفة. يمكن العثور على نسخة ويب على badkeys.info.
التثبيت
يمكن تثبيت badkeys عبر pip:
pip3 install badkeys
قد ترغب في استخدام بيئة افتراضية. للحصول على تفاصيل حول خيارات التثبيت المختلفة، يرجى الاطلاع على وثائق Python الرسمية. بدلاً من ذلك، يمكنك استدعاء ./badkeys-cli مباشرة من مستودع git.
يمكنك العثور على نظرة عامة حول حزم badkeys لتوزيعات Linux وأنظمة التشغيل الأخرى على Repology.
الاستخدام
قبل استخدام badkeys، تحتاج إلى تنزيل بيانات القائمة المحظورة:
badkeys --update-bl
بعد ذلك، يمكنك استدعاء badkeys وتمرير ملفات تحتوي على مفاتيح عامة مشفّرة كمعامل:
badkeys test.crt my.key
سيحاول تلقائياً اكتشاف صيغة الملف. الصيغ المدعومة هي المفاتيح العامة والخاصة بصيغة PEM (كل من PKCS #1 وPKCS #8)، وشهادات X.509، وطلبات توقيع الشهادات (CSRs)، والمفاتيح العامة لـ SSH. يمكنك العثور على بعض المفاتيح الاختبارية في دليل tests/data.
بشكل افتراضي، سيعرض badkeys معلومات حول المفاتيح الضعيفة فقط، مما يعني عدم إنشاء أي مخرجات إذا لم يتم العثور على ثغرات. المعامل -a ينشئ مخرجات لجميع المفاتيح.
ستعيد أداة سطر الأوامر القيمة 0 إذا تم فحص المفاتيح دون حدوث أخطاء ودون اكتشاف ثغرات. وتعيد 1 لأخطاء التطبيق، و2 إذا تعذّر فحص أي مدخل (أخطاء المحلل، أنواع مفاتيح غير مدعومة، ملفات بدون مفتاح)، و4 إذا تم العثور على مفتاح ضعيف. يمكن دمج رموز الإرجاع كقناع بتات. (مثال: 2|4=6 تشير إلى أن بعض المفاتيح كانت ضعيفة وبعضها تعذّر فحصه).
الفحص
يمكن لـ badkeys فحص مضيفات SSH وTLS والتحقق تلقائياً من مفاتيحها العامة. يمكن تفعيل ذلك باستخدام المعاملين -s (SSH) و_-t_ (TLS). بشكل افتراضي، سيتم فحص SSH على المنفذ 22 وسيتم فحص TLS على عدة منافذ للبروتوكولات الشائعة (https/443، smtps/465، ldaps/636، ftps/990، imaps/993، pop3s/995 و8443، وهو منفذ يُستخدم عادةً كمنفذ https غير قياسي).
يمكن تكوين منافذ بديلة باستخدام --tls-ports و_--ssh-ports_.
يمكن الجمع بين فحص TLS وSSH:
badkeys -ts example.org
لاحظ أن أوضاع الفحص لها قيود. غالباً ما يكون من الأفضل استخدام أدوات أخرى لجمع مفاتيح TLS/SSH وفحصها محلياً باستخدام badkeys.
يتطلب فحص SSH مكتبة paramiko كاعتماد إضافي.
لا يمكن لفحص TLS اكتشاف شهادات متعددة على مضيف واحد (مثل ECDSA وRSA). وهذا قيد في دالة ssl.get_server_certificate() الخاصة بـ Python.
وحدة Python وواجهة برمجة التطبيقات
يمكن أيضاً استخدام badkeys كوحدة Python. ومع ذلك، فإن البرنامج حالياً في مرحلة تجريبية وقد تتغير واجهة البرمجة بانتظام.
حول
تمت كتابة badkeys بواسطة Hanno Böck.
تم تمويل هذا العمل مبدئياً في عام 2022 من قبل Industriens Fond عبر مشروع CIDI (إنترنت الأشياء الآمن سيبرانياً في الصناعة الدنماركية) ومركز أمن المعلومات والثقة (CISAT) في جامعة تكنولوجيا المعلومات في كوبنهاغن، الدنمارك. وفي 2025/2026، تم دعم badkeys من قبل صندوق NGI0 الأساسي التابع لـ NLnet.