GNU/Linux >> Tutoriels Linux >  >> Linux

Comment SSH établit une communication sécurisée

Lorsque nous envoyons des informations/lettres sensibles, nous voulons qu'elles soient cachées du monde extérieur. Nous nous sommes donc assurés qu'il est protégé en le scellant dans une enveloppe et en l'envoyant à une destination utilisant le service postal des États-Unis (USPS). Du moins, c'est ainsi que nous envoyions des informations. Je n'entre même pas dans une discussion sur le cryptage et le code Morse, qui utilisait un niveau de secret plus avancé.

Maintenant, depuis que nous, les humains, avons évolué et nous nous sommes adaptés à Internet, nous échangeons des informations en utilisant une connexion sécurisée. Auparavant, nous utilisions telnet pour nous connecter à un serveur distant en utilisant le port 23. Le problème était que nous envoyions les informations via du texte brut, ce qui signifie que quiconque voulait lire les informations pouvait renifler le réseau et les informations étaient compromises (l'équivalent est qu'ils pourraient ouvrir la lettre envoyée via l'USPS et la lire.)

Ce résultat n'est pas ce que nous voulions lorsque nous avons envoyé le message d'origine. Il doit y avoir un moyen sûr d'envoyer un message à un serveur distant, n'est-ce pas ? Absolument, et la solution est de l'envoyer via le Secure Shell (SSH).

Comment SSH envoie des messages chiffrés

Donc, je veux communiquer en toute sécurité en utilisant des messages cryptés du client au serveur et vice versa. J'accomplis cela avec SSH comme suit. SSH établit une connexion sécurisée entre deux hôtes via le port 22 :Host-1 (le serveur) et Host (le client). Après s'être authentifiés, ils ont activé l'échange sécurisé de messages.

Types de chiffrement

SSH utilise trois types de chiffrement différents :

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

Je vais brièvement expliquer ces types.

Cryptage symétrique

Également connu sous le nom de chiffrement à clé partagée, le chiffrement symétrique est généralement une clé unique ou une paire de clés est utilisée à la fois pour le chiffrement et le déchiffrement d'un message. Cette clé est utilisée pour chiffrer toute la session de communication entre un client et un serveur.

Le client et le serveur s'accordent sur une seule méthode et génèrent une clé partagée, qui n'est bien sûr jamais divulguée à un tiers, et par conséquent, elle est utilisée pour envoyer des messages de clé partagée/secrète. La partie la plus intéressante de cette méthode est que la clé n'est jamais échangée entre un client et un serveur. Au lieu de cela, chaque machine calcule la clé partagée indépendamment en utilisant une méthode convenue précédemment. Même si une machine tierce capture les données, elle est incapable de les déchiffrer car la méthode utilisée pour chiffrer les données est inconnue.

Cryptage asymétrique

Contrairement à la méthode ci-dessus, cette méthode utilise une paire de clés pour le chiffrement et le déchiffrement. Celles-ci sont connues sous le nom de clés publiques et privées. La clé publique, comme son nom l'indique, est largement distribuée. La clé privée est étroitement liée à la clé publique en termes de fonctionnalité mais ne peut pas être calculée simplement en connaissant la clé publique.

La clé privée est un facteur important dans toute la communication puisque le secret dépend du fait que la clé privée n'est révélée à aucun tiers, et c'est la seule clé capable de déchiffrer le message, qui est chiffré par sa propre clé publique. Ainsi, si une partie souhaite déchiffrer et lire les messages, elle doit posséder la clé privée.

Essayons cette méthode en utilisant deux systèmes. Nous allons commencer par le poste de travail, qui a deux paires de clés générées comme ci-dessous :

J'initie ensuite la connexion du serveur au poste de travail :

Et par conséquent, le serveur stocke les informations du poste de travail dans ses known_hosts déposer sous :

Une fois le serveur vérifié, le serveur et le client négocient une clé de session à l'aide de l'algorithme d'échange de clé Diffie-Hellman. Cette clé partagée est utilisée pour le chiffrement et le déchiffrement.

La dernière étape est l'authentification du client, et cela se fait à l'aide de la paire de clés SSH. Le schéma ci-dessous montre comment ce processus se déroule :

Lorsque j'émets la commande ssh -v [email protected] , voici ce qui se passe :

Conclusion

Le but de cet article était de faire prendre conscience à l'utilisateur de la manière dont SSH établit une communication sécurisée entre deux systèmes. J'espère avoir donné un aperçu de ce processus.

[Vous voulez en savoir plus sur SSH ? Téléchargez la feuille de triche SSH avancée.]


Linux
  1. Comment générer une clé SSH sur un serveur dédié Linux ?

  2. Comment SSH sur Linux à partir d'Android

  3. Comment configurer des clés SSH

  4. Comment Ssh vers un serveur en utilisant un autre serveur ? ?

  5. Comment sécuriser le serveur PostgreSQL

Comment configurer une clé SSH sur un serveur Plesk

Comment ajouter une clé publique SSH au serveur

Comment configurer SSH sur CentOS et RHEL

Comment générer et utiliser une clé SSH avec PuTTY

Comment SSH au serveur via Linux

Comment sécuriser SSH avec Fail2Ban