Le transfert de fichiers s’effectue via FTP mais ce transfert n’est pas sécurisé, on optera alors pour sa version sécurisée le FTPS ou le SFTP.
TL;DR
FTPS ➔ SSL/TLS ➔ Certificats ➔ soit FTP dans un tunnel SSL/TLS
- Deux connexions, sécurisées après la demande de chiffrement entre les serveurs
SFTP ➔ SSH ➔ Clés ➔ FTP dans un tunnel SSH
- Une seule connexion sur le port 22, sécurisée dès le début
Note : seul le FTP fonctionne en browser (mais n’est pas sécurisé)
Le FTPS
Le FTPS est en fait du FTP avec une couche SSL en plus pour le côté sécurité que cela apporte. L’utilisation du SSL permet d’exiger l’utilisation d’un certificat pour sécuriser la communication entre le client et le serveur.
Généralement, on utilise des connexions FTP avec chiffrement explicite. De ce fait, la connexion s’effectue sur le port 21 (standard) puis la commande AUTH TLS
ou AUTH SSL
est envoyée au serveur afin de lui demander de chiffrer le transfert de commandes. Ensuite, une seconde commande nommée PROT P
est envoyée afin de demander au serveur de chiffrer le transfert des données.
L’utilisation du FTPS implique que le serveur FTP distant soit configuré de façon à gérer les connexions sécurisées.
FTPS (également appelé FTPES, FTP-SSL, S-FTP et FTP Secure) est une extension du protocole FTP (File Transfer Protocol) couramment utilisé qui ajoute la prise en charge de TLS (Transport Layer Security) et de SSL (Secure Sockets Layer).
FTPS ne doit pas être confondu avec le protocole SFH (SSH File Transfer Protocol), un sous-système de transfert de fichiers sécurisé pour le protocole Secure Shell (SSH) avec lequel il n’est pas compatible. Il diffère également de FTP sur SSH, la pratique consistant à utiliser un tunnel FTP via une connexion SSH.
On pourra utiliser des certificats de type X.509 avec le FTPS
FTPS implicite et explicite
Le FTPS en mode implicite utilise le port de commande 990 et le port de données 989 avec le schéma d’URI ftps:// .
Le FTPS en mode explicite utilise le port de commande standard 21 avec le schéma d’URI ftpes:// ou ftp:// .
FTPES (explicite)
La différence entre FTPS et FTPES est qu’en mode FTPES, le client FTP doit effectuer explicitement une requête de sécurité sur le serveur puis l’utilisateur devra manuellement valider le choix de la méthode de chiffrement proposé sinon la connexion pourra être limité voir tout simplement refusée.
Le SFTP
Le SFTP quant à lui signifie SSH File Transfer Protocol ou Secure File Transfer Protocol. En fait, ce protocole est désigné comme une extension du protocole SSH qui permet d’effectuer du transfert de fichiers. On pourrait parler de transfert FTP encapsulé dans un tunnel SSH sécurisé.
Il utilise uniquement le port SSH (22), aussi bien pour le transfert des données que pour le contrôle.
Documentation
https://www.goanywhere.com/blog/2016/11/23/sftp-vs-ftps-the-key-differences