الأمان والبيانات
المضيفون الموثوقون (known_hosts)
يلتقط أول اتصال بمضيف بصمة مفتاحه العام (SHA-256) ويخزّنها بعد تأكيدك. وتقارن الاتصالات اللاحقة البصمة — فإذا تغيّرت يومًا تحصل على تنبيه واضح.
أدِر القائمة في الإعدادات → الأمان → المضيفون الموثوقون — يعرض كل مدخل المضيف وخوارزمية المفتاح (Ed25519 وRSA وECDSA…) والبصمة، ويمكن إزالته.
كيف يُحمى الاتصال
يستخدم DR-Terminal تنفيذه الخاص لـ SSH، المُحصَّن ضد المهاجمين النشطين والخوادم العدائية:
- يُتحقَّق من مفتاح المضيف أثناء المصافحة، قبل إرسال أي شيء سري. إذا قدّم وسيطٌ (man-in-the-middle) المفتاح الخطأ، يُجهَض الاتصال عند تبادل المفاتيح — ولا تغادر كلمة مرورك أو مفتاحك الخاص الجهاز أبدًا.
- خوارزميات قوية فقط، افتراضيًّا. الخوارزميات القديمة المعرَّضة للتخفيض — توقيعات وMACs بـ SHA-1، وssh-rsa، وDiffie-Hellman بطول 1024 بت — مُعطَّلة. تستخدم الاتصالات تبادل مفاتيح حديثًا (الهجينان ما بعد الكمّيان
sntrup761x25519-sha512وmlkem768x25519-sha256أولًا، ثم Curve25519 وECDH وDiffie-Hellman ≥ 2048 بت)، وشفرات (AES-GCM وChaCha20-Poly1305 وAES-CTR)، وأنواع مفاتيح مضيف (Ed25519 وECDSA وRSA-SHA2). والخادم الذي لا يقدّم سوى شيء أضعف لا يمكنه الاتصال — ما لم تُعِد تفعيل خوارزمية قديمة عمدًا في خوارزميات SSH (أدناه). - لا تخفيض صامت. يجب أن يطابق التوقيع الذي يستخدمه الخادم ما جرى التفاوض عليه، فلا يمكنه الرجوع إلى توقيع أضعف من وراء ظهرك.
- يُخفَّف تأثير Terrapin (CVE-2023-48795) عبر تبادل المفاتيح الصارم.
- مقاوم للخادم العدائي أو المعطوب. يُتحقَّق من حدود أطوال الحزم وحقول الرسائل ونوافذ القنوات القادمة من الشبكة كلها، فلا يستطيع خادم خبيث أن يُعطِّل التطبيق أو يستنزف ذاكرته — ولا حتى قبل أن تُصادِق.
هذه الحمايات مُفعَّلة تلقائيًا. أنت تتفاعل معها فقط عبر مطالبة المضيفين الموثوقين أعلاه.
خوارزميات SSH (متقدم)
الإعدادات → الأمان → خوارزميات SSH يتيح لك ضبط ما يقترحه العميل على الخوادم — لجهاز قديم لا يتحدث سوى شفرة قديمة، أو لتثبيت الترتيب الذي تثق به. تحتوي الصفحة على قسم لكل فئة من فئات التفاوض:
- تبادل المفاتيح وخوارزميات التشفير وMAC (التكامل) — شغّل كل خوارزمية أو أوقفها وحرّكها لأعلى أو لأسفل؛ الترتيب هو ترتيب الأفضلية المُرسَل إلى الخادم (تفوز أول خوارزمية يدعمها الطرفان).
- مفاتيح المضيف — تشغيل/إيقاف فقط.
- الضغط — مفتاح نعم/لا (متوقف افتراضيًا). نعم يقترح
[email protected]أولًا معnoneكبديل للخوادم التي لا تدعم zlib؛ و*لا* يقترحnoneفقط، فلا يستطيع الخادم تفعيل الضغط. يفيد الضغط على الوصلات البطيئة ويستهلك المعالج على الطرفين.
الخوارزميات التي تأتي معطَّلة في المكتبة تحمل وسمًا كهرمانيًا صغيرًا legacy — وتبقى متوقفة حتى تشغّلها. لا يمكن أن تصبح فئة فارغة أبدًا: لا يمكن إيقاف آخر خوارزمية مفعَّلة. وإعادة تعيين بجوار عنوان القسم تعيده إلى الإعدادات الافتراضية للمكتبة.
يمكن لكل اتصال محفوظ تجاوز الاختيار العام: في نموذج الاتصال، خوارزميات SSH → مخصص يفتح المحرر نفسه لذلك المضيف فقط (افتراضي يتبع الإعداد العام). تأكيد المحرر يحدّث النموذج — ثم احفظ الاتصال بزر حفظ. وما جرى التفاوض عليه فعليًا — تبادل المفاتيح، ومفتاح المضيف، والشفرة، وMAC، والضغط — يظهر في معلومات الاتصال من قائمة الجلسة.
تسري الإعدادات الجديدة على الاتصالات التي تُفتح لاحقًا. علامة تبويب ثانية إلى المضيف نفسه تعيد استخدام اتصال SSH الحي وبالتالي خوارزمياته — اقطع الاتصال وأعد الاتصال لإعادة التفاوض.
تحذير ما بعد الكم
مهاجم من نوع «خزّن الآن، وفكّ التشفير لاحقًا» يسجّل حركة مرور اليوم ويفكّ تشفيرها متى صارت الحواسيب الكمّية قادرة على كسر تبادل المفاتيح الكلاسيكي. يفضّل DR-Terminal تبادل المفاتيح الهجين ما بعد الكمّي (sntrup761x25519-sha512 وmlkem768x25519-sha256 — نفسها التي يأتي بها OpenSSH) ويحذّر، مثل OpenSSH، عندما تنتهي الجلسة إلى تبادل كلاسيكي: تظهر نافذة مرة واحدة لكل اتصال تفيد بأن تبادل المفاتيح ليس ما بعد كمّي وأن الخادم قد يحتاج إلى ترقية. عدم الإظهار مرة أخرى يوقف التحذير نهائيًا؛ ويوجد في الإعدادات → الأمان → تحذير ما بعد الكم (مفعَّل افتراضيًا).
المفاتيح المُصدَّرة
عندما تحوِّل أو تصدِّر مفتاحًا خاصًّا (مفاتيح SSH → تحويل) وتضبط عبارة مرور، يستخدم التشفير دالة اشتقاق مفاتيح قوية تُختار حسب التنسيق — bcrypt لـ OpenSSH، وPBKDF2 لـ PKCS#8، وArgon2id لـ PuTTY PPK v3 — ويأتي كل ملح (salt) وشعاع تهيئة (IV) من مولِّد عشوائي آمن تشفيريًّا. يقرأ المحوِّل ويكتب OpenSSH وPKCS#8 وPKCS#1 وPuTTY PPK (v2/v3)، من كلٍّ من PEM وDER الثنائي.
أين تعيش الأسرار
كلمات المرور والمفاتيح الخاصة وعبارات المرور لا تُسلسَل أبدًا في JSON الاتصال. بل تذهب مباشرةً إلى المخزن الآمن للمنصة:
- Android — EncryptedSharedPreferences، مدعومة بـ Keystore العتادي.
- iOS — Keychain (محمية بالقياسات الحيوية إذا فعّلتها).
- سطح المكتب — ملف مشفَّر بـ AES-256-GCM، يُشتق مفتاحه من ملف تعريف المستخدم.
نسخة احتياطية مشفَّرة للإعدادات
الإعدادات → الإعداد → تصدير نسخة احتياطية ينشئ ملف .drterminal محميًّا بكلمة مرور. يحتوي على: الاتصالات (مع بيانات الاعتماد)، والمجموعات، والمضيفين الموثوقين، ومفاتيح SSH، وإشارات SFTP المرجعية، وسجل الأوامر، وقواعد التمييز، والمقتطفات، والملفات التعريفية التسلسلية وملفات Telnet التعريفية، وتفضيلات خوارزميات SSH، ومظهر الطرفية والإعدادات، و(على الجوال) إعداد لوحة مفاتيح DevOps. واستيراد نسخة احتياطية يستعيد الحزمة نفسها — مفيد عند الانتقال بين الأجهزة.
التنسيق: JSON مشفَّر بـ AES-256-GCM. كلمة المرور لا تُخزَّن أبدًا في الملف — بل تشتق منها فقط مفتاح التشفير (PBKDF2، 100,000 تكرار لـ SHA-256).
استيراد ~/.ssh/config
على سطح المكتب يمكنك استيراد المضيفين بالجملة من إعداد OpenSSH موجود. يحلّل المستورِد مدخلات Host وHostName وUser وPort وIdentityFile وProxyJump ويضيفها كاتصالات محفوظة. وتُحمَّل ملفات المفاتيح المشار إليها بـ IdentityFile من القرص إلى SecureStorage.
مستويات السجل
في الإعدادات → الطرفية → مستوى سجل الملف اختر ما يصل إلى ~/.dr-terminal/logs/ (سطح المكتب) أو ما يعادله على الجوال. الافتراضي: ERROR — أقل ضوضاء. وللتشخيص بدّل إلى DEBUG.