GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment fonctionne SSH ?

Présentation

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 est effectuée 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 didacticiel, nous parlerons de ce qu'est SSH, pourquoi il est utilisé et comment il fonctionne.

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. En outre, il permet d'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.

À 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 chiffré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 machines clientes.
  • 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.
  • Tunnelage – Cette technique d'encapsulation assure des transferts de données sécurisés. Le tunneling est utile pour accéder à des documents en ligne sensibles pour l'entreprise à 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 se connecte et commence à émettre des commandes SSH, il doit réussir le processus d'authentification.

Établir une connexion SSH

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

ssh [username]@[server_ip_or_hostname]

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 acceptent 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 chiffrement 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 chiffres :un module et un nombre de base. Pour empêcher le déchiffrement 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 numéro et appliquez-le à l'équation impliquant les deux nombres publics.
  • Le serveur et le client échangent les valeurs calculées .
  • Chaque machine effectue désormais un calcul en utilisant le résultat reçu de l'autre.

En effectuant les étapes ci-dessus, les deux machines calculent la même valeur, leur clé secrète. Enfin, le serveur tente alors d'authentifier l'utilisateur qui demande l'accès.

Authentification de l'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 conscience de 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 a déchiffré 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 l'aérogare. 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).

Expliquer les technologies de chiffrement SSH

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

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

Cryptage 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.


Ubuntu
  1. Comment fonctionne Awk '!a[$0]++' ?

  2. Comment fonctionne le Sticky Bit ?

  3. Ssh – Comment Tcp-keepalive fonctionne-t-il dans Ssh ?

  4. Comment fonctionne Sanlock dans la virtualisation RedHat

  5. Comment ça marche ? Que fait rm ?

Qu'est-ce que le DNS inversé et comment ça marche ?

Comment fonctionne SFTP ?

Ssh – Comment fonctionne le tunneling Ssh inversé ?

Qu'est-ce que Docker ? Comment ça marche?

Comment fonctionne la mémoire d'échange sous Linux ?

Comment fonctionne l'affichage de Linux ?