Πρωτόκολλα SFTP και FTPS

πρόλογος

Μόλις πριν από μια εβδομάδα έγραφα ένα δοκίμιο για το θέμα που υποδεικνύεται στον τίτλο και αντιμετώπισα το γεγονός ότι, ας πούμε, δεν υπάρχουν τόσες πολλές εκπαιδευτικές πληροφορίες στο Διαδίκτυο. Κυρίως στεγνά στοιχεία και οδηγίες εγκατάστασης. Ως εκ τούτου, αποφάσισα να διορθώσω ελαφρώς το κείμενο και να το δημοσιεύσω ως άρθρο.

Τι είναι το FTP

Το FTP (File Transfer Protocol) είναι ένα πρωτόκολλο για τη μεταφορά αρχείων μέσω δικτύου. Είναι ένα από τα βασικά πρωτόκολλα Ethernet. Εμφανίστηκε το 1971 και αρχικά εργάστηκε στα δίκτυα της DARPA. Επί του παρόντος, όπως το HTTP, η μεταφορά αρχείων βασίζεται σε ένα μοντέλο που αποτελείται από ένα σύνολο πρωτοκόλλων TCP/IP (Transmission Control Protocol/Internet Protocol). Ορίζεται στο RFC 959.

Το πρωτόκολλο ορίζει τα εξής:

  • Πώς θα γίνει ο έλεγχος σφαλμάτων;
  • Μέθοδος συσκευασίας δεδομένων (εάν χρησιμοποιείται συσκευασία)
  • Πώς δηλώνει η συσκευή αποστολής ότι έχει ολοκληρώσει ένα μήνυμα;
  • Πώς δηλώνει η συσκευή λήψης ότι έχει λάβει ένα μήνυμα;

Επικοινωνία μεταξύ πελάτη και διακομιστή

Ας ρίξουμε μια πιο προσεκτική ματιά στις διεργασίες που συμβαίνουν κατά τη λειτουργία FTP. Η σύνδεση αρχικοποιείται από τον διερμηνέα πρωτοκόλλου του χρήστη. Η ανταλλαγή ελέγχεται μέσω ενός καναλιού ελέγχου στο πρότυπο TELNET. Οι εντολές FTP δημιουργούνται από τον διερμηνέα πρωτοκόλλου του χρήστη και αποστέλλονται στον διακομιστή. Οι απαντήσεις του διακομιστή αποστέλλονται επίσης στον χρήστη μέσω του καναλιού ελέγχου. Γενικά, ο χρήστης έχει τη δυνατότητα να δημιουργήσει επαφή με τον διερμηνέα πρωτοκόλλου του διακομιστή και με άλλα μέσα εκτός από τον διερμηνέα του χρήστη.

Το κύριο χαρακτηριστικό του FTP είναι ότι χρησιμοποιεί διπλές συνδέσεις. Ένα από αυτά χρησιμοποιείται για την αποστολή εντολών στον διακομιστή και εμφανίζεται από προεπιλογή μέσω της θύρας TCP 21, η οποία μπορεί να αλλάξει. Η σύνδεση ελέγχου υπάρχει όσο ο πελάτης επικοινωνεί με τον διακομιστή. Το κανάλι ελέγχου πρέπει να είναι ανοιχτό κατά τη μεταφορά δεδομένων μεταξύ μηχανών. Εάν είναι κλειστό, η μετάδοση δεδομένων σταματά. Μέσω του δεύτερου, πραγματοποιείται απευθείας μεταφορά δεδομένων. Ανοίγει κάθε φορά που πραγματοποιείται μεταφορά αρχείου μεταξύ του πελάτη και του διακομιστή. Εάν μεταφερθούν πολλά αρχεία ταυτόχρονα, καθένα από αυτά ανοίγει το δικό του κανάλι μετάδοσης.

Το FTP μπορεί να λειτουργήσει σε ενεργή ή παθητική λειτουργία, η επιλογή των οποίων καθορίζει τον τρόπο δημιουργίας της σύνδεσης. Στην ενεργή λειτουργία, ο υπολογιστής-πελάτης δημιουργεί μια σύνδεση ελέγχου TCP με τον διακομιστή και στέλνει τη διεύθυνση IP του και έναν αυθαίρετο αριθμό θύρας πελάτη στον διακομιστή και, στη συνέχεια, περιμένει από τον διακομιστή να ξεκινήσει μια σύνδεση TCP με αυτήν τη διεύθυνση και τον αριθμό θύρας. Σε περίπτωση που ο πελάτης βρίσκεται πίσω από ένα τείχος προστασίας και δεν μπορεί να δεχτεί μια εισερχόμενη σύνδεση TCP, μπορεί να χρησιμοποιηθεί η παθητική λειτουργία. Σε αυτήν τη λειτουργία, ο υπολογιστής-πελάτης χρησιμοποιεί τη ροή ελέγχου για να στείλει μια εντολή PASV στον διακομιστή και, στη συνέχεια, λαμβάνει από τον διακομιστή τη διεύθυνση IP και τον αριθμό θύρας του, τα οποία στη συνέχεια χρησιμοποιεί ο πελάτης για να ανοίξει μια ροή δεδομένων από την αυθαίρετη θύρα του.

Είναι πιθανό τα δεδομένα να μεταφερθούν σε τρίτο μηχάνημα. Σε αυτήν την περίπτωση, ο χρήστης οργανώνει ένα κανάλι ελέγχου με δύο διακομιστές και οργανώνει ένα άμεσο κανάλι δεδομένων μεταξύ τους. Οι εντολές ελέγχου περνούν από τον χρήστη και τα δεδομένα περνούν απευθείας μεταξύ των διακομιστών.

Κατά τη μετάδοση δεδομένων μέσω δικτύου, μπορούν να χρησιμοποιηθούν τέσσερις αναπαραστάσεις δεδομένων:

  • ASCII – χρησιμοποιείται για κείμενο. Τα δεδομένα, εάν είναι απαραίτητο, μετατρέπονται από την αναπαράσταση χαρακτήρων στον κεντρικό υπολογιστή αποστολής σε "XNUMX-bit ASCII" πριν από τη μετάδοση, και (και πάλι, εάν είναι απαραίτητο) στην αναπαράσταση χαρακτήρων στον κεντρικό υπολογιστή λήψης. Συγκεκριμένα, αλλάζουν χαρακτήρες νέας γραμμής. Ως αποτέλεσμα, αυτή η λειτουργία δεν είναι κατάλληλη για αρχεία που περιέχουν περισσότερα από απλό κείμενο.
  • Δυαδική λειτουργία - η συσκευή αποστολής στέλνει κάθε αρχείο byte byte και ο παραλήπτης αποθηκεύει τη ροή των byte κατά τη λήψη. Η υποστήριξη για αυτήν τη λειτουργία έχει προταθεί για όλες τις υλοποιήσεις FTP.
  • EBCDIC – χρησιμοποιείται για τη μεταφορά απλού κειμένου μεταξύ κεντρικών υπολογιστών σε κωδικοποίηση EBCDIC. Διαφορετικά, αυτή η λειτουργία είναι παρόμοια με τη λειτουργία ASCII.
  • Τοπική λειτουργία - επιτρέπει σε δύο υπολογιστές με ίδιες ρυθμίσεις να στέλνουν δεδομένα στη δική τους μορφή χωρίς μετατροπή σε ASCII.

Η μεταφορά δεδομένων μπορεί να πραγματοποιηθεί με οποιονδήποτε από τους τρεις τρόπους:

  • Λειτουργία ροής - τα δεδομένα αποστέλλονται ως συνεχής ροή, απαλλάσσοντας το FTP από την εκτέλεση οποιασδήποτε επεξεργασίας. Αντίθετα, όλη η επεξεργασία γίνεται από το TCP. Η ένδειξη τέλους αρχείου δεν χρειάζεται παρά μόνο για το διαχωρισμό των δεδομένων σε εγγραφές.
  • Λειτουργία αποκλεισμού - Το FTP σπάει τα δεδομένα σε πολλά μπλοκ (μπλοκ κεφαλίδας, αριθμός byte, πεδίο δεδομένων) και στη συνέχεια τα μεταδίδει στο TCP.
  • Λειτουργία συμπίεσης – τα δεδομένα συμπιέζονται χρησιμοποιώντας έναν μόνο αλγόριθμο (συνήθως με κωδικοποίηση μηκών εκτέλεσης).

Ο διακομιστής FTP είναι ένας διακομιστής που παρέχει τη δυνατότητα χρήσης του Πρωτοκόλλου μεταφοράς αρχείων. Έχει ορισμένα χαρακτηριστικά που το διακρίνουν από τους συμβατικούς διακομιστές ιστού:

  • Απαιτείται έλεγχος ταυτότητας χρήστη
  • Όλες οι λειτουργίες εκτελούνται εντός της τρέχουσας συνεδρίας
  • Δυνατότητα εκτέλεσης διαφόρων ενεργειών με το σύστημα αρχείων
  • Για κάθε σύνδεση χρησιμοποιείται ξεχωριστό κανάλι

Ο πελάτης FTP είναι ένα πρόγραμμα που σας επιτρέπει να συνδεθείτε σε έναν απομακρυσμένο διακομιστή μέσω FTP και επίσης να εκτελέσετε τις απαραίτητες ενέργειες σε αυτόν με στοιχεία του συστήματος αρχείων. Ο πελάτης μπορεί κάλλιστα να είναι ένα πρόγραμμα περιήγησης, στη γραμμή διευθύνσεων του οποίου θα πρέπει να εισαγάγετε τη διεύθυνση, η οποία είναι η διαδρομή προς έναν συγκεκριμένο κατάλογο ή αρχείο στον απομακρυσμένο διακομιστή, σύμφωνα με το γενικό μπλοκ διάγραμμα URL:

ftp://user:pass@address:port/directory/file

Ωστόσο, η χρήση ενός προγράμματος περιήγησης ιστού σε αυτό το πλαίσιο θα σας επιτρέψει μόνο να προβάλετε ή να κάνετε λήψη των αρχείων που σας ενδιαφέρουν. Για να αξιοποιήσετε πλήρως όλα τα πλεονεκτήματα του FTP, θα πρέπει να χρησιμοποιήσετε εξειδικευμένο λογισμικό ως πελάτης.

Ο έλεγχος ταυτότητας FTP χρησιμοποιεί ένα σχήμα ονόματος χρήστη/κωδικού πρόσβασης για την παραχώρηση πρόσβασης. Το όνομα χρήστη αποστέλλεται στον διακομιστή με την εντολή USER και ο κωδικός πρόσβασης αποστέλλεται με την εντολή PASS. Εάν οι πληροφορίες που παρέχονται από τον πελάτη γίνουν αποδεκτές από τον διακομιστή, τότε ο διακομιστής θα στείλει μια πρόσκληση στον πελάτη και η συνεδρία ξεκινά. Οι χρήστες μπορούν, εάν ο διακομιστής υποστηρίζει αυτήν τη δυνατότητα, να συνδεθούν χωρίς να παρέχουν διαπιστευτήρια, αλλά ο διακομιστής μπορεί να παραχωρήσει μόνο περιορισμένη πρόσβαση για τέτοιες περιόδους σύνδεσης.

Ο κεντρικός υπολογιστής που παρέχει την υπηρεσία FTP μπορεί να παρέχει ανώνυμη πρόσβαση FTP. Οι χρήστες συνήθως συνδέονται με "ανώνυμο" (μπορεί να γίνεται διάκριση πεζών-κεφαλαίων σε ορισμένους διακομιστές FTP) ως όνομα χρήστη. Αν και συνήθως ζητείται από τους χρήστες να δώσουν τη διεύθυνση email τους αντί για κωδικό πρόσβασης, δεν πραγματοποιείται καμία επαλήθευση. Πολλοί κεντρικοί υπολογιστές FTP που παρέχουν ενημερώσεις λογισμικού υποστηρίζουν ανώνυμη πρόσβαση.

Διάγραμμα πρωτοκόλλου

Η αλληλεπίδραση πελάτη-διακομιστή κατά τη διάρκεια μιας σύνδεσης FTP μπορεί να απεικονιστεί ως εξής:

Πρωτόκολλα SFTP και FTPS

Ασφαλές FTP

Το FTP δεν προοριζόταν αρχικά να είναι ασφαλές, καθώς προοριζόταν για επικοινωνίες μεταξύ πολλαπλών στρατιωτικών εγκαταστάσεων και υπηρεσιών. Όμως, με την ανάπτυξη και εξάπλωση του Διαδικτύου, ο κίνδυνος μη εξουσιοδοτημένης πρόσβασης έχει πολλαπλασιαστεί. Υπήρχε ανάγκη προστασίας των διακομιστών από διάφορους τύπους επιθέσεων. Τον Μάιο του 1999, οι συντάκτες του RFC 2577 συνόψισαν τα τρωτά σημεία στην ακόλουθη λίστα ζητημάτων:

  • Κρυφές επιθέσεις (επιθέσεις αναπήδησης)
  • Επιθέσεις πλαστογραφίας
  • Επιθέσεις ωμής βίας
  • Λήψη πακέτων, ρουφηξιά
  • Λιμάνι κλοπή

Το κανονικό FTP δεν έχει τη δυνατότητα να μεταφέρει δεδομένα σε κρυπτογραφημένη μορφή, με αποτέλεσμα τα ονόματα χρηστών, οι κωδικοί πρόσβασης, οι εντολές και άλλες πληροφορίες να υποκλαπούν εύκολα και εύκολα από τους εισβολείς. Η συνήθης λύση σε αυτό το πρόβλημα είναι η χρήση "ασφαλών", προστατευμένων με TLS εκδόσεις του ευάλωτου πρωτοκόλλου (FTPS) ή άλλου πιο ασφαλούς πρωτοκόλλου, όπως το SFTP/SCP, που παρέχεται με τις περισσότερες υλοποιήσεις πρωτοκόλλου Secure Shell.

FTPS

Το FTPS (FTP + SSL) είναι μια επέκταση του τυπικού πρωτοκόλλου μεταφοράς αρχείων που προσθέτει στη βασική του λειτουργικότητα τη δημιουργία κρυπτογραφημένων περιόδων σύνδεσης χρησιμοποιώντας το πρωτόκολλο SSL (Secure Sockets Layer). Σήμερα, η προστασία παρέχεται από το πιο προηγμένο αναλογικό TLS (Transport Layer Security).

SSL

Το πρωτόκολλο SSL προτάθηκε από την Netscape Communications το 1996 για να διασφαλίσει την ασφάλεια και το απόρρητο των συνδέσεων στο Διαδίκτυο. Το πρωτόκολλο υποστηρίζει έλεγχο ταυτότητας πελάτη και διακομιστή, είναι ανεξάρτητο από εφαρμογές και είναι διαφανές σε πρωτόκολλα HTTP, FTP και Telnet.

Το πρωτόκολλο SSL Handshake αποτελείται από δύο στάδια: έλεγχος ταυτότητας διακομιστή και προαιρετικός έλεγχος ταυτότητας πελάτη. Στο πρώτο στάδιο, ο διακομιστής ανταποκρίνεται στο αίτημα του πελάτη στέλνοντας το πιστοποιητικό του και τις παραμέτρους κρυπτογράφησης. Στη συνέχεια, ο πελάτης δημιουργεί ένα κύριο κλειδί, το κρυπτογραφεί με το δημόσιο κλειδί του διακομιστή και το στέλνει στον διακομιστή. Ο διακομιστής αποκρυπτογραφεί το κύριο κλειδί με το ιδιωτικό του κλειδί και επαληθεύει τον εαυτό του στον πελάτη επιστρέφοντας ένα μήνυμα πιστοποιημένο από το κύριο κλειδί του πελάτη.

Τα επόμενα δεδομένα κρυπτογραφούνται και ελέγχονται με κλειδιά που προέρχονται από αυτό το κύριο κλειδί. Στο δεύτερο βήμα, το οποίο είναι προαιρετικό, ο διακομιστής στέλνει ένα αίτημα στον πελάτη και ο πελάτης πιστοποιεί τον εαυτό του στον διακομιστή επιστρέφοντας το αίτημα με τη δική του ψηφιακή υπογραφή και ένα πιστοποιητικό δημόσιου κλειδιού.

Το SSL υποστηρίζει μια ποικιλία κρυπτογραφικών αλγορίθμων. Κατά τη δημιουργία της επικοινωνίας, χρησιμοποιείται το κρυπτοσύστημα δημόσιου κλειδιού RSA. Μετά την ανταλλαγή κλειδιών, χρησιμοποιούνται πολλοί διαφορετικοί κρυπτογράφηση: RC2, RC4, IDEA, DES και TripleDES. Χρησιμοποιείται επίσης το MD5 - ένας αλγόριθμος για τη δημιουργία μιας σύνοψης μηνυμάτων. Η σύνταξη για τα πιστοποιητικά δημόσιου κλειδιού περιγράφεται στο X.509.

Ένα από τα σημαντικά πλεονεκτήματα του SSL είναι η πλήρης ανεξαρτησία του λογισμικού-πλατφόρμας. Το πρωτόκολλο αναπτύσσεται με βάση τις αρχές της φορητότητας και η ιδεολογία της κατασκευής του δεν εξαρτάται από τις εφαρμογές στις οποίες χρησιμοποιείται. Επιπλέον, είναι επίσης σημαντικό ότι άλλα πρωτόκολλα μπορούν να επικαλύπτονται με διαφάνεια πάνω από το πρωτόκολλο SSL. είτε για περαιτέρω αύξηση του βαθμού προστασίας των ροών πληροφοριών στόχου είτε για προσαρμογή των κρυπτογραφικών δυνατοτήτων του SSL για κάποια άλλη, καλά καθορισμένη εργασία.

Σύνδεση SSL

Πρωτόκολλα SFTP και FTPS

Το ασφαλές κανάλι που παρέχεται από το SSL έχει τρεις κύριες ιδιότητες:

  • Το κανάλι είναι ιδιωτικό. Η κρυπτογράφηση χρησιμοποιείται για όλα τα μηνύματα μετά από έναν απλό διάλογο που χρησιμεύει για τον προσδιορισμό του μυστικού κλειδιού.
  • Το κανάλι είναι πιστοποιημένο. Η πλευρά του διακομιστή της συνομιλίας ελέγχεται πάντα, ενώ η πλευρά του πελάτη είναι προαιρετικά έλεγχος ταυτότητας.
  • Το κανάλι είναι αξιόπιστο. Η μεταφορά μηνυμάτων περιλαμβάνει έλεγχο ακεραιότητας (με χρήση του MAC).

Χαρακτηριστικά του FTPS

Υπάρχουν δύο υλοποιήσεις του FTPS, που χρησιμοποιούν διαφορετικές μεθόδους παροχής ασφάλειας:

  • Η σιωπηρή μέθοδος περιλαμβάνει τη χρήση του τυπικού πρωτοκόλλου SSL για τη δημιουργία μιας συνεδρίας πριν από την αποστολή δεδομένων, η οποία, με τη σειρά της, διακόπτει τη συμβατότητα με τους κανονικούς πελάτες και διακομιστές FTP. Για συμβατότητα προς τα πίσω με πελάτες που δεν υποστηρίζουν FTPS, η θύρα TCP 990 χρησιμοποιείται για τη σύνδεση ελέγχου και η 989 χρησιμοποιείται για τη μεταφορά δεδομένων. Αυτή διατηρεί την τυπική θύρα 21 για το πρωτόκολλο FTP. Αυτή η μέθοδος θεωρείται απαρχαιωμένη.
  • Το Explicit είναι πολύ πιο βολικό, καθώς χρησιμοποιεί τυπικές εντολές FTP, αλλά κρυπτογραφεί τα δεδομένα κατά την απόκριση, γεγονός που σας επιτρέπει να χρησιμοποιείτε την ίδια σύνδεση ελέγχου τόσο για FTP όσο και για FTPS. Ο πελάτης πρέπει να ζητήσει ρητά την ασφαλή μεταφορά δεδομένων από τον διακομιστή και στη συνέχεια να εγκρίνει τη μέθοδο κρυπτογράφησης. Εάν ο πελάτης δεν ζητήσει ασφαλή μεταφορά, ο διακομιστής FTPS έχει το δικαίωμα είτε να διατηρήσει είτε να κλείσει την μη ασφαλή σύνδεση. Ένας μηχανισμός διαπραγμάτευσης ελέγχου ταυτότητας και ασφάλειας δεδομένων προστέθηκε στο RFC 2228 που περιλαμβάνει τη νέα εντολή FTP AUTH. Αν και αυτό το πρότυπο δεν ορίζει ρητά μηχανισμούς ασφαλείας, διευκρινίζει ότι μια ασφαλής σύνδεση πρέπει να εκκινηθεί από τον πελάτη χρησιμοποιώντας τον αλγόριθμο που περιγράφεται παραπάνω. Εάν οι ασφαλείς συνδέσεις δεν υποστηρίζονται από τον διακομιστή, θα πρέπει να επιστραφεί ένας κωδικός σφάλματος 504. Οι πελάτες FTPS μπορούν να λάβουν πληροφορίες σχετικά με τα πρωτόκολλα ασφαλείας που υποστηρίζονται από τον διακομιστή χρησιμοποιώντας την εντολή FEAT, ωστόσο, ο διακομιστής δεν απαιτείται να αποκαλύψει τα επίπεδα ασφάλειας υποστηρίζει. Οι πιο συνηθισμένες εντολές FTPS είναι το AUTH TLS και το AUTH SSL, που παρέχουν ασφάλεια TLS και SSL, αντίστοιχα.

SFTP

Το SFTP (Secure File Transfer Protocol) είναι ένα πρωτόκολλο μεταφοράς αρχείων επιπέδου εφαρμογής που εκτελείται πάνω από ένα ασφαλές κανάλι. Δεν πρέπει να συγχέεται με το (Simple File Transfer Protocol), το οποίο έχει την ίδια συντομογραφία. Εάν το FTPS είναι απλώς μια επέκταση του FTP, τότε το SFTP είναι ένα ξεχωριστό και άσχετο πρωτόκολλο που χρησιμοποιεί το SSH (Secure Shell) ως βάση του.

Secure Shell

Το πρωτόκολλο αναπτύχθηκε από μία από τις ομάδες IETF που ονομάζεται Secsh. Η τεκμηρίωση εργασίας για το νέο πρωτόκολλο SFTP δεν έγινε επίσημο πρότυπο, αλλά άρχισε να χρησιμοποιείται ενεργά για την ανάπτυξη εφαρμογών. Στη συνέχεια, κυκλοφόρησαν έξι εκδόσεις του πρωτοκόλλου. Ωστόσο, η σταδιακή αύξηση της λειτουργικότητας σε αυτό οδήγησε στο γεγονός ότι στις 14 Αυγούστου 2006 αποφασίστηκε να σταματήσει η εργασία για την ανάπτυξη του πρωτοκόλλου λόγω της ολοκλήρωσης του κύριου έργου του έργου (ανάπτυξη SSH) και της έλλειψης επαρκούς επιπέδου ειδικών για να προχωρήσουμε στην ανάπτυξη ενός πλήρους πρωτοκόλλου απομακρυσμένου συστήματος αρχείων .

Το SSH είναι ένα πρωτόκολλο δικτύου που επιτρέπει τον απομακρυσμένο έλεγχο του λειτουργικού συστήματος και τη διοχέτευση των συνδέσεων TCP (για παράδειγμα, για μεταφορά αρχείων). Παρόμοιο σε λειτουργικότητα με τα πρωτόκολλα Telnet και rlogin, αλλά, σε αντίθεση με αυτά, κρυπτογραφεί όλη την κίνηση, συμπεριλαμβανομένων των μεταδιδόμενων κωδικών πρόσβασης. Το SSH επιτρέπει την επιλογή διαφορετικών αλγορίθμων κρυπτογράφησης. Οι πελάτες SSH και οι διακομιστές SSH είναι διαθέσιμοι για τα περισσότερα λειτουργικά συστήματα δικτύου.

Το SSH σάς επιτρέπει να μεταφέρετε με ασφάλεια σχεδόν οποιοδήποτε άλλο πρωτόκολλο δικτύου σε μη ασφαλές περιβάλλον. Έτσι, μπορείτε όχι μόνο να εργαστείτε απομακρυσμένα στον υπολογιστή σας μέσω του κελύφους εντολών, αλλά και να μεταδώσετε μια ροή ήχου ή βίντεο (για παράδειγμα, από μια κάμερα web) μέσω ενός κρυπτογραφημένου καναλιού. Το SSH μπορεί επίσης να χρησιμοποιήσει τη συμπίεση των μεταδιδόμενων δεδομένων για επακόλουθη κρυπτογράφηση, η οποία είναι βολική, για παράδειγμα, για την απομακρυσμένη εκκίνηση πελατών X WindowSystem.

Η πρώτη έκδοση του πρωτοκόλλου, SSH-1, αναπτύχθηκε το 1995 από τον ερευνητή Tatu Ulönen από το Τεχνολογικό Πανεπιστήμιο του Ελσίνκι (Φινλανδία). Το SSH-1 γράφτηκε για να παρέχει μεγαλύτερο απόρρητο από τα πρωτόκολλα rlogin, telnet και rsh. Το 1996, αναπτύχθηκε μια πιο ασφαλής έκδοση του πρωτοκόλλου, SSH-2, η οποία δεν είναι συμβατή με το SSH-1. Το πρωτόκολλο απέκτησε ακόμη μεγαλύτερη δημοτικότητα και μέχρι το 2000 είχε περίπου δύο εκατομμύρια χρήστες. Επί του παρόντος, ο όρος "SSH" συνήθως σημαίνει SSH-2, επειδή Η πρώτη έκδοση του πρωτοκόλλου πρακτικά δεν χρησιμοποιείται πλέον λόγω σημαντικών ελλείψεων. Το 2006, το πρωτόκολλο εγκρίθηκε από την ομάδα εργασίας IETF ως πρότυπο Διαδικτύου.

Υπάρχουν δύο κοινές εφαρμογές του SSH: ιδιωτικό εμπορικό και δωρεάν ανοιχτού κώδικα. Η δωρεάν υλοποίηση ονομάζεται OpenSSH. Μέχρι το 2006, το 80% των υπολογιστών στο Διαδίκτυο χρησιμοποιούσαν OpenSSH. Η ιδιόκτητη υλοποίηση έχει αναπτυχθεί από την SSH Communications Security, μια εξ ολοκλήρου θυγατρική της Tectia Corporation, και είναι δωρεάν για μη εμπορική χρήση. Αυτές οι υλοποιήσεις περιέχουν σχεδόν το ίδιο σύνολο εντολών.

Το πρωτόκολλο SSH-2, σε αντίθεση με το πρωτόκολλο telnet, είναι ανθεκτικό σε επιθέσεις υποκλοπής κίνησης ("sniffing"), αλλά δεν είναι ανθεκτικό σε επιθέσεις man-in-the-middle. Το πρωτόκολλο SSH-2 είναι επίσης ανθεκτικό σε επιθέσεις πειρατείας συνεδρίας, καθώς είναι αδύνατο να συμμετάσχετε ή να παραβιάσετε μια ήδη καθιερωμένη συνεδρία.

Για την αποφυγή επιθέσεων man-in-the-middle κατά τη σύνδεση σε έναν κεντρικό υπολογιστή του οποίου το κλειδί δεν είναι ακόμη γνωστό στον πελάτη, το λογισμικό πελάτη εμφανίζει στον χρήστη ένα «δαχτυλικό αποτύπωμα κλειδιού». Συνιστάται να ελέγχετε προσεκτικά το «στιγμιότυπο κλειδιού» που εμφανίζεται από το λογισμικό πελάτη με το στιγμιότυπο κλειδιού διακομιστή, το οποίο λαμβάνεται κατά προτίμηση μέσω αξιόπιστων καναλιών επικοινωνίας ή αυτοπροσώπως.

Η υποστήριξη SSH είναι διαθέσιμη σε όλα τα συστήματα που μοιάζουν με UNIX και τα περισσότερα έχουν έναν πελάτη και διακομιστή ssh ως τυπικά βοηθητικά προγράμματα. Υπάρχουν πολλές υλοποιήσεις πελατών SSH για λειτουργικά συστήματα που δεν ανήκουν στο UNIX. Το πρωτόκολλο απέκτησε μεγάλη δημοτικότητα μετά την ευρεία ανάπτυξη αναλυτών κίνησης και μεθόδων διακοπής της λειτουργίας των τοπικών δικτύων, ως εναλλακτική λύση στο μη ασφαλές πρωτόκολλο Telnet για τη διαχείριση σημαντικών κόμβων.

Επικοινωνία με χρήση SSH

Για να εργαστείτε μέσω SSH, χρειάζεστε έναν διακομιστή SSH και έναν πελάτη SSH. Ο διακομιστής ακούει για συνδέσεις από μηχανήματα-πελάτες και, όταν δημιουργηθεί μια σύνδεση, εκτελεί έλεγχο ταυτότητας, μετά τον οποίο ξεκινά την εξυπηρέτηση του πελάτη. Ο πελάτης χρησιμοποιείται για σύνδεση σε απομακρυσμένο μηχάνημα και εκτέλεση εντολών.

Πρωτόκολλα SFTP και FTPS

Σύγκριση με FTPS

Το κύριο πράγμα που διακρίνει το SFTP από τα τυπικά FTP και FTPS είναι ότι το SFTP κρυπτογραφεί απολύτως όλες τις εντολές, τα ονόματα χρήστη, τους κωδικούς πρόσβασης και άλλες εμπιστευτικές πληροφορίες.

Και τα δύο πρωτόκολλα FTPS και SFTP χρησιμοποιούν συνδυασμό ασύμμετρων αλγορίθμων (RSA, DSA), συμμετρικών αλγορίθμων (DES/3DES, AES, Twhofish κ.λπ.), καθώς και αλγορίθμου ανταλλαγής κλειδιών. Για έλεγχο ταυτότητας, το FTPS (ή για να είμαστε πιο ακριβείς, SSL/TLS μέσω FTP) χρησιμοποιεί πιστοποιητικά X.509, ενώ το SFTP (πρωτόκολλο SSH) χρησιμοποιεί κλειδιά SSH.

Τα πιστοποιητικά X.509 περιλαμβάνουν ένα δημόσιο κλειδί και ορισμένες πληροφορίες σχετικά με το πιστοποιητικό κατόχου. Αυτές οι πληροφορίες επιτρέπουν, από την άλλη πλευρά, να επαληθεύσουμε την ακεραιότητα του ίδιου του πιστοποιητικού, τη γνησιότητα και τον κάτοχο του πιστοποιητικού. Τα πιστοποιητικά X.509 έχουν ένα αντίστοιχο ιδιωτικό κλειδί, το οποίο συνήθως αποθηκεύεται χωριστά από το πιστοποιητικό για λόγους ασφαλείας.

Το κλειδί SSH περιέχει μόνο το δημόσιο κλειδί (το αντίστοιχο ιδιωτικό κλειδί αποθηκεύεται χωριστά). Δεν περιέχει πληροφορίες για τον κάτοχο του κλειδιού. Ορισμένες υλοποιήσεις SSH χρησιμοποιούν πιστοποιητικά X.509 για έλεγχο ταυτότητας, αλλά στην πραγματικότητα δεν επαληθεύουν ολόκληρη την αλυσίδα πιστοποιητικών—χρησιμοποιείται μόνο το δημόσιο κλειδί (πράγμα που καθιστά ατελή αυτόν τον έλεγχο ταυτότητας).

Συμπέρασμα

Το πρωτόκολλο FTP αναμφίβολα εξακολουθεί να παίζει σημαντικό ρόλο στην αποθήκευση και διανομή πληροφοριών στο δίκτυο, παρά την αξιοσέβαστη ηλικία του. Είναι ένα βολικό, πολυλειτουργικό και τυποποιημένο πρωτόκολλο. Πολλά αρχεία αρχείων έχουν δημιουργηθεί στη βάση του, χωρίς τα οποία η τεχνική εργασία δεν θα ήταν τόσο αποτελεσματική. Επιπλέον, είναι εύκολο να ρυθμιστεί και υπάρχουν προγράμματα διακομιστή και πελάτη για όλες σχεδόν τις τρέχουσες και όχι τόσο τρέχουσες πλατφόρμες.

Με τη σειρά τους, οι προστατευμένες εκδόσεις του επιλύουν το πρόβλημα της εμπιστευτικότητας των αποθηκευμένων και μεταδιδόμενων δεδομένων στον σύγχρονο κόσμο. Και τα δύο νέα πρωτόκολλα έχουν τα πλεονεκτήματα και τα μειονεκτήματά τους και εξυπηρετούν ελαφρώς διαφορετικούς ρόλους. Σε εκείνες τις περιοχές όπου απαιτείται αρχειοθέτηση αρχείων, είναι προτιμότερο να χρησιμοποιείτε το FTPS, ειδικά εάν το κλασικό FTP έχει ήδη χρησιμοποιηθεί εκεί στο παρελθόν. Το SFTP είναι λιγότερο κοινό λόγω της ασυμβατότητάς του με το παλιό πρωτόκολλο, αλλά είναι πιο ασφαλές και έχει μεγαλύτερη λειτουργικότητα, αφού αποτελεί μέρος του συστήματος απομακρυσμένης διαχείρισης.

Κατάλογος πηγών

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο