אבטחה ונתונים
מארחים מהימנים (known_hosts)
החיבור הראשון למארח לוכד את טביעת האצבע של המפתח הציבורי שלו (SHA-256) ושומר אותה לאחר שתאשר. חיבורים עוקבים משווים את טביעת האצבע — אם היא תשתנה אי פעם תקבל התראה ברורה.
נהל את הרשימה ב-הגדרות → אבטחה → מארחים מהימנים — כל רשומה מציגה את המארח, את אלגוריתם המפתח (Ed25519, RSA, ECDSA…) ואת טביעת האצבע, וניתן להסיר אותה.
כיצד החיבור מוגן
DR-Terminal משתמש במימוש SSH משלו, מוקשח כנגד תוקפים פעילים ושרתים עוינים:
- מפתח ה-host נבדק במהלך לחיצת היד, לפני שנשלח כל דבר סודי. אם man-in-the-middle מציג מפתח שגוי, החיבור מבוטל בשלב חילופי המפתחות — הסיסמה או המפתח הפרטי שלך לעולם אינם עוזבים את המכשיר.
- אלגוריתמים חזקים בלבד, כברירת מחדל. אלגוריתמים מיושנים ונוטים להורדת רמה — חתימות ו-MAC מסוג SHA-1,
ssh-rsa, Diffie-Hellman של 1024 סיביות — מושבתים. חיבורים משתמשים בחילופי מפתחות מודרניים (תחילה ההיברידים הפוסט-קוונטייםsntrup761x25519-sha512ו-mlkem768x25519-sha256, ואחריהם Curve25519, ECDH, Diffie-Hellman ≥ 2048 סיביות), צפנים (AES-GCM, ChaCha20-Poly1305, AES-CTR) וסוגי מפתחות host (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 → המר) ומגדיר passphrase, ההצפנה משתמשת בפונקציית גזירת מפתח חזקה הנבחרת לפי פורמט — bcrypt עבור OpenSSH, PBKDF2 עבור PKCS#8, Argon2id עבור PuTTY PPK v3 — וכל salt ו-IV מגיעים ממחולל מספרים אקראיים מאובטח קריפטוגרפית. הממיר קורא וכותב OpenSSH, PKCS#8, PKCS#1 ו-PuTTY PPK (v2/v3), הן מ-PEM והן מ-DER בינארי.
היכן הסודות חיים
סיסמאות, מפתחות פרטיים ו-passphrases לעולם אינם מסודרים לתוך JSON של החיבור. הם הולכים ישירות לאחסון המאובטח של הפלטפורמה:
- Android — EncryptedSharedPreferences, מגובה ב-Keystore חומרתי.
- iOS — Keychain (מוגן ביומטריה אם הפעלת זאת).
- מחשב שולחני — קובץ מוצפן AES-256-GCM, מפתח הנגזר מפרופיל המשתמש.
גיבוי תצורה מוצפן
הגדרות → הגדרות → Export backup יוצר קובץ .drterminal מוגן בסיסמה. הוא מכיל: חיבורים (כולל פרטי התחברות), קבוצות, מארחים מהימנים, מפתחות SSH, סימניות SFTP, היסטוריית פקודות, כללי הדגשה, סניפטים, פרופילי serial ו-Telnet, העדפות אלגוריתמי SSH, מראה הטרמינל והגדרות, ובנייד גם את תצורת מקלדת DevOps. Import backup משחזר את אותה חבילה — שימושי במעבר בין מכונות.
פורמט: 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.