Protocole de transfert de fichiers (FTP)

Qu’est-ce que le FTP ?

Le protocole de transfert de fichiers (en anglais File Transfer Protocol ou FTP) est un protocole de communication normalisé utilisé pour transférer des fichiers informatiques entre un client et un serveur via un réseau. Développé au début des années 1970, le FTP est devenu un protocole fondamental d’Internet. Son cadre opérationnel suit un modèle client-serveur, où le client établit une connexion avec le serveur pour faciliter le transfert de fichiers. Notamment, le FTP utilise des connexions de contrôle et de données distinctes pour optimiser le processus de transfert.

Une illustration de la façon dont fonctionne FTP, montrant comment un client FTP envoie des fichiers à travers un serveur FTP central et un autre client FTP les reçoit
Diagramme : Le rôle de FTP dans la facilitation du transfert de fichiers entre clients et un serveur, représentant le processus de téléchargement et de téléversement dans un format simplifié

Aperçu du protocole

Le FTP fonctionne via deux connexions distinctes pour faciliter le transfert de fichiers entre le client et le serveur : la connexion de contrôle et la connexion de données.

  • Connexion de contrôle : Cette connexion est établie initialement et gère l’échange de commandes et de réponses entre le client et le serveur. Elle opère généralement sur le port 21.
  • Connexion de données : Contrairement à la connexion de contrôle, la connexion de données est établie de manière dynamique pour transférer les données réelles des fichiers.

Le FTP fonctionne en deux modes pour les transferts de fichiers :

Mode ActifMode Passif
Le client spécifie l’adresse IP du serveur et le numéro de port pour se connecterLe serveur fournit une adresse IP et un numéro de port, permettant au client d’établir une connexion pour le transfert de fichiers

Le choix d’utiliser le mode actif ou passif dépend de la configuration du réseau et de la capacité à établir des connexions de données à travers les pare-feu et les dispositifs NAT.

Traversée des NAT et des pare-feu

Les connexions FTP rencontrent souvent des obstacles lorsqu’elles traversent des dispositifs de traduction d’adresse réseau (NAT) et des pare-feu. Les dispositifs NAT modifient les adresses IP et les numéros de port des paquets lors de leur passage, ce qui peut perturber l’établissement de la connexion de données dans le FTP. De même, les pare-feu peuvent bloquer les demandes de connexion entrantes pour la connexion de données.

Pour surmonter ces défis, le FTP intègre une commande PASV (Passive), permettant au serveur de désigner une adresse IP et un numéro de port pour que le client se connecte afin de transférer les données. Ce mécanisme aide à contourner les restrictions imposées par les pare-feu et les dispositifs NAT. De plus, certains pare-feu prennent en charge des passerelles au niveau de l’application capables d’inspecter le trafic FTP et d’ouvrir et de fermer dynamiquement des ports selon les besoins pour le transfert de données.

Support logiciel pour le FTP

Au fil du temps, les transferts de fichiers FTP ont été simplifiés grâce à diverses applications logicielles. Initialement, les clients FTP étaient principalement des interfaces en ligne de commande. Cependant, avec les progrès technologiques, des applications de client FTP plus conviviales ont émergé. Ces applications offrent des fonctionnalités telles que le glisser-déposer, la reprise des transferts interrompus et des interfaces graphiques utilisateur (GUI) pour une navigation simplifiée.

De plus, de nombreux navigateurs web ont intégré des fonctionnalités de client FTP, permettant aux utilisateurs d’accéder directement aux serveurs FTP. Cependant, en raison des préoccupations en matière de sécurité et du déclin de la prévalence du protocole, les principaux navigateurs ont progressivement abandonné le support du FTP.

Considérations de sécurité

Bien que le FTP serve de protocole pratique pour les transferts de fichiers, ses vulnérabilités en matière de sécurité sont une préoccupation notable. Parmi celles-ci, la transmission des informations d’identification de connexion et des données de fichiers en texte clair, les rendant susceptibles à l’écoute et à l’accès non autorisé.

Pour remédier à ces lacunes de sécurité, plusieurs alternatives sécurisées au FTP traditionnel ont été développées :

  • FTPS (FTP sur SSL/TLS) : Cette solution améliore le protocole FTP en incorporant une couche de cryptage supplémentaire. En utilisant des certificats SSL/TLS, le FTPS authentifie le serveur et crypte la transmission des données, renforçant significativement la sécurité par rapport au FTP simple.
  • SFTP (Protocole de transfert de fichiers SSH) : Le SFTP utilise SSH (Secure Shell) pour des transferts de fichiers sécurisés. En établissant une connexion chiffrée entre le client et le serveur, le SFTP garantit l’intégrité et la confidentialité des données transférées. Contrairement au FTPS, le SFTP simplifie la configuration en éliminant le besoin de numéros de port séparés pour les connexions de contrôle et de données.

FTP vs. HTTP : Différences clés

Bien que le FTP et le HTTP soient tous deux utilisés pour transférer des fichiers sur Internet, ils diffèrent sur plusieurs aspects clés.

CaractéristiqueFTPHTTP
ConnexionCanaux de contrôle et de données séparésConnexion unique pour le contrôle et les données
ÉtatÉtat (maintient les informations de session)Stateless (chaque requête est indépendante)
AdaptabilitéGros fichiers, transferts reprisesFichiers plus petits, simplicité et facilité d’utilisation
SécuritéMoins sécurisé (FTP traditionnel)Peut être sécurisé avec HTTPS
Mise en cacheNonOui (améliore les performances pour les répétitions)

Références

  1. Active FTP vs. Passive FTP, a Definitive Explanation”. Slacksite.com.
  2. RFC 959 (Standard) File Transfer Protocol (FTP). Postel, J. & Reynolds, J. (October 1985).
  3. FTP”. docs.kde.org.
  4. File Transfer Protocol – Wikipedia
  5. What is File Transfer Protocol (FTP) meaning | Fortinet
  6. What Is File Transfer Protocol (FTP) and What Is It Used for?
  7. What is FTP: File Transfer Protocol Explained for Beginners

Additional Resources