Lorsque l’on cherche à transférer des fichiers entre PC, on tombe sur différents méthodes et protocoles comme SFTP, FTPS, SCP, rsync, etc.
Certaines sont plus sûres que d’autres et offrent des avantages mais aussi des inconvénients.
Dans ce tutoriel, nous allons nous intéresser à SFTP et FTPS : deux protocoles de transferts de fichiers différents.
Quelle est le plus sûr ? Le plus rapide et le plus sûr ?
Table des matières
SFTP VS FTPS : Différences dans les protocoles de transferts de fichiers
FTPS
FTPS (FTP Over TLS) est une version sûr de FTP à travers une version chiffrée afin d’éviter que les données passent en clair sur le réseau.
Le but est aussi de protéger contre les attaques de type Man in the Middle.
FTPS est donc une version de FTP avec une surcouche TLS (ou anciennement SSL).
Ainsi, on installe un certificat électroniques du type X.509 sur le serveur FTP un peu comme avec les sites HTTPS.
Lors de l’établissement de la connexion FTP, le client envoie la commande “AUTH TLS” au serveur FTP pour demander à passer les commandes de manière chiffrés.
Puis la commande “AUTH SSL” pour demander au serveur de chiffrer le canal de commande et de données.
Si ce dernier accepte les connexions chiffrées, une négociation s’effectue pour chiffrer la connexion.
Comme FTP, FTPS utilise deux ports par défaut pour chaque canal : l’un pour les commandes l’autre pour le transfert de données.
Les ports par défaut diffèrent selon la méthode choisie :
- Ports 21 et 20 (ou une plage de ports)
- Ports 990 et 989 (ou une plage de ports)
La plupart des serveurs FTP supportent FTPS, c’est notamment le cas de FileZilla Server, ProFTPD ou VSFTpd
SFTP
SFTP (SSH File Transfert Protocol ou Secure File Transfert Protocol) est un protocole de transfert de fichiers qui s’appuient sur SSH. On peut donc le voir comme une extension de SSH.
Ainsi SFTP utilise le port par défaut 22 comme SSH et l’établissement de la connexion est identique.
Cela implique que l’envoie du mot de passe est chiffré.
De ce fait, son installation est plus simple que FTP notamment lorsque la machine distante est derrière un pare-feu.
Enfin SFTP possède des fonctionnalités supplémentaires par exemple pour Synchroniser les horodatages.
Résumé des différences : ports, type de chiffrement, …
FTPS | SFTP | |
Port | 990 et 989 ou 20 et 21 | 22 |
Type de chiffrement | TLS avec un certificat électronique | Algorithme par défaut de SSH (AES, …) |
Etablissement de la connexion | mot de passe | Echange de clés SSH ou mot de passe |
FTPS VS SFTP : quel est le meilleur ?
La connexion établie avec SFTP est construite sur un protocole sécurisé depuis le début.
Tant dis qu’en FTPS, on se connecte en clair puis on négocie la connexion TLS.
SFTP gère l’authentification par clé SSH.
Les clés SSH sont un moyen de s’authentifier en toute sécurité sans mot de passe. La configuration de clés SSH est particulièrement utile si vous devez effectuer des connexions sans mot de passe pour des processus automatisés.
Enfin SFTP n’utilise qu’un seul port, le port SSH par défaut, soit donc le port 22.
Avec les connexions FTP ou FTPS, vous devez ouvrir à la fois le port 21 (le port de contrôle) et une plage de ports hauts pour le canal de données.
C’est plus complexe à mettre en place.
De plus, cela crée une plus grande empreinte de port ouvert.
A partir de là, la vitesse de transfert de fichiers est identique pour les deux protocoles.
Liens
- Protocole FTP pour partager ses fichiers : principe et fonctionnement
- 7 meilleurs logiciels de transfert de fichiers en SFTP, FTPS pour Windows
- SCP, WINSCP, PSCP : transférer des fichiers Linux et Windows
- WinSCP : transférer des fichiers de Windows vers Linux en SFTP, SCP, FTPS
- WinSCP : Synchronisation automatique, manuel de fichiers ou dossiers distants
- rsync : synchroniser, copier des fichiers à distance ou locaux
- Monter un partage Windows sous Linux avec Samba
- Comment utiliser smbclient avec des exemples
- mount et fstab : monter des partitions de disques ou NFS, CIFS sur Linux
- NFS : Partage réseau de dossiers sur Linux
- SSH : comment ça marche
- Comment se connecter en SSH à un serveur distant
- Copier des fichiers ou répertoire dans un terminal sur Linux