À l’ère de la communication numérique, il est indispensable pour les utilisateurs et les administrateurs système de posséder des outils qui garantissent une activité à distance à la fois sûre, protégée et rapide.
Lorsqu’il s’agit de méthodes de connexion à distance, deux protocoles se distinguent : SSH et Telnet.
Lequel de ces deux protocoles, SSH ou Telnet, est le plus adapté ? Cet article examinera lequel est le plus performant pour l’accès à distance. Découvrons les différences à travers cette comparaison SSH vs Telnet.
Qu’est-ce que l’accès à distance ?
L’accès à distance permet aux utilisateurs ou aux administrateurs de se connecter à des ordinateurs ou des dispositifs situés sur des réseaux, et ce, depuis n’importe quel endroit grâce à Internet. Cette fonctionnalité permet d’effectuer diverses actions, notamment le transfert de fichiers, la collaboration et la sécurisation du trafic applicatif.
L’accès à distance est essentiel au bon fonctionnement et à la pérennité des organisations. De plus, les administrateurs ont besoin d’un accès à distance fiable pour gérer les serveurs, les réseaux et les applications sans avoir à se déplacer physiquement sur les sites concernés.
Qu’est-ce que SSH ?
Secure Shell (SSH) est un protocole réseau qui permet à des ordinateurs de communiquer en toute sécurité, même au sein d’un réseau non protégé.
Une fois qu’une connexion sécurisée est établie, l’utilisateur ou l’administrateur peut se connecter à la machine distante et exécuter des applications à distance, ou encore utiliser la connexion cryptée de bout en bout pour déplacer des fichiers sur le réseau.
SSH fait référence à un ensemble de technologies et d’utilitaires qui implémentent le protocole SSH. Pour sécuriser SSH, plusieurs techniques sont utilisées, notamment l’authentification par clé publique, les communications de données cryptées et l’authentification par mot de passe robuste.
L’entreprise à l’origine du développement de SSH est Netscape Communications Corporation. Cependant, c’est un informaticien finlandais, Tatu Ylonen, qui a créé les premières bases de SSH. Il a développé ce protocole après avoir découvert un renifleur de mot de passe secret sur son réseau nouvellement créé.
Comment fonctionne SSH ?
SSH remplace les anciens protocoles de connexion à distance tels que Telnet, rlogin, rsh, etc. Bien que populaires, ces protocoles sont souvent considérés comme peu sécurisés. SSH est si performant que les utilisateurs l’utilisent aujourd’hui de préférence à des protocoles de transfert de fichiers comme la copie à distance (rcp) et le protocole de transfert de fichiers (FTP).
SSH fonctionne selon un modèle client-serveur, où un client SSH se connecte à un serveur SSH.
- Le client SSH est un logiciel installé sur un ordinateur ou un appareil qui initie le protocole SSH. Le client envoie une requête au serveur SSH et attend que celui-ci accepte la requête. Le client SSH utilise le chiffrement à clé publique pour vérifier qu’il se connecte au bon serveur. Cela permet d’éviter que des acteurs malveillants ne se fassent passer pour un serveur et ne volent des données importantes au client.
- Le serveur SSH gère les connexions SSH et exécute le service. Pour accepter la requête entrante, le serveur SSH écoute en permanence le port TCP 22 (par défaut). Une fois qu’il reçoit une requête, il y répond. Le serveur SSH vérifie et authentifie également le client à l’aide de l’authentification par clé publique. Ce n’est qu’après une authentification réussie que le client obtient l’accès au système hôte.
Le client et le serveur choisissent ensemble le cryptage. Ils peuvent choisir de désactiver les cryptages les moins performants. De plus, le protocole prend en charge plusieurs connexions, ce qui permet d’effectuer diverses tâches (téléchargement, modification ou exécution d’un programme) en ouvrant plusieurs canaux via une seule connexion SSH.
La syntaxe SSH est la suivante :
$ ssh [email protected]
Le nom_utilisateur correspond au nom d’utilisateur utilisé pour se connecter à l’hôte. L’hôte peut être une adresse IP ou un nom de domaine.
En résumé, le flux SSH se déroule de la manière suivante :
SSH offre une option de connexion robuste avec une excellente sécurité et protection de l’intégrité des données. Le protocole respecte la normalisation IETF pour une meilleure implémentation et est resté intact durant 15 ans.
Pour une analyse plus technique de SSH, vous pouvez consulter le document de normalisation SSH RFC 4253. Vous pouvez également consulter l’article de toptips.fr sur la compréhension de SSH.
Qu’est-ce que Telnet ?
Telnet signifie Teletype Network. Il s’agit d’un autre protocole réseau courant qui permet une connexion à distance via une interface de ligne de commande. À l’instar de SSH, il peut être utilisé pour prendre le contrôle à distance et exécuter des actions. Toutefois, il ne propose pas le même niveau de sécurité que SSH.
Ce manque de sécurité est dû au fait que lors de sa création en 1969, la plupart des communications se faisaient sur un réseau local, qui était considéré comme sécurisé contrairement à Internet non protégé.
Comment fonctionne Telnet ?
Telnet fonctionne en établissant une communication textuelle de terminal à terminal entre le client et le serveur. Il utilise un modèle client-serveur par le biais d’une connexion à huit octets.
Une fois la connexion établie, il est possible d’effectuer diverses actions sur l’ordinateur distant, notamment la vérification des ports ouverts, la configuration des périphériques, l’édition de fichiers, voire l’exécution de programmes.
La syntaxe Telnet est la suivante :
$ telnet hostname port
Pour en savoir plus sur Telnet, vous pouvez consulter les commandes Telnet pour tester et résoudre les problèmes de connexion.
Quand et où utiliser SSH ?
SSH est principalement utilisé pour :
- L’administration de systèmes à distance
- L’exécution de commandes à distance
- La sécurisation du trafic applicatif
- Le transfert de fichiers
Les administrateurs peuvent également configurer des sessions SSH automatisées qui gèrent des tâches répétitives telles que la création de sauvegardes réseau, la collecte de fichiers journaux, la maintenance périodique, etc.
SSH doit être privilégié pour toute opération de connexion à distance, en particulier sur un réseau non sécurisé tel qu’Internet. SSH est également une excellente option pour une utilisation sur le réseau local, car il n’est jamais certain que ce dernier soit parfaitement sécurisé.
Quand et où utiliser Telnet ?
Telnet n’étant pas sécurisé, il faut éviter de l’utiliser pour se connecter à distance sur un réseau non protégé. Toutefois, cela ne signifie pas qu’il est totalement inutile.
Telnet peut être employé pour les opérations suivantes :
- Dépanner SSH (oui, vous avez bien lu 😃)
- Dépanner les serveurs FTP, SMTP et Web
- Vérifier si un port est ouvert ou non
- Accéder à des réseaux Internet fiables
SSH contre Telnet
Cette section a pour objectif de comparer SSH et Telnet en fonction de différents critères. Pour une synthèse rapide, vous pouvez consulter le tableau de comparaison SSH vs Telnet.
SSH | Telnet | |
Sécurité | Hautement sécurisé, le client et le serveur peuvent négocier la configuration des algorithmes de chiffrement. | Non sécurisé, aucun mécanisme pour sécuriser la connexion ou les paquets. |
Authentification | SSH utilise le chiffrement à clé publique pour l’authentification. | Telnet ne possède aucun mécanisme d’authentification. Il se contente de demander le nom d’utilisateur/mot de passe, qui est transmis sans aucune protection. |
Fonctionnement | SSH utilise par défaut le port TCP 22. Ce port peut être remplacé par un autre pour empêcher les pirates d’effectuer des accès non autorisés. | Telnet utilise par défaut le port 23 pour écouter les connexions entrantes. Il peut être configuré pour se protéger contre les accès non autorisés. |
Modèle | Modèle client-serveur. | Modèle client-serveur. |
Vitesse de transfert de données | Techniquement plus lent que Telnet, mais la différence est à peine perceptible en utilisation réelle. | Plus rapide que SSH en raison de l’absence de protocole de sécurité. |
Sécurité
SSH est un protocole sécurisé. Il protège votre connexion à l’aide de protocoles de cryptage efficaces. Au contraire, Telnet ne possède absolument aucune mesure de sécurité.
Dans SSH, le client et le serveur peuvent négocier les paramètres de connexion, notamment l’algorithme de chiffrement de bout en bout. Cela permet de configurer la désactivation des algorithmes de cryptage les plus faibles et de rendre la connexion SSH aussi sécurisée que possible.
Lorsqu’une connexion TCP/UDP est établie entre le client et le serveur, une tentative de création d’une connexion sécurisée est lancée.
Pour une meilleure compréhension du fonctionnement de la sécurité SSH, examinons le contenu d’un paquet SSH. Un paquet SSH est composé de cinq éléments, à savoir :
- Longueur du paquet : 4 octets ; correspond à la taille du paquet.
- Quantité de remplissage : 1 octet ; correspond à la quantité de remplissage du paquet.
- Charge utile : il s’agit des données réelles transférées ; la taille varie.
- Remplissage : il s’agit du remplissage proprement dit, et non de la TAILLE que nous avons mentionnée précédemment. Il s’agit d’octets aléatoires associés à une charge utile afin de la rendre plus difficile à décrypter.
- Code d’authentification du message : il s’agit d’un marqueur permettant de valider l’authenticité du paquet afin de garantir que les données du paquet ne sont pas modifiées.
Lorsque SSH met en œuvre le chiffrement, seules la longueur du paquet et le code d’authentification du message sont disponibles à la lecture. Le client et le serveur négocient les paramètres de connexion par le biais d’un code d’authentification de message. De plus, les paquets SSH peuvent être compressés à l’aide de différents algorithmes de compression.
Telnet ne dispose d’aucune sécurité. Il met en œuvre une authentification non sécurisée pour connecter le client et le serveur. Par conséquent, un acteur malveillant peut lire le paquet Telnet et compromettre la connexion.
Authentification
SSH est un protocole sécurisé. Il utilise le chiffrement à clé publique pour authentifier le client et le serveur. En termes plus techniques, SSH peut utiliser des algorithmes cryptographiques asymétriques ou symétriques pour associer des clés publiques et privées.
Telnet, quant à lui, ne propose aucune protection pour l’authentification. Son processus d’authentification se contente de demander le nom du compte et le mot de passe avant de se connecter. De plus, le nom d’utilisateur et le mot de passe sont envoyés sans aucune sécurité et sont donc accessibles à tous.
Fonctionnement
En ce qui concerne le fonctionnement, SSH s’exécute sur le port TCP 22 par défaut. Telnet, pour sa part, utilise le port TCP 23. Par conséquent, en utilisant les protocoles SSH ou Telnet sans préciser de numéro de port, la commande tentera de se connecter automatiquement aux ports 22 et 23 respectivement.
Toutefois, ces ports sont bien connus et peuvent être utilisés par des pirates informatiques pour effectuer des accès non autorisés.
Il est possible de modifier les protocoles SSH et Telnet pour qu’ils utilisent d’autres ports afin de pallier ce problème. Il est préférable de fermer les ports courants et de choisir des ports compris entre 1024 et 65535.
Dans Telnet, les commandes sont envoyées au format Network Virtual Terminal (NVT). Le serveur Telnet est capable de recevoir et d’interpréter ce format. Comme vous pouvez le constater, aucun chiffrement ni authentification n’est effectué dans ce processus.
Quant à SSH, une fois la connexion client-serveur établie, une session est créée et identifiée par une clé de session. Cette clé crypte le trafic jusqu’à la fin de la session. De plus, le serveur doit vérifier le client. Il réalise cette opération par la génération de paires de clés SSH. Une fois la vérification effectuée, un canal de cryptage de bout en bout est créé pour un transfert sécurisé des données.
Modèle
SSH et Telnet utilisent tous les deux le modèle client-serveur. Ce modèle présente de nombreux avantages, notamment :
- Il peut évoluer horizontalement, c’est-à-dire que le serveur peut ajouter des ressources en cas de besoin.
- Les clients peuvent être optimisés pour des saisies de données adéquates.
- La répartition du traitement des applications entre le client et le serveur.
Vitesse et frais généraux
Pour bien comprendre SSH et Telnet, il est important de connaître leur impact sur les frais généraux. En général, SSH entraîne des frais généraux plus élevés que Telnet, mais cette différence est à peine perceptible dans des scénarios réels.
D’un point de vue technique, Telnet et SSH effectuent une nouvelle saisie après 1 heure de connexion ou 1 Go de temps de connexion.
En ce qui concerne la bande passante, SSH génère davantage de frais généraux, mais cela reste négligeable et n’a pas d’impact sur les utilisateurs. Pour le processeur du client et du serveur, la surcharge est minime, grâce au fonctionnement et à la mise en œuvre de la norme AES dans les connexions SSH.
En bref, il n’y a pas de différence flagrante en termes de vitesse ou de surcharge entre SSH et Telnet. Toutefois, si l’on procède à une comparaison technique, SSH génère des frais généraux supérieurs à Telnet.
Cas d’utilisation SSH et Telnet
Cette section présente certains cas d’utilisation de SSH et de Telnet.
Cas d’utilisation SSH
Les cas d’utilisation de SSH sont les suivants :
- Exécution à distance de commandes.
- Accès sécurisé aux ressources de la machine distante.
- Transfert de fichiers à distance.
- Fourniture de mises à jour logicielles à distance.
- Configuration de transferts de fichiers automatisés ou réalisation de transferts manuels.
Cas d’utilisation Telnet
Les cas d’utilisation de Telnet sont les suivants :
- Dépannage de SSH.
- Dépannage des serveurs FTP, SMTP et Web.
- Vérification de l’ouverture d’un port ou non.
- Accès à des réseaux Internet fiables.
Réflexions finales : lequel est le plus performant ?
SSH est le meilleur choix. Il s’agit d’un protocole réseau moderne et amélioré qui sécurise l’accès à distance. À ce jour, aucune faille de sécurité n’a été détectée. De plus, il est facile à utiliser et à configurer.
Telnet, pour sa part, est devenu obsolète. Il est aujourd’hui âgé de près de 50 ans. Toutefois, il reste utile dans certains cas et peut être utilisé pour dépanner SSH ou pour vérifier si un port est ouvert. Les administrateurs peuvent utiliser Telnet pour résoudre la plupart des problèmes de réseau.