إصدار OpenSSH 8.5

بعد خمسة أشهر من التطوير، تم تقديم إصدار OpenSSH 8.5، وهو تطبيق مفتوح للعميل والخادم للعمل عبر بروتوكولي SSH 2.0 وSFTP.

ذكرنا مطورو OpenSSH بإيقاف تشغيل الخوارزميات القادمة باستخدام تجزئة SHA-1 بسبب زيادة كفاءة هجمات الاصطدام ببادئة معينة (تقدر تكلفة اختيار الاصطدام بحوالي 50 ألف دولار). في أحد الإصدارات القادمة، يخططون لتعطيل القدرة على استخدام خوارزمية التوقيع الرقمي للمفتاح العام "ssh-rsa" افتراضيًا، والتي تم ذكرها في RFC الأصلي لبروتوكول SSH ولا تزال منتشرة على نطاق واسع في الممارسة العملية.

لاختبار استخدام ssh-rsa على أنظمتك، يمكنك تجربة الاتصال عبر ssh باستخدام خيار "-oHostKeyAlgorithms=-ssh-rsa". وفي الوقت نفسه، لا يعني تعطيل التوقيعات الرقمية "ssh-rsa" افتراضيًا التخلي الكامل عن استخدام مفاتيح RSA، حيث يسمح بروتوكول SSH، بالإضافة إلى SHA-1، باستخدام خوارزميات حساب التجزئة الأخرى. على وجه الخصوص، بالإضافة إلى "ssh-rsa"، سيظل من الممكن استخدام حزم "rsa-sha2-256" (RSA/SHA256) و"rsa-sha2-512" (RSA/SHA512).

لتسهيل الانتقال إلى خوارزميات جديدة، تم تمكين إعداد UpdateHostKeys في OpenSSH 8.5 افتراضيًا، مما يسمح للعملاء بالتبديل تلقائيًا إلى خوارزميات أكثر موثوقية. باستخدام هذا الإعداد، يتم تمكين ملحق بروتوكول خاص “[البريد الإلكتروني محمي]"، مما يسمح للخادم، بعد المصادقة، بإبلاغ العميل بجميع مفاتيح المضيف المتاحة. يمكن للعميل أن يعكس هذه المفاتيح في ملف ~/.ssh/known_hosts الخاص به، مما يسمح بتحديث مفاتيح المضيف ويجعل من السهل تغيير المفاتيح على الخادم.

يقتصر استخدام UpdateHostKeys على عدة تحذيرات قد تتم إزالتها في المستقبل: يجب الإشارة إلى المفتاح في UserKnownHostsFile وعدم استخدامه في GlobalKnownHostsFile؛ يجب أن يكون المفتاح موجوداً تحت اسم واحد فقط؛ لا ينبغي استخدام شهادة مفتاح المضيف؛ لا ينبغي استخدام الأقنعة فيknown_hosts حسب اسم المضيف؛ يجب تعطيل إعداد VerifyHostKeyDNS؛ يجب أن تكون المعلمة UserKnownHostsFile نشطة.

تتضمن الخوارزميات الموصى بها للترحيل rsa-sha2-256/512 استنادًا إلى RFC8332 RSA SHA-2 (مدعوم منذ OpenSSH 7.2 ويتم استخدامه افتراضيًا)، وssh-ed25519 (مدعوم منذ OpenSSH 6.5)، وecdsa-sha2-nistp256/384/521 المستند إلى على RFC5656 ECDSA (مدعوم منذ OpenSSH 5.7).

تغييرات أخرى:

  • التغييرات الأمنية:
    • تم إصلاح الثغرة الأمنية الناجمة عن إعادة تحرير منطقة ذاكرة محررة بالفعل (خالية مزدوجة) في وكيل ssh. كانت المشكلة موجودة منذ إصدار OpenSSH 8.2 ويمكن استغلالها إذا كان لدى المهاجم حق الوصول إلى مقبس وكيل ssh على النظام المحلي. ما يجعل الاستغلال أكثر صعوبة هو أن الجذر والمستخدم الأصلي فقط لديهما حق الوصول إلى المقبس. سيناريو الهجوم الأكثر احتمالاً هو إعادة توجيه الوكيل إلى حساب يتحكم فيه المهاجم، أو إلى مضيف حيث يتمتع المهاجم بإمكانية الوصول إلى الجذر.
    • أضاف sshd حماية ضد تمرير معلمات كبيرة جدًا مع اسم المستخدم إلى نظام PAM الفرعي، مما يسمح لك بحظر الثغرات الأمنية في وحدات نظام PAM (وحدة المصادقة القابلة للتوصيل). على سبيل المثال، يمنع التغيير استخدام sshd كمتجه لاستغلال ثغرة أمنية جذر تم اكتشافها مؤخرًا في Solaris (CVE-2020-14871).
  • من المحتمل كسر تغييرات التوافق:
    • في ssh وsshd، تمت إعادة تصميم طريقة تجريبية لتبادل المفاتيح بحيث تكون مقاومة للتخمين على الكمبيوتر الكمي. تعد أجهزة الكمبيوتر الكمومية أسرع بشكل جذري في حل مشكلة تحليل الأعداد الطبيعية إلى عوامل أولية، والتي تكمن وراء خوارزميات التشفير غير المتماثلة الحديثة ولا يمكن حلها بشكل فعال على المعالجات الكلاسيكية. تعتمد الطريقة المستخدمة على خوارزمية NTRU Prime، التي تم تطويرها لأنظمة التشفير ما بعد الكم، وطريقة تبادل مفاتيح المنحنى الإهليلجي X25519. بدلاً من [البريد الإلكتروني محمي] تم تحديد الطريقة الآن على أنها [البريد الإلكتروني محمي] (تم استبدال خوارزمية sntrup4591761 بخوارزمية sntrup761).
    • في ssh وsshd، تم تغيير الترتيب الذي يتم به الإعلان عن خوارزميات التوقيع الرقمي المدعومة. يتم الآن تقديم ED25519 أولاً بدلاً من ECDSA.
    • في ssh وsshd، يتم الآن تعيين جودة معلمات الخدمة TOS/DSCP للجلسات التفاعلية قبل إنشاء اتصال TCP.
    • لقد توقف دعم التشفير في ssh وsshd [البريد الإلكتروني محمي]، وهو مطابق لـ aes256-cbc وتم استخدامه قبل الموافقة على RFC-4253.
    • بشكل افتراضي، يتم تعطيل معلمة CheckHostIP، وتكون فائدتها ضئيلة، ولكن استخدامها يؤدي إلى تعقيد عملية تدوير المفاتيح بشكل كبير للمضيفين خلف موازنات التحميل.
  • تمت إضافة إعدادات PerSourceMaxStartups وPerSourceNetBlockSize إلى sshd للحد من كثافة تشغيل المعالجات بناءً على عنوان العميل. تسمح لك هذه المعلمات بالتحكم بشكل أكثر دقة في الحد الأقصى لعمليات إطلاق العملية، مقارنةً بإعداد MaxStartups العام.
  • تمت إضافة إعداد LogVerbose جديد إلى ssh وsshd، مما يسمح لك برفع مستوى معلومات تصحيح الأخطاء الملقاة في السجل بقوة، مع القدرة على التصفية حسب القوالب والوظائف والملفات.
  • في ssh، عند قبول مفتاح مضيف جديد، يتم عرض جميع أسماء المضيفين وعناوين IP المرتبطة بالمفتاح.
  • يسمح ssh للخيار UserKnownHostsFile=none بتعطيل استخدام ملفknown_hosts عند تحديد مفاتيح المضيف.
  • تمت إضافة إعداد KnownHostsCommand إلى ssh_config لـ ssh، مما يسمح لك بالحصول على بياناتknown_hosts من مخرجات الأمر المحدد.
  • تمت إضافة خيار PermitRemoteOpen إلى ssh_config لـ ssh للسماح لك بتقييد الوجهة عند استخدام خيار RemoteForward مع SOCKS.
  • في ssh لمفاتيح FIDO، يتم تقديم طلب PIN متكرر في حالة فشل عملية التوقيع الرقمي بسبب رقم PIN غير صحيح وعدم مطالبة المستخدم بإدخال رقم PIN (على سبيل المثال، عندما لا يمكن الحصول على البيانات البيومترية الصحيحة و عاد الجهاز إلى إدخال رقم التعريف الشخصي يدويًا).
  • يضيف sshd دعمًا لاستدعاءات النظام الإضافية إلى آلية عزل العملية المستندة إلى seccomp-bpf على Linux.
  • تم تحديث الأداة المساعدة contrib/ssh-copy-id.

المصدر: opennet.ru

إضافة تعليق