Aller au contenu

FTP / FTPS

FTP (File Transfer Protocol) est l’un des plus anciens protocoles Internet encore en usage, dédié au transfert de fichiers entre un client et un serveur. Sa conception ancienne (1971, révisée en 1985) le rend malcommode dans un monde de pare-feux et de NAT — d’où la préférence croissante pour SFTP.

FTP utilise deux connexions distinctes :

  • Un canal de contrôle (port 21), qui reste ouvert pendant toute la session, pour les commandes (lister un répertoire, demander un fichier).
  • Un canal de données, ouvert séparément pour chaque transfert de fichier ou listing.

Deux modes existent pour ce canal de données :

  • Actif : le serveur initie une connexion vers le client sur un port qu’il annonce — problématique dès que le client est derrière un NAT/pare-feu, puisqu’une connexion entrante non sollicitée est bloquée par défaut.
  • Passif : le client initie les deux connexions vers le serveur, sur un port aléatoire que le serveur annonce — plus compatible avec les pare-feux clients, mais impose d’ouvrir une large plage de ports côté serveur.

Cette architecture à deux canaux, avec des ports négociés dynamiquement en plein milieu de la session, est précisément ce qui rend FTP difficile à sécuriser proprement derrière un pare-feu moderne (voir aussi SIP, confronté à un problème similaire de négociation dynamique).

FTP transmet tout en clair par défaut — identifiants, commandes, et contenu des fichiers. FTPS (FTP over TLS, à ne pas confondre avec SFTP) ajoute une couche TLS sur ce même modèle à deux canaux, en chiffrant les échanges — mais hérite de la même complexité de négociation de ports que FTP classique.

SFTP résout le problème à la racine : un seul canal (celui de SSH), donc un seul port à gérer, et un chiffrement de bout en bout par construction plutôt qu’en option. FTP/FTPS reste néanmoins présent dans des systèmes existants plus anciens, ou imposé par certains prestataires ou équipements industriels.