
ماسح سريع لـ SSL/TLS يكتشف مجموعات التشفير المدعومة والبروتوكولات والثغرات الأمنية (Heartbleed, POODLE, CRIME) مع تحليل سلسلة الشهادات وتعداد تبادل المفاتيح.
تم إصدار sslscan الإصدار 2. يتضمن ذلك إعادة كتابة كبيرة لرمز المسح الخلفي، مما يعني أنه لم يعد معتمداً على إصدار OpenSSL للعديد من الفحوصات. وهذا يعني أنه من الممكن دعم البروتوكولات القديمة (SSLv2 و SSLv3)، بالإضافة إلى دعم TLSv1.3 - بغض النظر عن إصدار OpenSSL الذي تم تجميعه ضده.
أصبح هذا ممكناً إلى حد كبير بفضل عمل jtesta، الذي كان مسؤولاً عن معظم إعادة كتابة الخلفية.
تشمل التغييرات الرئيسية الأخرى:
--http، لأنه كان معطلاً وذو استخدام قليل جداً من البداية.تم إجراء تغيير قد يكون مكسوراً لمخرجات XML في الإصدار 2.0.0-beta4. سابقاً، كان يمكن إرجاع عدة عناصر <certificate> (واحد افتراضياً، وثانٍ إذا تم استخدام --show-certificate).
التغييرات الرئيسية هي:
<certificates> سيحتوي على عناصر <certificate>.<certificate> لها سمة type جديدة، والتي يمكن أن تكون إما:
short للمخرجات الافتراضية.full عند استخدام --show-certificate.<signature-algorithm> في <certificate> يحتوي على البادئة "Signature Algorithm:" أو المسافات والسطر الجديد.إذا كنت تستخدم مخرجات XML، فقد تحتاج إلى إجراء تغييرات على المحلل الخاص بك.
هذا فرع من إصدار ioerror من sslscan (الذي تم تضمين ملف README الأصلي له أدناه) من قبل rbsec ([email protected]).
التغييرات الرئيسية هي كما يلي:
--show-certificate).--failed).--ipv6).--no-compression).--no-ciphersuites.--no-colour.--no-heartbleed).--rdp (بفضل skettler).--sleep للتوقف بين الطلبات.يوصى بتجاهل تثبيت OpenSSL للنظام والبناء بشكل ثابت ضد نسختك الخاصة. على الرغم من أن ذلك يؤدي إلى ثنائي sslscan أثقل (حجم الملف، استهلاك الذاكرة، إلخ)، إلا أنه يسمح ببعض الفحوصات الإضافية مثل ضغط TLS. لاحظ أنه اعتباراً من إصدار sslscan 2.2.0، فإن الحد الأدنى لإصدار OpenSSL المطلوب من قبل sslscan هو 3.5.0 (LTS)، لذا إذا كان توزيعك يشحن إصداراً أقدم، فلن يعمل البناء ضده، وسيتعين عليك القيام ببناء ثابت.
لتجميع نسختك الخاصة من OpenSSL، ستحتاج غالباً إلى تثبيت تبعيات بناء OpenSSL. يمكن استخدام الأوامر أدناه للقيام بذلك على Debian.
apt install git zlib1g-dev make gcc
ثم قم بتشغيل
make static
سيقوم هذا باستنساخ مستودع OpenSSL، وتكوين/تجميع/اختبار OpenSSL قبل تجميع sslscan.
يرجى الملاحظة: افتراضياً، يتم تجميع OpenSSL مع gcc دون تخصيص إضافي. للتجميع مع clang، قم بتثبيت تبعيات البناء باستخدام الأوامر أدناه.
apt install git zlib1g-dev make clang
ثم قم بتشغيل
make static CC=clang
يمكنك التحقق مما إذا كان لديك إصدار OpenSSL مرتبط بشكل ثابت، عن طريق التحقق مما إذا كانت النسخة المعروضة بواسطة sslscan --version تحتوي على اللاحقة -static.
تأكد من أن تثبيت Docker المحلي لديك يعمل، ثم قم ببناء الحاوية باستخدام:
make docker
أو يدوياً باستخدام:
docker build -t sslscan:sslscan .
يمكنك بعد ذلك تشغيل sslscan باستخدام:
docker run --rm -ti sslscan:sslscan --help
بفضل تصحيح من jtesta، أصبح بالإمكان الآن تجميع sslscan على ويندوز. يمكن القيام بذلك إما محلياً أو عن طريق التجميع المتقاطع من لينكس. راجع INSTALL للحصول على التعليمات.
لاحظ أن sslscan كتب أصلاً للينكس، ولم يتم اختباره بشكل موسع على ويندوز. لذلك، يجب اعتبار إصدار ويندوز تجريبياً.
الملفات الثنائية المجمعة مسبقاً عبر التجميع المتقاطع متاحة على صفحة إصدارات GitHub.
هناك دعم تجريبي للبناء الثابت على macOS (المعروف سابقاً باسم OS X)، ومع ذلك يجب اعتبار هذا غير مدعوم. قد تحتاج إلى تثبيت أي تبعيات مطلوبة لتجميع OpenSSL من المصدر على macOS (المعروف سابقاً باسم OS X). بمجرد القيام بذلك، قم بتشغيل:
make static
هذا فرع من sslscan.c لدعم STARTTLS بشكل أفضل.
الصفحة الرئيسية الأصلية لـ sslscan هي:
http://www.titania.co.uk
تم كتابة sslscan أصلاً بواسطة:
Ian Ventura-Whiting
الصفحة الرئيسية الحالية لهذا الفرع (حتى يتم دمج التصحيح النهائي في upstream) هي:
http://www.github.com/ioerror/sslscan
معظم إعدادات بروتوكول ما قبل TLS مستوحاة من برنامج OpenSSL s_client.c. الهدف من هذا الفرع هو في النهاية الاندماج مع المشروع الأصلي بعد أن يصبح إعداد STARTTLS مصقولاً.
بعض كود إعداد OpenSSL تم استعارته من برنامج Tor Project's Tor. وبالتالي فمن المحتمل أن يكون من المناسب الامتثال لترخيص BSD بالقول: Copyright (c) 2007-2010, The Tor Project, Inc.
--no-preferred.--show-client-cas.--no-cipher-details.--cipher-details.--starttls-ldap.--sni-name (بفضل Ken).--iana-names.--show-certificates.