SSH1 εναντίον SSH2
Το SSH (Secure Shell) είναι ένα πρωτόκολλο που χρησιμοποιείται για την ενεργοποίηση της ασφάλειας στην επικοινωνία δεδομένων μέσω των δικτύων. Το SSH βρέθηκε από τον Tatu Ylonen (SSH Communications Security Corporation) το 1995. Αυτό το πρωτόκολλο παρέχει την υποδομή για την ασφαλή μεταφορά δεδομένων, την απομακρυσμένη εκτέλεση εντολών και τις υπηρεσίες δικτύου με δυνατότητα ασφάλειας μεταξύ δύο υπολογιστών σε ένα δίκτυο. Η διαχείριση της επικοινωνίας γίνεται σύμφωνα με την αρχιτεκτονική πελάτη – διακομιστή (SSH Client και SSH server). Το πρωτόκολλο SSH έχει αναπτυχθεί με δύο εκδόσεις που ονομάζονται SSH1 και SSH2.
SSH1 (Secure Shell Έκδοση 1)
Η έκδοση 1 πρωτοκόλλου SSH βρέθηκε το 1995 και αποτελείται από τρία κύρια πρωτόκολλα, που ονομάζονται SSH-TRANS, SSH-USERAUTH και SSH-CONNECT.
SSH-TRANS: Είναι το πρωτόκολλο επιπέδου μεταφοράς (TCP/IP) που βασικά παρέχει έλεγχο ταυτότητας διακομιστή, εμπιστευτικότητα και ακεραιότητα.
SSH-USERAUTH: Είναι το πρωτόκολλο που χρησιμοποιείται για τον έλεγχο ταυτότητας χρήστη στο κέντρο επικοινωνίας. Αυτό το πρωτόκολλο ελέγχει την ταυτότητα του πελάτη SSH σε διακομιστή SSH. Αυτό το πρωτόκολλο εκτελείται επίσης πάνω από το επίπεδο μεταφοράς.
SSH-CONNECT: Είναι το πρωτόκολλο σύνδεσης που πολυπλέκει κρυπτογραφημένα δεδομένα σε ορισμένες λογικές ροές. Αυτό το πρωτόκολλο εκτελείται πάνω από το πρωτόκολλο SSH-USERAUTH.
Για να ξεκινήσει η ασφαλής σύνδεση, ο πελάτης στέλνει τις πληροφορίες ελέγχου ταυτότητας στον διακομιστή SSH με κρυπτογράφηση 128 bit. Κάθε κεντρικός υπολογιστής διακομιστή έχει ένα κλειδί κεντρικού υπολογιστή, το οποίο είναι η επαλήθευση της σωστής επικοινωνίας διακομιστή πελάτη. Επίσης, θα πρέπει να έχει ένα δημόσιο κλειδί του σχετικού διακομιστή SSH. Κάθε τμήμα δεδομένων που μεταφέρεται κρυπτογραφείται χρησιμοποιώντας αλγόριθμους κρυπτογράφησης (DES, 3DES, IDEA, Blowfish).
Εκτός από την απομακρυσμένη σύνδεση, το SSH μπορεί να χρησιμοποιηθεί για Tunnelling, συνδεσιμότητα X11, SFTP (πρωτόκολλο μεταφοράς αρχείων SSH), SCP (ασφαλής αντιγραφή) και επίσης προώθηση θύρας TCP. Η θύρα TCP 22 χρησιμοποιείται από το πρωτόκολλο SSH από προεπιλογή. Η συμπίεση δεδομένων υποστηρίζεται επίσης από το SSH. Αυτή η δυνατότητα είναι χρήσιμη όταν η σύνδεση πελάτη-διακομιστή με χαμηλό εύρος ζώνης και μπορεί να χρησιμοποιηθεί για τη βελτίωση της απόδοσης της σύνδεσης.
Στην έκδοση SSH 1.5, οι προγραμματιστές έχουν εντοπίσει κάποια ευπάθεια. Σε αυτήν την έκδοση, ήταν δυνατή η μη εξουσιοδοτημένη εισαγωγή δεδομένων στη μέση της κρυπτογραφημένης ροής δεδομένων, η οποία μπορεί να προκαλέσει υψηλό κίνδυνο για την ασφάλεια των δεδομένων. Επίσης, το 2001 εντοπίστηκε ευπάθεια μη εξουσιοδοτημένου, κακόβουλου διακομιστή ελέγχου ταυτότητας για προώθηση ελέγχου ταυτότητας σε άλλο διακομιστή.
SSH2 (Secure Shell Έκδοση 2)
Το SSH2 εισήχθη το 2006 με πολλές σημαντικές βελτιώσεις σε σχέση με το SSH1. Αν και είναι μια βελτίωση του SSH1, το SSH2 δεν είναι συμβατό με το SSH1. Το SSH2 ξαναγράφεται με την προσθήκη περισσότερων αμυντικών μηχανισμών για την αποφυγή τρωτών σημείων.
Το SSH2 χρησιμοποιεί ένα διαφορετικό σύνολο βελτιωμένων και ισχυρότερων αλγορίθμων για κρυπτογράφηση και έλεγχο ταυτότητας, όπως το DSA (Digital Signature Algorithm). Το SSH2 δεν είναι πλέον ελεύθερο λογισμικό όπως το SSH1. ο προγραμματιστής του SSH2 έχει περιορίσει τη δωρεάν χρήση του SSH2. Σε αντίθεση με το SSH1, το πρόγραμμα SFTP (Secure File Transfer) έχει ενσωματωθεί στο πακέτο SSH2 και χρησιμοποιεί τα ίδια πρωτόκολλα κρυπτογράφησης που χρησιμοποιούνται από το SSH2, για την κρυπτογράφηση των ροών δεδομένων.
Ποια είναι η διαφορά μεταξύ SSH1 και SSH2;
Πολλά λειτουργικά συστήματα που βασίζονται στο UNIX έχουν ενσωματωμένη δυνατότητα SSH και πολλές κονσόλες με δυνατότητα SSH έχουν επίσης αναπτυχθεί για συστήματα Windows (TeraTerm, Putty, OpenSSH, WinSCP κ.λπ.).
• Όπως αναφέρθηκε παραπάνω το SSH2 είναι μια βελτιωμένη έκδοση του SSH1.
• Το SSH1 έχει ορισμένα γνωστά τεκμηριωμένα ζητήματα που διορθώνονται και κωδικοποιούνται εκ νέου στο SSH2.
• Κανονικά η τελευταία έκδοση οποιασδήποτε εφαρμογής υποστηρίζει τις παλαιότερες εκδόσεις της, αλλά το SSH2 δεν είναι πλήρως συμβατό με το SSH1 και επίσης απαιτείται άδεια χρήσης για το SSH2.