
بروتوكول شل سريع وآمن مبني على HTTP/3 وQUIC وTLS 1.3. يدعم OAuth2 وOpenID Connect ومصادقة SSH التقليدية مع إعادة توجيه منفذ UDP وقدرات الخادم المخفي.
[!NOTE] من المحتمل أن يغير SSH3 اسمه. لا يزال بروتوكول اتصال SSH (RFC4254) يعمل فوق HTTP/3 Extended connect، لكن التغييرات المطلوبة ثقيلة وبعيدة جدًا عن فلسفة تطبيقات SSH الشائعة ليتم اعتبارها للتكامل. مسودة المواصفات قد أعيدت تسميتها بالفعل ("Remote Terminals over HTTP/3")، لكننا نحتاج بعض الوقت للخروج باسم دائم لطيف.
SSH3 هو إعادة نظر كاملة لبروتوكول SSH، حيث يربط دلالاته فوق آليات HTTP. إنه ناتج عن عملنا البحثي ونحن (الباحثون) اقترحناه مؤخرًا كـ مسودة إنترنت (draft-michel-remote-terminal-http3-00).
باختصار، يستخدم SSH3 QUIC+TLS1.3 لإنشاء القناة الآمنة وآليات تفويض HTTP لمصادقة المستخدم. من بين أمور أخرى، يتيح SSH3 التحسينات التالية:
[!TIP] هل تريد البدء سريعًا؟ اطلع على كيفية تثبيت SSH3. ستتعلم إعداد خادم SSH3 و استخدام عميل SSH3.
أسرع في إنشاء الجلسة، وليس في الإنتاجية! يقدم SSH3 إنشاء جلسة أسرع بكثير من SSHv2. إنشاء جلسة جديدة باستخدام SSHv2 يمكن أن يستغرق 5 إلى 7 رحلات ذهابًا وإيابًا عبر الشبكة، وهو ما يمكن للمستخدم ملاحظته بسهولة. يحتاج SSH3 فقط إلى 3 رحلات ذهابًا وإيابًا. زمن انتقال ضغطة المفاتيح في جلسة قيد التشغيل يبقى دون تغيير.
SSH3 (أعلى) مقارنة بـ SSHv2 (أسفل) في إنشاء الجلسة مع زمن ping قدره 100ms نحو الخادم.
بينما يحدد SSHv2 بروتوكولاته الخاصة لمصادقة المستخدم وإنشاء القناة الآمنة، يعتمد SSH3 على آليات TLS 1.3 و QUIC و HTTP القوية والمختبرة عبر الزمن. تُستخدم هذه البروتوكولات بالفعل على نطاق واسع لتأمين التطبيقات الحساسة للأمان على الإنترنت مثل التجارة الإلكترونية والخدمات المصرفية عبر الإنترنت.
يطبق SSH3 بالفعل طرق المصادقة الشائعة القائمة على كلمة المرور والمفتاح العام (RSA و EdDSA/ed25519). كما يدعم طرق مصادقة جديدة مثل OAuth 2.0 ويسمح بتسجيل الدخول إلى خوادمك باستخدام حسابات Google/Microsoft/Github الخاصة بك.
بينما يُظهر SSH3 وعدًا بإنشاء جلسة أسرع، فإنه لا يزال في مرحلة إثبات المفهوم المبكرة. كما هو الحال مع أي بروتوكول معقد جديد، هناك حاجة إلى مراجعة تشفيرية خبيرة على مدى زمني ممتد قبل إمكانية استخلاص استنتاجات أمان معقولة.
نحن نطور SSH3 كمشروع مفتوح المصدر لتسهيل تعليقات المجتمع وتحليله. ومع ذلك، لا يمكننا بعد الموافقة على ملاءمته للأنظمة الإنتاجية دون مزيد من مراجعة النظراء. يرجى التعاون معنا إذا كانت لديك الخبرة ذات الصلة!
نظرًا لحالة النموذج الأولي الحالية، ننصح باختبار SSH3 في بيئات معزولة أو شبكات خاصة. كن على علم أن جعل الخوادم التجريبية متصلة بالإنترنت مباشرة قد يقدم مخاطر قبل الفحص الأمني الشامل.
بينما لإخفاء الخوادم خلف مسارات سرية فوائد محتملة، فإنه لا يلغي الحاجة إلى تحليل دقيق للثغرات قبل الدخول في الإنتاج. نحن متحمسون لإمكانيات SSH3 المستقبلية ولكننا نشجع على فحص إضافي أولاً.
باستخدام SSH3، يمكنك تجنب الإجهاد المعتاد لفحص وهجمات القاموس ضد خادم SSH الخاص بك. مثل مستندات Google Drive السرية الخاصة بك، يمكن إخفاء خادم SSH3 الخاص بك خلف رابط سري والاستجابة فقط لمحاولات المصادقة التي قدمت طلب HTTP إلى هذا الرابط المحدد، مثل التالي:
ssh3-server -bind 192.0.2.0:443 -url-path <my-long-secret>
عن طريق استبدال <my-long-secret> بالقيمة العشوائية M3MzkxYWMxMjYxMjc5YzJkODZiMTAyMjU على سبيل المثال، سيستجيب خادم SSH3 الخاص بك فقط لمحاولات اتصال SSH3 الموجهة إلى URL https://192.0.2.0:443/M3MzkxYWMxMjYxMjc5YzJkODZiMTAyMjU وسيرد بـ 404 Not Found على الطلبات الأخرى. لذلك لا يمكن للمهاجمين والزواحف على الإنترنت اكتشاف وجود خادم SSH3 الخاص بك. سيرون فقط خادم ويب بسيط يرد برموز حالة 404 على كل طلب.
لاحظ جيدًا: وضع خادم SSH3 الخاص بك خلف URL سري قد يقلل من تأثير هجمات الفحص ولكنه لن ولن يستبدل أبدًا آليات المصادقة التقليدية. يجب استخدام الرابط السري فقط لتجنب اكتشاف مضيفك. لا ينبغي أن تمنح معرفة الرابط السري شخصًا ما الوصول إلى خادمك. استخدم آليات المصادقة التقليدية الموضحة أعلاه لحماية خادمك.
يوفر SSH3 ميزات جديدة لم يتمكن بروتوكول SSHv2 من توفيرها.
هذا التطبيق لـ SSH3 يوفر بالفعل العديد من الميزات الشائعة لـ OpenSSH، لذا إذا كنت معتادًا على OpenSSH، فستكون عملية اعتماد SSH3 سلسة. فيما يلي قائمة ببعض ميزات OpenSSH التي ينفذها SSH3 أيضًا:
~/.ssh/authorized_keys على الخادمknown_hosts عند عدم استخدام شهادات X.509.ssh-agent تلقائيًا لمصادقة المفتاح العام-proxy-jump). إذا كان A عميل SSH3 وكان B و C كلاهما خوادم SSH3، يمكنك الاتصال من A إلى C باستخدام B كبوابة/وكيل. يستخدم الوكيل إعادة توجيه UDP لإعادة توجيه حزم QUIC من A إلى C، لذلك لا يمكن لـ B فك تشفير حركة مرور SSH3 بين A و C.~/.ssh/config على العميل ويتعامل مع خيارات التكوين Hostname و User و Port و IdentityFile (يتم تجاهل الخيارات الأخرى حاليًا). كما يوزع خيارًا جديدًا UDPProxyJump يعمل بشكل مشابه لـ ProxyJump الخاص بـ OpenSSH.ساعدنا في تطوير SSH3 بمسؤولية! نرحب بباحثي الأمن القادرين على مراجعة قاعدة الكود الخاصة بنا وتقديم الملاحظات. يرجى أيضًا التواصل معنا بشأن هيئات المعايير ذات الصلة للترويج لـ SSH3 عبر عمليات IETF/IRTF الرسمية بمرور الوقت.
بمساعدة تعاونية، نأمل في تحسين SSH3 بشكل تدريجي نحو الاستعداد الآمن للإنتاج. لكن لا يمكننا تقديم ادعاءات أمان قاطعة بشكل موثوق دون دليل على مراجعة تشفيرية خبيرة واسعة النطاق واعتماد من قبل سلطات أمان محترمة. دعونا نعمل معًا لتحقيق إمكانيات SSH3!
يمكنك إما تنزيل الإصدارات الثنائية الأخيرة أو تثبيته باستخدام go install أو إنشاء هذه الإصدارات الثنائية بنفسك عن طريق تجميع الكود من المصدر.
[!TIP] SSH3 لا يزال تجريبيًا وهو ثمرة عمل بحثي. إذا كنت تخشى نشر خادم SSH3 جديد علنًا، يمكنك استخدام ميزة المسار السري لـ SSH3 لإخفائه خلف URL سري.
go install github.com/francoismichel/ssh3/cmd/...@latest