الأمان والبيانات
المضيفون الموثوقون (known_hosts)
يلتقط أول اتصال بمضيف بصمة مفتاحه العام (SHA-256) ويخزّنها بعد تأكيدك. وتقارن الاتصالات اللاحقة البصمة — فإذا تغيّرت يومًا تحصل على تنبيه واضح.
أدِر القائمة في الإعدادات → الأمان → المضيفون الموثوقون — يعرض كل مدخل المضيف وخوارزمية المفتاح (Ed25519 وRSA وECDSA…) والبصمة، ويمكن إزالته.
كيف يُحمى الاتصال
يستخدم DR-Terminal تنفيذه الخاص لـ SSH، المُحصَّن ضد المهاجمين النشطين والخوادم العدائية:
- يُتحقَّق من مفتاح المضيف أثناء المصافحة، قبل إرسال أي شيء سري. إذا قدّم وسيطٌ (man-in-the-middle) المفتاح الخطأ، يُجهَض الاتصال عند تبادل المفاتيح — ولا تغادر كلمة مرورك أو مفتاحك الخاص الجهاز أبدًا.
- خوارزميات قوية فقط، افتراضيًّا. الخوارزميات القديمة المعرَّضة للتخفيض — توقيعات وMACs بـ SHA-1، وssh-rsa، وDiffie-Hellman بطول 1024 بت — مُعطَّلة. تستخدم الاتصالات تبادل مفاتيح حديثًا (Curve25519 وECDH وDiffie-Hellman ≥ 2048 بت)، وشفرات (AES-GCM وChaCha20-Poly1305 وAES-CTR)، وأنواع مفاتيح مضيف (Ed25519 وECDSA وRSA-SHA2). والخادم الذي لا يقدّم سوى شيء أضعف لا يمكنه الاتصال.
- لا تخفيض صامت. يجب أن يطابق التوقيع الذي يستخدمه الخادم ما جرى التفاوض عليه، فلا يمكنه الرجوع إلى توقيع أضعف من وراء ظهرك.
- يُخفَّف تأثير Terrapin (CVE-2023-48795) عبر تبادل المفاتيح الصارم.
- مقاوم للخادم العدائي أو المعطوب. يُتحقَّق من حدود أطوال الحزم وحقول الرسائل ونوافذ القنوات القادمة من الشبكة كلها، فلا يستطيع خادم خبيث أن يُعطِّل التطبيق أو يستنزف ذاكرته — ولا حتى قبل أن تُصادِق.
هذه الحمايات مُفعَّلة تلقائيًا. أنت تتفاعل معها فقط عبر مطالبة المضيفين الموثوقين أعلاه.
المفاتيح المُصدَّرة
عندما تحوِّل أو تصدِّر مفتاحًا خاصًّا (مفاتيح 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 التعريفية، ومظهر الطرفية والإعدادات، و(على الجوال) إعداد لوحة مفاتيح 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.