Comment Fonctionne SSH ? Aperçu Détaillé

Introduction

La transmission de données entre les appareils sur un réseau doit être réglementée pour que les appareils communiquent correctement. La transmission s’effectue avec un ensemble de règles appelé protocole réseau.

Les premiers protocoles réseau tels que Telnet et rsh n’offraient pas une protection suffisante contre les cyberattaques malveillantes. Le besoin d’une méthode de communication réseau plus sécurisée a inspiré la création du protocole SSH.

Dans ce tutoriel, nous parlerons de ce qu’est SSH, pourquoi il est utilisé et comment il fonctionne.

Remarque : Le tutoriel parlera de SSH2, la version actuelle du protocole. Le SSH d’origine est désormais considéré comme obsolète et moins sécurisé.

Qu’est-ce Que SSH ?

SSH (abréviation de Secure Shell) est un protocole réseau qui permet à deux ordinateurs de se connecter à distance en toute sécurité. SSH utilise le cryptage pour s’assurer que les pirates ne peuvent pas interpréter le trafic entre deux appareils connectés.

SSH se compose de trois couches distinctes :

  • La couche de transport établit une communication sûre et sécurisée entre un client et un serveur pendant et après l’authentification. Il supervise le chiffrement, le déchiffrement et la protection de l’intégrité des données. De plus, il aide à accélérer l’échange de données en assurant la compression et la mise en cache des données.
  • La couche d’authentification communique les méthodes d’authentification prises en charge au client. Il gère également l’ensemble du processus d’authentification de l’utilisateur.
  • La couche de connexion gère la communication entre les machines une fois l’authentification réussie. Il gère l’ouverture et la fermeture des canaux de communication et autorise plusieurs canaux pour plusieurs sessions.

A Quoi Sert SSH ?

SSH fournit une couche de sécurité pour le transfert d’informations entre les machines. Voici quelques cas d’utilisation importants pour SSH :

  • Accès à distance – SSH garantit des connexions à distance cryptées pour les utilisateurs et les processus.
  • Transferts de fichiers – SFTP, un protocole de transfert de fichiers sécurisé géré par SSH, fournit un moyen sûr de manipuler des fichiers sur un réseau.
  • Transfert X11 – Les utilisateurs peuvent exécuter des applications X hébergées sur le serveur à partir de leurs ordinateurs clients.
  • Transfert de port – En mappant le port d’un client sur les ports distants du serveur, SSH permet de sécuriser d’autres protocoles réseau, tels que TCP/IP.
  • Tunnellisation – Cette technique d’encapsulation permet des transferts de données sécurisés. Le tunneling est utile pour accéder à des documents en ligne sensibles pour les entreprises à partir de réseaux non sécurisés, car il peut servir d’alternative VPN pratique.
  • Gestion du réseau – Le protocole SSH gère l’infrastructure réseau et d’autres parties du système.

Comment Fonctionne SSH ?

SSH est un protocole client-serveur. Cela signifie que le protocole permet à un appareil demandant des informations ou des services (le client) de se connecter à un autre appareil (le serveur).

Lorsqu’un client se connecte à un serveur via SSH, la machine peut être contrôlée comme un ordinateur local.

Le serveur dispose d’un port TCP désigné sur lequel il surveille le réseau, attendant que les clients initialisent la connexion. Avant qu’un client ne se connecte et ne commence à émettre des commandes SSH, il doit réussir le processus d’authentification.

Établissement D’une Connexion SSH

Exécutez la commande suivante sur une machine cliente pour initier une connexion SSH :

chut @

Lorsque le serveur reçoit les requêtes, une négociation de chiffrement de session commence.

Négociation Du Chiffrement De Session

Lors de la réception d’une demande de connexion, le serveur envoie au client un ensemble de protocoles de chiffrement pris en charge. Le serveur utilise la clé publique comme méthode d’authentification.

Le client compare les protocoles à son propre ensemble. S’il existe des protocoles correspondants, les machines conviennent d’en utiliser un pour établir la connexion.

Le client compare la clé publique du serveur à la clé privée stockée dans son système lors de la première tentative de connexion. Si les clés correspondent, le client et le serveur conviennent d’utiliser le cryptage symétrique pour communiquer pendant la session SSH. À cette fin, ils communiquent à l’aide d’un processus de cryptage asymétrique qui utilise l’algorithme d’échange de clés Diffie-Hellman (DH).

L’algorithme DH permet aux machines de travailler ensemble et de créer en toute sécurité une clé cryptographique sur un réseau public. Pour générer une clé, les machines effectuent les étapes suivantes :

  • Les machines s’accordent sur deux nombres : un module et un nombre de base. Pour empêcher le décryptage de la clé par force brute, le module choisi est un nombre premier d’au moins 600 chiffres.
  • Les machines choisissent séparément un nombre et l’appliquent à l’équation impliquant les deux nombres publics.
  • Le serveur et le client échangent les valeurs calculées .
  • Chaque machine effectue maintenant un calcul en utilisant le résultat reçu de l’autre.

Remarque : L’authentification forte des utilisateurs est une mesure à appliquer pour sécuriser votre serveur SSH. Pour plus de conseils de sécurité, lisez notre article Linux SSH Security Best Practices.

Authentification D’utilisateur

Les deux méthodes d’authentification des utilisateurs SSH les plus couramment utilisées sont les mots de passe et les clés SSH. Les clients envoient en toute sécurité des mots de passe cryptés au serveur. Cependant, les mots de passe sont une méthode d’authentification risquée car leur force dépend de la connaissance qu’a l’utilisateur de ce qui fait un mot de passe fort.

Les paires de clés publiques-privées SSH à chiffrement asymétrique constituent une meilleure option. Une fois que le client déchiffre le message, le serveur accorde au client l’accès au système.

Pour générer une paire de clés SSH, tapez ssh-keygen dans le terminal. En conséquence, le système génère et stocke les clés.

Pour plus d’informations sur ce processus, reportez-vous à Comment générer des clés SSH sur Ubuntu (le processus est essentiellement le même sur toutes les distributions Linux et Mac OS).

Remarque : Pour le processus de génération de clé SSH dans Windows, consultez Comment générer une clé SSH dans Windows 10.

Expliquer Les Technologies De Chiffrement SSH

SSH utilise trois types de cryptage des données lors de la communication entre les machines. Ceux-ci sont:

  • Cryptage symétrique
  • Cryptage asymétrique
  • Hachage.

Chiffrement Symétrique

Le chiffrement symétrique génère une clé unique que deux machines échangent. Ensuite, les machines utilisent la clé pour le chiffrement et le déchiffrement. Cette méthode est rapide, peu gourmande en ressources et SSH l’utilise pour chaque session.

Chaque fois que le client et le serveur négocient l’algorithme à utiliser pour une session SSH, ils choisissent toujours le premier algorithme de la liste du client que le serveur prend en charge.

Cryptage Asymétrique

Les données sont cryptées de manière asymétrique lorsque les machines utilisent deux clés différentes mais mathématiquement liées, publique et privée, pour effectuer le cryptage. La machine cliente qui a participé à la configuration du chiffrement peut déchiffrer les informations à l’aide de la clé privée.

SSH utilise des clés asymétriques temporelles pour échanger des clés symétriques, comme lors du processus d’authentification de l’utilisateur.

Hachage

SSH utilise le hachage pour valider si les paquets de données proviennent de la source dont ils semblent provenir. Les algorithmes de hachage utilisés pour produire des hachages dans SSH sont Message Authentication Code (MAC) et Hashed Message Authentication Code (HMAC).

Un algorithme de hachage utilise un paquet de données pour créer une chaîne de hachage unique. La machine qui envoie le paquet envoie toujours le paquet avec la valeur de hachage.

La machine réceptrice connaît l’algorithme utilisé pour créer le hachage et peut l’appliquer aux données. Le but est de voir si la valeur de hachage calculée sera la même. Si la valeur de hachage obtenue diffère du hachage de l’expéditeur, les données ont été corrompues pendant le transfert.

Conclusion

Cet article visait à vous donner une meilleure idée des mécanismes derrière SSH. Comprendre comment SSH fonctionne et pourquoi il est utile devrait vous aider à décider si vous souhaitez l’utiliser dans votre environnement personnel ou professionnel.

Cet article a-t-il été utile?

Oui Non