Cette section présente les protocoles SSH et SSH/FTP, et les compare à FTP sur SSL.
SSH/FTP est souvent désigné par l'acronyme « SFTP ». Malgré leur relative homonymie, SFTP et FTP sur SSL (communément appelé FTPS) sont deux protocoles totalement différents
SSH est une proposition de norme Internet documentée dans la RFC 4251, tandis que SSH/FTP est une proposition de norme Internet à l'état d'ébauche (non encore publiée en tant que RFC). SSL (ce terme est généralement suivi de TLS, la version la plus récente de Secure Socket Layer) est une proposition de norme documentée dans la RFC 2246, et FTP une norme Internet officielle documentée dans la RFC 959.
Globalement, le protocole SSH est disponible dans deux versions principales : SSH1 et SSH2. MOVEit Transfer SSH prend uniquement en charge la version la plus courante du protocole, c'est-à-dire SSH2. Alors que SSH2 est un protocole bien établi, le protocole SSH/FTP continue de subir d'importantes révisions, dont certaines sont incompatibles avec les versions précédentes. Cela vient du fait que SSH/FTP n'a pas encore atteint le statut de « RFC ».
Le protocole SFTP se décline en plusieurs versions : 1, 2, 3 et 4. Au moment de la publication de ce document, la version 4 est toute récente et n'a pas encore été implémentée par des clients ou serveurs connus. MOVEit Transfer SSH implémente la version 3 du protocole.
Les sessions SSH/FTP se composent d'une série de paquets de commande et de réponse. Ces paquets contiennent des informations binaires structurées, notamment des codes de commande et de réponse sous forme de nombres entiers. Les commandes correspondent à des routines d'E/S de système de fichiers, telles que Open(), Read(), Write() et Close(). Pour télécharger un fichier, par exemple, le client SSH/FTP doit ouvrir le fichier à l'aide d'une commande Open, suivie de plusieurs commandes Read et d'une commande Close.
Par opposition, FTP et FTP sur SSL utilisent des commandes ASCII délimitées par une séquence de retour à la ligne CR LF. Par exemple, pour télécharger un fichier, le client envoie une commande « PORT » ou « PASV » pour établir la connexion aux données, suivie d'une commande « RETR » indiquant le nom du fichier.
SSH utilise le même port TCP, généralement le port 22, pour tous les types de connexions. SSL se sert en revanche de numéros de port différents selon l'application. Par exemple, le port 443 est en principe utilisé pour HTTP sur SSL, et le port 990 pour une version de FTP sur SSL. De plus, FTP emploie plusieurs numéros de port lors des transferts de fichiers puisque chaque transfert individuel crée une nouvelle connexion sur un nouveau port.
Le fait que le port 22 soit utilisé pour tous les services SSH complique quelque peu l'exécution de plusieurs produits serveur SSH sur un même ordinateur. Mais cela pose rarement problème aux systèmes exécutant MOVEit Transfer. Plus important encore, comme le port 22 est le seul requis pour SFTP (il n'y a pas de ports de données séparés), le protocole SSH/FTP offre une plus grande compatibilité avec les pare-feu que FTP sur SSL.
Les protocoles SSH et SSL s'appuient tous les deux sur un cryptage à clé publique pour échanger la clé de session, laquelle est ensuite utilisée pour crypter les commandes et données transmises sur le réseau. Le niveau de sécurité des algorithmes utilisés par SSH et SSL est similaire, mais SSH ne prend PAS en charge le concept d'autorité de certification.
SSL exige un certificat, généralement acheté auprès d'une autorité de certification telle que www.thawte.com. Un certificat garantit l'identité du serveur. SSH utilise une approche différente qui veut que chaque serveur crée sa propre clé publique. Aucune autorité de certification ne se porte garante de l'identité des serveurs SSH. Pour pallier cette lacune, par convention, chaque client SSH mémorise la clé publique de chacun des serveurs auxquels il s'est connecté. Si, lors d'une tentative de connexion ultérieure, le serveur présente une clé publique différente, le client SSH prévient l'utilisateur qu'un serveur malveillant a peut-être usurpé l'identité du serveur SSH d'origine.
Toutes ces différences alourdissent l'administration des serveurs FTP sur SSL (FTPS) par rapport à leurs homologues SSH/FTP (SFTP). Mais en raison de leur système de certificats plus sophistiqué, les serveurs FTPS sont légèrement plus sécurisés.