Πρωτόκολλο Μεταφοράς Αρχείων: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Makecat-bot (συζήτηση | συνεισφορές)
μ r2.7.3) (Ρομπότ: Αλλαγή kk:FTP σε kk:File Transfer Protocol
μΧωρίς σύνοψη επεξεργασίας
Γραμμή 3:
== Ιστορία ==
 
Οι πρώτοι κανόνες για ανάπτυξη μηχανισμών ανταλλαγής αρχείων απαντώνται το 1971, όταν αναπτύχθηκαν για χρήση στο [[M.I.T]]. Περιγράφονται στο RFC 114 και ακολουθούν σχόλια και συζητήσησυζήτηση πάνω στο RFC 141. Αξίζει να αναφερθεί τo RFC 354, το οποίο αντικατέστησε τα ξεπερασμένα RFC 264 και RFC 265. Στο νέο RFC το FTP οριζόταν ως πρωτόκολλο ανταλλαγής αρχείων ανάμεσα σε hosts του δικτύου [[ARPANET]]. Πρωταρχικοί στόχοι του πρωτοκόλλου ήταν η εύκολη και αξιόπιστη μεταφορά αρχείων και η εύκολη αξιοποίηση των δυνατοτήτων για απομακρυσμένη αποθήκευση αρχείων.
 
Τελικά, δημοσιεύτηκε ένα επίσημο έγγραφο για το FTP στο RFC 454. Ακολούθησαν και άλλα επίσημα RFCs αλλά, αν και μέχρι τον Ιούλιο του 1973 είχαν γίνει σημαντικές αλλαγές από τις τελευταίες εκδόσεις του, η δομή του παρέμενε ίδια. Πολλές υλοποιήσεις (implementations) του πρωτοκόλλου βασίζονταν σε παλαιότερες μη ενημερωμένες εκδόσεις.
Γραμμή 27:
=== Passive mode ===
 
Στην παθητική λειτουργία (passive mode) ο client ζητά από τον server να διαλέξει μια τυχαία θύρα, στην οποία θα "ακούει" (listen) για την σύνδεση δεδομένων (data connection). Ο server ενημερώνει τον client για την θύρα την οποία έχει διαλέξει και ο client συνδέεται σε αυτή για τη μεταφορά των δεδομένων. HΗ μεταφορά ολοκληρώνεται όπως και στην ενεργητική λειτουργία (active mode), αφού η σύνδεση δεδομένων βασίζεται στο TCP
[[Αρχείο:Ftp-passive.PNG|center]]
 
Γραμμή 48:
Στην ενεργητική λειτουργία o FTP server ξεκινά μια σύνδεση δεδομένων συνδεόμενος στην εξωτερική διεύθυνση IP της πύλης (gateway) [[NAT]]. Στην άλλη πλευρά, το μηχάνημα το οποίο είναι υπεύθυνο για τη "μετάφραση" των εσωτερικών [[διεύθυνση IP|διευθύνσεων IP]] του δικτύου στην εξωτερική, θα πάρει το SYN πακέτο για τη δημιουργία της σύνδεσης. Όμως, στον πίνακα κατάστασης (state table) του ΝΑΤ, στον οποίο διατηρείται το ιστορικό μεταφράσεων, δεν έχει καταγραφεί κανένα, με αποτέλεσμα το πακέτο να απορρίπτεται (γίνεται drop). To πακέτο δεν φτάνει ποτέ στον client, δεν σχηματίζεται σύνδεση δεδομένων και η μεταφορά δεδομένων είναι αδύνατη.
 
Στην παθητική λειτουργία, επειδή η θύρα στην οποία συνδεέταισυνδέεται ο server είναι τυχαία, είναι πιθανόν να μην επιτρέπεται σύνδεση προς τον [[port number|αριθμό]] της από το λογισμικό - τείχος προστασίας (firewall). Σε αυτή την περίπτωση η σύνδεση δεδομένων δεν θα σχηματιστεί και, επομένως, δεν θα μεταφέρονται δεδομένα.
 
=== Έλλειψη κρυπτογράφησης ===
Γραμμή 54:
Τα δεδομένα που ανταλλάσσονται μέσω FTP δεν είναι κρυπτογραφημένα, με αποτέλεσμα οι εντολές που αποστέλλονται μέσω της control connection να είναι απλό κείμενο. Για το λόγο αυτό μπορούν εύκολα, με τη χρήση ενός [[sniffer]], να αλιευθούν, να διαβασθούν και να ξανασταλούν ανάλογα με τη βούληση του επιτιθέμενου. Ανάμεσα σε αυτές, η εντολή που χρησιμοποιείται για να γίνει login σε ένα λογαριασμό FTP, με σύνταξη "PASS password", παρέχει στον επιτιθέμενο τον κωδικό του χρήστη. Αν συνδυαστεί με την εντολή "USER", με την οποία αποστέλεται το όνομα του χρήστη, ο επιτιθέμενος μπορεί να χρησιμοποιήσει τα στοιχεία για να εισέλθει στον ξένο λογαριασμό με τα ίδια δικαιώματα.
 
Επειδή οι περισσότεροι άνθρωποι τείνουν να επαναχρησιμοποιούν κωδικούς, ο επιτιθέμενος έχει αυξήσει τις πιθανότητες του σε μια [[brute-force attack]]. Με αυτό τον τρόπο, είναι πιθανό να αποκτήσει έλεγχο του συστήματος του χρήστη μόλις βρείβρει τη διεύθυνση IP του, ανιχνεύοντας την έναρξη της συνόδου FTP (FTP session).
 
=== Man-in-the-middle ===
 
Με το κύριο File Transfer Protocol, ο server δεν εξασφαλίζει ότι ο client είναι αυτός που λέει, ούτε ο client αντίστοιχα για τον server. Ευκολονόητο, εφόσον το FTP δεν απαιτεί επαλήθευση των hosts και δεν ελέγχει αν τα δεδομένα προέρχονται από αυτούς, ούτε τα προστατεύει. Για αυτό το λόγο και τα δύο άκρα που ανταλλάσουνανταλλάσσουν δεδομένα, είναι ανοιχτά σε [[man-in-the-middle attack]] από κάποιον επιτιθέμενο που συλλαμβάνει τα πακέτα του κάθε host, και στέλνει ψευδείς απαντήσεις.
 
== Δείτε επίσης ==