Ασφάλεια και δεδομένα
Έμπιστοι host (known_hosts)
Η πρώτη σύνδεση σε έναν host καταγράφει το αποτύπωμα του δημόσιου κλειδιού του (SHA-256) και το αποθηκεύει μετά την επιβεβαίωσή σας. Οι επόμενες συνδέσεις συγκρίνουν το αποτύπωμα — αν αλλάξει ποτέ, λαμβάνετε μια σαφή ειδοποίηση.
Διαχειριστείτε τη λίστα στις Ρυθμίσεις → Ασφάλεια → Έμπιστοι host — κάθε καταχώρηση δείχνει τον host, τον αλγόριθμο κλειδιού (Ed25519, RSA, ECDSA…) και το αποτύπωμα, και μπορεί να αφαιρεθεί.
Πώς προστατεύεται η σύνδεση
Το DR-Terminal χρησιμοποιεί τη δική του υλοποίηση SSH, θωρακισμένη έναντι ενεργών επιτιθέμενων και εχθρικών διακομιστών:
- Το κλειδί host ελέγχεται κατά τη διάρκεια της χειραψίας, πριν σταλεί οτιδήποτε μυστικό. Αν ένας man-in-the-middle παρουσιάσει λανθασμένο κλειδί, η σύνδεση διακόπτεται κατά την ανταλλαγή κλειδιών — ο κωδικός πρόσβασης ή το ιδιωτικό σας κλειδί δεν φεύγει ποτέ από τη συσκευή.
- Μόνο ισχυροί αλγόριθμοι, από προεπιλογή. Οι παλαιοί, επιρρεπείς σε υποβάθμιση αλγόριθμοι — υπογραφές και MAC με SHA-1,
ssh-rsa, Diffie-Hellman 1024-bit — είναι απενεργοποιημένοι. Οι συνδέσεις χρησιμοποιούν σύγχρονη ανταλλαγή κλειδιών (πρώτα τα μετακβαντικά υβρίδιαsntrup761x25519-sha512καιmlkem768x25519-sha256, έπειτα Curve25519, ECDH, Diffie-Hellman ≥ 2048-bit), κρυπτογραφήσεις (AES-GCM, ChaCha20-Poly1305, AES-CTR) και τύπους κλειδιών host (Ed25519, ECDSA, RSA-SHA2). Ένας διακομιστής που προσφέρει μόνο κάτι ασθενέστερο δεν μπορεί να συνδεθεί — εκτός αν επανενεργοποιήσετε σκόπιμα έναν παλαιό αλγόριθμο στους Αλγόριθμοι SSH (παρακάτω). - Καμία σιωπηρή υποβάθμιση. Η υπογραφή που χρησιμοποιεί ο διακομιστής πρέπει να ταιριάζει με αυτό που διαπραγματεύτηκε, ώστε να μην μπορεί να υποχωρήσει σε μια ασθενέστερη πίσω από την πλάτη σας.
- Το Terrapin (CVE-2023-48795) αντιμετωπίζεται μέσω αυστηρής ανταλλαγής κλειδιών.
- Ανθεκτικό σε εχθρικό ή ελαττωματικό διακομιστή. Τα μήκη πακέτων, τα πεδία μηνυμάτων και τα παράθυρα καναλιών που έρχονται από το δίκτυο ελέγχονται όλα ως προς τα όριά τους, ώστε ένας κακόβουλος διακομιστής να μην μπορεί να προκαλέσει κατάρρευση της εφαρμογής ή να εξαντλήσει τη μνήμη της — ούτε καν πριν ταυτοποιηθείτε.
Αυτές οι προστασίες είναι ενεργές αυτόματα. Αλληλεπιδράτε μαζί τους μόνο μέσω της παραπάνω προτροπής έμπιστων host.
Αλγόριθμοι SSH (για προχωρημένους)
Οι Ρυθμίσεις → Ασφάλεια → Αλγόριθμοι SSH σας επιτρέπουν να ρυθμίσετε τι προτείνει ο πελάτης στους διακομιστές — για μια παλαιά συσκευή που μιλά μόνο μια παλιά κρυπτογράφηση, ή για να καθηλώσετε τη σειρά που εμπιστεύεστε. Η σελίδα έχει μία ενότητα ανά κατηγορία διαπραγμάτευσης:
- Ανταλλαγή κλειδιών, Κρυπτογραφήσεις, MAC (ακεραιότητα) — ενεργοποιήστε ή απενεργοποιήστε κάθε αλγόριθμο και μετακινήστε τον πάνω ή κάτω· η σειρά είναι η σειρά προτίμησης που στέλνεται στον διακομιστή (κερδίζει ο πρώτος αλγόριθμος που υποστηρίζουν και οι δύο πλευρές).
- Κλειδιά κεντρικού υπολογιστή — μόνο ενεργοποίηση/απενεργοποίηση.
- Συμπίεση — ένας διακόπτης ναι/όχι (απενεργοποιημένος από προεπιλογή). Το Ναι προτείνει πρώτα
[email protected]μεnoneως εναλλακτική για διακομιστές χωρίς zlib· το Όχι προτείνει μόνοnone, ώστε ο διακομιστής να μην μπορεί να ενεργοποιήσει τη συμπίεση. Η συμπίεση βοηθά σε αργές συνδέσεις και κοστίζει CPU και στις δύο πλευρές.
Οι αλγόριθμοι που η βιβλιοθήκη παρέχει απενεργοποιημένους φέρουν μια μικρή κεχριμπαρένια ετικέτα legacy — παραμένουν απενεργοποιημένοι μέχρι να τους ενεργοποιήσετε. Μια κατηγορία δεν μπορεί ποτέ να μείνει κενή: ο τελευταίος ενεργοποιημένος αλγόριθμος δεν μπορεί να απενεργοποιηθεί. Η Επαναφορά δίπλα στον τίτλο μιας ενότητας την επαναφέρει στις προεπιλογές της βιβλιοθήκης.
Κάθε αποθηκευμένη σύνδεση μπορεί να παρακάμψει την καθολική επιλογή: στη φόρμα σύνδεσης, το Αλγόριθμοι SSH → Προσαρμοσμένο ανοίγει τον ίδιο επεξεργαστή μόνο για αυτόν τον host (η Προεπιλογή ακολουθεί την καθολική ρύθμιση). Η επιβεβαίωση του επεξεργαστή ενημερώνει τη φόρμα — κάντε Αποθήκευση της σύνδεσης στη συνέχεια. Το τι διαπραγματεύτηκε πραγματικά — ανταλλαγή κλειδιών, κλειδί host, κρυπτογράφηση, MAC, συμπίεση — εμφανίζεται στις Πληροφορίες σύνδεσης του μενού συνεδρίας.
Οι νέες ρυθμίσεις ισχύουν για συνδέσεις που ανοίγουν στη συνέχεια. Μια δεύτερη καρτέλα προς τον ίδιο host επαναχρησιμοποιεί την ενεργή σύνδεση SSH και επομένως τους αλγορίθμους της — αποσυνδεθείτε και επανασυνδεθείτε για νέα διαπραγμάτευση.
Μετακβαντική προειδοποίηση
Ένας επιτιθέμενος τύπου «store now, decrypt later» καταγράφει τη σημερινή κίνηση και την αποκρυπτογραφεί μόλις οι κβαντικοί υπολογιστές μπορέσουν να σπάσουν την κλασική ανταλλαγή κλειδιών. Το 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.
Πού βρίσκονται τα μυστικά
Οι κωδικοί πρόσβασης, τα ιδιωτικά κλειδιά και τα passphrase ποτέ δεν σειριοποιούνται στο JSON σύνδεσης. Πηγαίνουν απευθείας στην ασφαλή αποθήκη της πλατφόρμας:
- Android — EncryptedSharedPreferences, υποστηριζόμενο από το hardware Keystore.
- iOS — Keychain (προστατευμένο με βιομετρικά αν το ενεργοποιήσατε).
- Desktop — αρχείο κρυπτογραφημένο με AES-256-GCM, με κλειδί παραγόμενο από το προφίλ χρήστη.
Κρυπτογραφημένο αντίγραφο ασφαλείας ρυθμίσεων
Το Ρυθμίσεις → Διαμόρφωση → Εξαγωγή αντιγράφου ασφαλείας δημιουργεί ένα αρχείο .drterminal προστατευμένο με κωδικό. Περιέχει: συνδέσεις (με διαπιστευτήρια), ομάδες, έμπιστους host, κλειδιά SSH, σελιδοδείκτες SFTP, ιστορικό εντολών, κανόνες επισήμανσης, αποσπάσματα, προφίλ serial και Telnet, προτιμήσεις αλγορίθμων SSH, εμφάνιση τερματικού και ρυθμίσεις και (σε κινητά) τη διαμόρφωση του πληκτρολογίου DevOps. Το Εισαγωγή αντιγράφου ασφαλείας επαναφέρει την ίδια δέσμη — χρήσιμο κατά τη μετακίνηση μεταξύ μηχανημάτων.
Μορφή: JSON κρυπτογραφημένο με AES-256-GCM. Ο κωδικός δεν αποθηκεύεται ποτέ στο αρχείο — μόνο παράγει το κλειδί κρυπτογράφησης (PBKDF2, 100.000 επαναλήψεις SHA-256).
Εισαγωγή ~/.ssh/config
Στο Desktop μπορείτε να εισαγάγετε μαζικά host από ένα υπάρχον config OpenSSH. Ο εισαγωγέας αναλύει τις καταχωρήσεις Host, HostName, User, Port, IdentityFile και ProxyJump και τις προσθέτει ως αποθηκευμένες συνδέσεις. Τα αρχεία κλειδιών που αναφέρονται από το IdentityFile φορτώνονται από τον δίσκο στο SecureStorage.
Επίπεδα καταγραφής
Στο Ρυθμίσεις → Τερματικό → Επίπεδο καταγραφής αρχείου επιλέξτε τι φτάνει στο ~/.dr-terminal/logs/ (Desktop) ή το αντίστοιχο σε κινητά. Προεπιλογή: ERROR — ελάχιστος θόρυβος. Για διαγνωστικά μεταβείτε σε DEBUG.