Qu’est-ce que SSH ? Définition, fonctionnement et fonctions

Secure Shell ou SSH est un protocole de transfert qui permet aux utilisateurs de contrôler un appareil  à distance  ou à distance via une connexion Internet.

Si c’est la première fois que vous entendez parler de ce protocole et que vous souhaitez en savoir plus sur SSH et son fonctionnement, vous êtes au bon endroit !

Cet article couvrira tout ce que vous devez savoir sur les connexions shell sécurisées. À partir de la compréhension, des avantages, de son fonctionnement et de sa fonction.

Comprendre SSH

SERVEUR SSH

Comme discuté ci-dessus, brièvement la notion de shell sécurisé ou ssh est un protocole de transfert utilisé pour contrôler et modifier les serveurs à distance.

Avec SSH, vous pouvez accéder et modifier divers paramètres et fichiers sur le serveur.

La fonction de SSH est celle d’un support de transfert de données sûr et fiable pouvant être utilisé à distance ou à distance.

Si vous avez déjà utilisé des applications de connexion à distance comme Telnet, SSH est un remplacement plus sécurisé grâce à sa technologie de shell sécurisé.

Contrairement à la génération précédente d’applications de connexion à distance, SSH utilise trois technologies de cryptage qui garantissent la sécurité de la connexion utilisée lors du processus de transfert.

Les trois technologies de chiffrement SSH sont symétrique, asymétrique et de hachage. Ces trois technologies sont des techniques cryptographiques qui garantissent que toutes les données impliquées dans le transfert sont cryptées.

Grâce à cette technologie cryptographique, les utilisateurs peuvent librement envoyer des données au serveur sans craindre les pirates et les tiers qui ont l’intention de les voler.

Cela vous donne bien sûr plus de liberté pour établir des connexions à distance en toute sécurité où vous le souhaitez. Même à travers des réseaux vulnérables comme le wifi public.

Comment fonctionne SSH

Client SSH

Vous ne rencontrerez pas de difficultés importantes lors de l’utilisation de SSH si vous avez d’abord utilisé Linux ou Mac. Cependant, vous devez activer l’application SSH pour ouvrir une connexion SSH si le système d’exploitation utilisé est Windows. Le client SSH le plus utilisé est PuTTY. Vous pouvez lire plus d’informations  ici  .

Pour les utilisateurs Mac et Linux, ouvrez un  programme de terminal  et suivez la procédure ci-dessous :

La commande SSH se compose de 3 parties distinctes :

	ssh {utilisateur}@{hôte}

La clé SSH de commande indique au système que vous souhaitez ouvrir une connexion Secure Shell chiffrée. {user}  fait référence au compte auquel vous souhaitez accéder. Par exemple, supposons que vous vouliez accéder à l’  utilisateur root  , qui est essentiellement un administrateur système qui a tous les droits pour modifier quoi que ce soit sur le système. {hôte}  fait référence à l’ordinateur auquel vous souhaitez accéder. Dans ce cas, il s’agit d’une adresse IP (  par exemple, 244.235.23.19  ) ou d’un nom de domaine (par exemple, www.xyzdomain.com).

Lorsque vous appuyez sur la touche Entrée, il vous sera demandé d’entrer le mot de passe du compte demandé  Bien qu’aucune information n’apparaisse à l’écran, le mot de passe saisi est en cours de transmission.

Après avoir entré le mot de passe, appuyez à nouveau sur la touche Entrée. Si le mot de passe que vous avez entré est correct, une fenêtre de terminal distant apparaîtra.

Comprendre les différentes techniques de chiffrement

Le principal avantage offert par SSH via son précurseur est l’utilisation du cryptage pour assurer un transfert d’informations plus sécurisé entre l’hôte et le client. L’ hôte  fait référence au serveur distant auquel vous souhaitez accéder, tandis que  le client  est l’ordinateur que vous souhaitez utiliser pour accéder à l’hôte. Il existe trois technologies de chiffrement différentes utilisées par SSH :

  1. Cryptage symétrique
  2. Cryptage asymétrique
  3. Hachage

Chiffrement symétrique

Le chiffrement symétrique est une forme de chiffrement dans laquelle une  clé secrète est  utilisée à la fois pour chiffrer et déchiffrer les messages par le client et l’hôte. En effet, toute personne disposant de la clé peut déchiffrer le message en cours de transfert.

Le chiffrement symétrique est souvent appelé chiffrement  à clé  partagée ou  chiffrement à secret partagé  . Habituellement, une seule clé est utilisée, ou parfois une paire de clés où une clé peut être facilement calculée à l’aide d’une autre clé.

La clé symétrique est utilisée pour chiffrer l’ensemble de la communication pendant la session SSH. Ni le client ni le serveur n’obtiennent la clé secrète à l’aide d’une méthode approuvée, et la clé résultante n’est jamais divulguée à un tiers. Le processus de génération de clé symétrique est exécuté par un  algorithme d’échange de clé. Ce qui rend cet algorithme sécurisé, c’est le fait que la clé n’est jamais transmise entre le client et l’hôte. Au lieu de cela, deux ordinateurs partagent des blocs de données publiques, puis les manipulent pour calculer indépendamment des clés secrètes. Même si d’autres systèmes stockent des données partagées publiquement, ils ne pourront pas calculer la clé car l’algorithme d’échange de clé est inconnu.

Cependant, veuillez noter que le jeton secret est spécifique à chaque session SSH et a été précédemment créé pour l’authentification du client. Une fois la clé générée, tous les paquets transférés entre les deux systèmes doivent être chiffrés par la clé privée. Cela inclut les mots de passe saisis par l’utilisateur afin que les informations d’identification soient toujours protégées de l’analyseur de paquets réseau.

Il existe différents chiffrements de chiffrement symétriques, y compris, mais sans s’y limiter, AES (Advanced Encryption Standard), CAST128, Blowfish, etc. Avant d’établir une connexion sécurisée, le client et l’hôte décident quel chiffrement utiliser en publiant une liste des chiffrements pris en charge dans ordre de préférence. Le chiffrement le plus largement utilisé parmi les chiffrements pris en charge par le client répertoriés dans la liste des hôtes est utilisé comme chiffrement bidirectionnel.

Par exemple, si deux systèmes Ubuntu 14.04 LTS communiquent entre eux via SSH, les deux systèmes utiliseront  aes128-ctr  comme chiffrement par défaut.

Cryptage asymétrique

Contrairement au chiffrement symétrique, le chiffrement asymétrique utilise deux clés distinctes pour le chiffrement et le déchiffrement. Ces deux clés sont appelées  clé publique  et  clé privée  . Ensemble, ces deux clés forment  une paire de clés publique-privée (paire de clés publique-privée)  .

Les clés publiques, comme leur nom l’indique, sont distribuées et partagées ouvertement à toutes les parties. Bien qu’étroitement liée à la clé privée en termes de fonctionnalité, la clé privée ne peut pas être calculée mathématiquement à partir de la clé publique. La relation entre ces deux clés est très compliquée : un message chiffré par le dispositif à clé publique ne peut être déchiffré que par le dispositif à clé privée. Cette relation à sens unique indique que la clé publique ne peut pas décrypter le message lui-même ni décrypter quoi que ce soit que la clé privée a crypté.

La clé privée doit rester  privée  , par exemple pour que la connexion soit sécurisée afin qu’aucun tiers ne puisse en prendre connaissance. L’avantage de toutes ces connexions réside dans le fait que la clé privée n’est jamais connue car c’est le seul composant capable de déchiffrer les messages qui ont été chiffrés à l’aide de la clé publique. Par conséquent, toute partie ayant la capacité de déchiffrer des messages déjà connus du public doit disposer de la clé privée appropriée.

Contrairement  à la perception  en général, le chiffrement asymétrique n’est pas utilisé pour chiffrer l’intégralité de SSH. Au lieu de cela, le chiffrement asymétrique n’est utilisé que lorsque l’algorithme d’échange de clés du chiffrement symétrique a lieu. Avant d’activer une connexion sécurisée, les deux parties génèrent une paire de clés publique-privée temporaire et partagent leurs clés privées respectives pour générer une clé secrète partagée.

Dès qu’un réseau de communication symétrique sécurisé est établi, le serveur utilise la clé publique du client pour générer et rejeter et envoie la communication symétrique au client pour authentification. Si le client réussit à déchiffrer le message, le message possède la clé privée nécessaire pour établir la connexion. Le travail SSH commence.

Hachage

Le hachage unidirectionnel est une forme de cryptographie utilisée dans les connexions Secure Shell. La fonction de hachage à sens unique diffère des deux formes de chiffrement mentionnées ci-dessus, en ce qu’elle n’est pas destinée à être déchiffrée. La fonction du hachage unidirectionnel est de créer une valeur de longueur fixe unique pour chaque entrée qui ne montre pas de tendance exploitable. Par conséquent, il est très peu probable que ces fonctions soient inversées.

Il est facile de générer un hachage cryptographique d’une entrée donnée, mais il est extrêmement impossible de générer une entrée à partir de ce hachage. Cela signifie que si le client stocke la bonne entrée, il peut générer un hachage cryptographique et comparer les valeurs pour vérifier si le client a la bonne entrée.

SSH utilise des hachages pour vérifier l’authenticité des messages. Nous pouvons le faire en utilisant HMAC, également connu sous le nom de  codes d’ authentification de message  basés  sur le hachage  . Cette étape garantit que la commande reçue n’est en aucun cas manipulée.

Pendant que l’algorithme de chiffrement symétrique est sélectionné, l’algorithme d’authentification de message approprié est également sélectionné. Ce processus fonctionne à peu près de la même manière que lorsqu’un chiffrement est sélectionné, comme décrit dans la section sur le chiffrement symétrique.

Chaque message transmis doit avoir un MAC, qui est calculé à l’aide de la clé symétrique, du numéro de séquence de paquet et du corps du message. Le message est envoyé au-delà des données cryptées symétriquement en tant que partie finale du paquet de communication.

Fonctionnement de SSH avec les techniques de chiffrement

SSH fonctionne en utilisant la méthode client-serveur pour permettre l’authentification de deux systèmes distants et le cryptage des données transitant par les deux systèmes distants.

SSH s’exécute sur le port TCP 22 par défaut (bien que cela puisse être modifié si nécessaire). L’hôte (serveur) garde un œil sur le port 22 (ou tout autre port SSH) pour les connexions entrantes. Le port 22 gère les connexions sécurisées en authentifiant le client et en créant un réseau shell approprié chaque fois que le processus de vérification réussit.

Avant de démarrer la connexion SSH, le client doit d’abord connecter le handshake TCP avec le serveur, puis s’assurer de la sécurité de la connexion symétrique, puis vérifier si l’identité affichée par le serveur correspond à l’enregistrement précédent (généralement stocké dans le fichier de stockage de clé RSA) , et affichez les informations d’identification de l’utilisateur requises pour effectuer l’authentification de la connexion.

L’établissement d’une connexion comporte deux étapes : premièrement, les deux systèmes s’accordent sur une norme de cryptage pour sécuriser les communications, et deuxièmement, les utilisateurs doivent également authentifier leur propre identité. Si les informations d’identification correspondent, l’utilisateur se verra accorder l’accès.

Négociation sur le chiffrement

Lorsqu’un client essaie de se connecter au serveur via TCP, le serveur fournit les protocoles de cryptage respectifs et les versions prises en charge. Si le client a une paire de protocoles et de versions compatibles et presque identiques, un accord est conclu et la connexion est initiée avec le protocole accepté. Le serveur utilise également une clé publique asymétrique que le client peut utiliser pour vérifier l’authenticité de l’hôte.

Après cela, les deux parties utilisent ce que l’on appelle l’algorithme d’échange de clés Diffie-Hellman pour générer une clé symétrique. Cet algorithme permet à la fois au client et au serveur de récupérer une clé de chiffrement partagée qui sera ensuite utilisée pour chiffrer toute la section de communication.

Voici comment l’algorithme fonctionne à un niveau de base :

  • Le client et le serveur connaissent de très grands nombres premiers, qui n’ont bien sûr rien en commun. Cette valeur de nombre premier est également connue sous le nom  de valeur de départ  .
  • Les deux parties connaissent le mécanisme de cryptage général pour créer un autre ensemble de valeurs en manipulant les valeurs de départ d’une certaine manière algorithmique. Ce mécanisme, également appelé générateur de chiffrement, effectue des opérations massives sur la graine. Un exemple est AES (Advanced Encryption Standard).
  • Indépendamment, les deux parties ont fait un autre nombre premier. Ce nombre premier est utilisé comme clé privée secrète lors de l’interaction.
  • Une clé privée nouvellement générée, avec un numéro partagé et un algorithme de cryptage (par exemple, AES), est utilisée pour calculer la clé publique distribuée à d’autres ordinateurs.
  • Ces parties utilisent ensuite leur clé privée personnelle, la clé publique partagée de l’autre système et le nombre premier d’origine pour générer la clé partagée finale. Séparément, cette clé est calculée par les deux ordinateurs, mais génère toujours la même clé de chiffrement des deux côtés.
  • Maintenant, les deux côtés ont déjà une clé partagée. Symétriquement, ces deux côtés peuvent chiffrer l’intégralité de SSH. La même clé peut être utilisée pour chiffrer et déchiffrer les messages (lire : partie chiffrement symétrique).

Une fois le chiffrement symétrique sécurisé établi avec succès, l’utilisateur doit s’authentifier.

Authentification d’utilisateur

La dernière étape avant que l’utilisateur n’obtienne l’accès au serveur consiste à authentifier les informations d’identification. Pour cela, la plupart des utilisateurs SSH utilisent un mot de passe. L’utilisateur sera invité à entrer un nom d’utilisateur, puis un mot de passe. En toute sécurité, ces informations d’identification sont envoyées via un tunnel de cryptage symétrique afin qu’aucun tiers ne puisse les voler.

Même si le mot de passe est crypté, il n’est toujours pas recommandé aux utilisateurs d’utiliser le mot de passe sur une connexion sécurisée. En effet, de nombreux robots peuvent voler des mots de passe standard ou faciles à deviner pour accéder à votre compte. Nous vous recommandons d’utiliser la paire de clés SSH comme alternative.

La paire de clés SSH est un ensemble de clés asymétriques utilisé pour authentifier les utilisateurs sans avoir à saisir de mot de passe.

Conclusion

En apprenant davantage sur le fonctionnement de SSH, les utilisateurs peuvent comprendre les aspects de sécurité de cette technologie. Beaucoup de gens trouvent ce processus trop difficile et pas facile à comprendre et à suivre. Cependant, en fait, la méthode est très simple et n’est pas celle imaginée par la plupart des gens. Si vous vous demandez combien de temps il faut à un ordinateur pour calculer le hachage et authentifier un utilisateur, la réponse est très rapide. En réalité, vous passerez le plus de temps à transférer des données sur Internet.

J’espère que ce tutoriel SSH vous a aidé à comprendre que bien que différentes technologies puissent être utilisées ensemble pour créer des systèmes robustes dans lesquels chaque mécanisme joue un rôle important. Maintenant, vous savez enfin que Telnet est obsolète si votre avenir Internet est sécurisé par SSH.