FTP: L’envoi de fichier
Le protocole FTP, pour File Transfer Protocol, est un protocole standard de l’Internet dédié à l’échange de fichiers entre un client et un serveur sur un réseau informatique. Il fournit un moyen systématique pour les ordinateurs de se connecter, de naviguer dans les dossiers et répertoires, et de transférer des fichiers de manière bidirectionnelle. Il permet également de manipuler des dossiers et des fichiers distants, comme si ces opérations étaient effectuées sur le système local de l’utilisateur.
Le protocole FTP est défini la RFC 959 étant la spécification originelle qui décrit le protocole en détail. Pour établir une connexion et transférer des données, FTP utilise principalement le protocole TCP, car il nécessite une transmission de données fiable et ordonnée, ce que TCP garantit. FTP utilise deux ports distincts pour le transfert de données : le port 21 pour la commande et le contrôle de la connexion, et le port 20 pour le transfert de données proprement dit. Cet usage de ports séparés est conçu pour faciliter la distinction entre les commandes et les données, permettant ainsi une meilleure gestion et sécurité des transferts.
Le fonctionnement du protocole FTP est basé sur une architecture client-serveur et utilise deux canaux de communication distincts entre le client et le serveur : le canal de commande et le canal de données.
- Canal de commande : Ce canal est utilisé pour la connexion initiale et la transmission des commandes entre le client FTP et le serveur FTP. Les commandes incluent des opérations telles que l’authentification de l’utilisateur (avec un nom d’utilisateur et un mot de passe), la navigation dans le système de fichiers du serveur, et d’autres commandes nécessaires pour préparer le transfert de fichiers.
- Canal de données : Une fois que le client FTP a envoyé une commande pour transférer des fichiers, le canal de données est ouvert. Sur ce canal, les données réelles du fichier sont transférées entre le client et le serveur. Il est important de noter que le canal de données peut être établi de différentes manières, soit en mode actif soit en mode passif.
- Mode actif : Dans ce mode, le client ouvre un port aléatoire et informe le serveur de se connecter à ce port pour le transfert de données. Le client attend alors la connexion du serveur pour commencer le transfert.
- Mode passif: Pour des raisons de facilité de traversée de pare-feu, le mode passif est souvent préféré. Dans ce mode, le serveur ouvre un port aléatoire et envoie cette information au client. Le client est ensuite responsable de l’initiation de la connexion de données vers le serveur.
FTP gère également différents types de transfert, tels que le transfert en mode ASCII pour les textes et le mode binaire pour les fichiers binaires, garantissant ainsi que les fichiers sont correctement transférés sans corruption de données. De plus, FTP peut être exécuté en mode anonyme, où les utilisateurs peuvent se connecter avec un nom d’utilisateur anonyme et souvent sans mot de passe, ou avec une authentification qui nécessite un nom d’utilisateur et un mot de passe valides.
Durant le transfert, les utilisateurs peuvent exécuter des commandes pour mettre en pause, reprendre ou annuler les transferts, et vérifier l’intégrité des fichiers transférés. Une fois le transfert de fichiers terminé, la connexion peut être fermée proprement en utilisant une commande de déconnexion sur le canal de commande, permettant ainsi aux ports utilisés d’être libérés et au serveur de terminer la session.
Bien que le protocole FTP standard ait été largement utilisé pour le transfert de fichiers, il existe plusieurs variantes qui répondent à des besoins spécifiques en matière de sécurité et de fonctionnalité.
- TFTP (Trivial FTP) : À l’opposé, TFTP est une version simplifiée de FTP. Conçu pour être plus léger et plus rapide que FTP, TFTP est utilisé principalement pour le transfert de fichiers au sein de réseaux locaux ou lors de processus où les besoins en sécurité sont limités. TFTP utilise le protocole UDP pour le transfert de données, ce qui le rend plus rapide, mais moins fiable que TCP. De plus, TFTP ne nécessite pas d’authentification par nom d’utilisateur ou mot de passe, ce qui simplifie les transactions, mais pose également des questions de sécurité. TFTP est souvent utilisé pour le transfert de fichiers de configuration ou de firmware vers des périphériques réseau tels que des routeurs ou des commutateurs dans des environnements contrôlés.
- FTPS (FTP Secure) : FTPS est une extension du protocole FTP qui ajoute une couche de sécurité grâce à l’utilisation des protocoles SSL/TLS. Cette sécurisation est essentielle, car le FTP standard transmet les informations d’authentification et les données en clair, ce qui peut être intercepté et lu par n’importe qui. FTPS permet d’établir un canal chiffré entre le client et le serveur, assurant ainsi la confidentialité et l’intégrité des données et des commandes transmises.