Introduction

Dans un environnement professionnel qui nécessite un accès 24 heures sur 24, 7 jours sur 7, les capacités de mise en réseau à distance sont essentielles. Cela signifie que les entreprises doivent savoir comment sécuriser les connexions à distance pour leurs clients, en plus d'utiliser elles-mêmes les connexions à distance dans un but d'administration du système.

À cette fin, le protocole Secure Shell (SSH) est essentiel aux fonctionnalités d'accès à distance, telles que :

SSH fait référence au protocole par lequel les communications réseau peuvent avoir lieu en toute sécurité et à distance à travers un réseau qui n'est pas nécessairement sécurisé.

Lors de son développement, SSH cherchait à remédier aux failles de sécurité de Telnet, ce qui a conduit à une première version, SSH-1. SSH-1 a fait de grands progrès dans la sécurité des opérations de mise en réseau, mais présentait quelques vulnérabilités dont la détection a conduit à la version SSH-2.


SSH 1.x

SSH 2.x

Encapsulation

X11

Forwarding, X11, Transfert de Fichiers, etc.

Algorithmes

DES, 3DES, IDEA, Blowfish

3DES, Blowfish, CAST128, Arcfour, AES-256

Authentification

RSA (Faille de sécurité)

RSA, DSA, Diffie-Helman

Échange de clés

Pour la session

Renouvelées périodiquement

Intégrité

CRC4 (faille de sécurité)

MD5, MD5-96 SHA1, SHA1-96

Aujourd'hui, la plupart des systèmes qui utilisent SSH prennent en charge SSH-2. Les mises à jour de cette version ont renforcé le protocole et en ont fait une méthode de chiffrement fiable de mise en réseau à distance. En authentifiant et en chiffrant chaque session, SSH protège les données contre les cyberattaques perpétrées par des pirates, ainsi que contre des formes plus subtiles de vol d'informations.

Comprendre comment fonctionne le protocole SSH permet de vous faciliter la configuration et la sécurisation de vos accès à distance en fonction des spécificités et besoins de votre entreprise, ainsi que de vos clients.

Les différentes méthodes de chiffrement utilisées par le protocole SSH

Elles sont aux nombre de trois :

Basée sur une demande de connexion d'un poste client vers un équipement serveur configuré, le protocole SSH permet d'assurer une connexion sécurisée à distance, mais également de transférer des fichiers de façon sécurisée.

MéthodeLes différentes étapes de la connexion SSH

Il y a une identification mutuelle entre le poste client et le serveur avant de pouvoir établir une connexion sécurisée (SSH Transport Layer Protocol), également appelée tunnel SSH.

Cette première étape permet au client et au serveur de se mettre d'accord sur la méthode de chiffrement qui sera utilisée en fonction des algorithmes possibles pour chacun. L'intégrité des données est également assurée par l'utilisation d'un algorithme de hachage.

À compter de ce moment, la connexion est sécurisée par chiffrement symétrique et le restera jusqu'au terme de la session.

Le client (SSH User Authentication Protocol) doit maintenant s'authentifier pour obtenir des droits d'accès. Cette authentification, sécurisée, peut se faire de manière simple en entrant le couple identifiant/mot de passe, mais également par chiffrement asymétrique (avec échange de clés SSH).

Le choix entre l'authentification au travers du couple identifiant/mot de passe ou par chiffrement asymétrique doit se faire en fonction du besoin de sécurité de l'entreprise. Une authentification par chiffrement asymétrique est considérée comme plus sécurisée : en effet, les attaques par force brute (utilisation de robots testant de nombreux mots de passe en quelques secondes) peuvent permettre d'accéder à une session sécurisée non autorisée.

Le protocole de connexion (SSH Connection Protocol) permet de générer de multiples flux de données distincts les uns des autres.

OpenSSH

Présentation

À l'origine, SSH était une version libre développée par Tatu Ylonen. Différentes évolutions ont eu lieu, associées à la mise en place de licences et une utilisation imposant de plus en plus de restrictions, jusqu'à n'être utilisable que dans un cadre commercial.

Aujourd'hui commercialisée sous le nom de Tectia SSH, cette version de SSH fournit, entre autres, un support aux entreprises.

À partir de la version 1.2.12 de SSH, les développeurs de l'équipe OpenBSD ont décidé de travailler sur le projet OpenSSH, notamment en corrigeant certains des bugs détectés, et en ajoutant de nouvelles fonctionnalités. La première version d'OpenSSH a ainsi vu le jour à la fin de l'année 1999, sous la version SSH-1 dans un premier temps et quelques mois plus tard, à l'été 2000, la version 2 du protocole a pu être développée.

OpenSSH correspond donc à la version Open Source du protocole SSH. Cette version libre se voit régulièrement mise à jour afin notamment de corriger les différentes failles de sécurité qui peuvent être détectées.

Bien que ne fournissant aucun service de soutien aux entreprises, OpenSSH est doté d'une grande communauté d'utilisateurs et un soutien communautaire conséquent, notamment via divers forums. Le support de la communauté correspond à une contribution d'assistance utilisateurs, mais aussi de développement, de rapports de bugs ou de tests de correctifs, etc. De nombreuses failles de sécurité peuvent ainsi être corrigées régulièrement.

Intégré dans le dépôt Debian, ainsi que dans la plupart des distributions Linux, OpenSSH a été ajouté dans les distributions Windows depuis 2018 et est inclus de base sur Windows 10 et Windows Server 2019.

Les fonctionnalités d'OpenSSH

OpenSSH offre de nombreuses fonctionnalités, telles que le tunneling sécurisé, ainsi que plusieurs méthodes d'authentification, des outils clients permettant de faciliter les opérations de contrôle à distance.

La suite OpenSSH se compose à la fois d'outils serveurs et d'outils clients, tels que :

Fourni par le package openssh-clients.

Fourni par le package openssh-clients.

Fourni par le package openssh-server.

OpenSSH implémente un client et un serveur SFTP.

Fourni par le package openssh-clients.

SSH est également utilisé comme préfixe pour d'autres commandes concernant l'échange des clés et le chiffrement :

Fourni par le package openssh-clients.

Fourni par le package openssh-clients.

Fourni par le package openssh-clients.

Fourni par le package openssh-server.

Fourni par le package openssh-clients.

Fourni par le package openssh-server.

Relations entre OpenSSH et OpenSSL

Différences et similitudes entre OpenSSH et OpenSSL

Bien qu'étant deux méthodes d'échanges sécurisées, utilisant notamment des algorithmes de chiffrement pour sécuriser les communications et éviter que d'autres personnes présentes sur le réseau et non autorisées puissent avoir accès aux différentes données, OpenSSH et OpenSSL ne servent pas les mêmes objectifs.

OpenSSH est utilisé le plus souvent par les administrateurs : une authentification client est indispensable.

OpenSSL est utilisé très régulièrement (et de manière « transparente ») par les utilisateurs se connectant sur Internet : aucune authentification client n'est nécessaire.

Pour autant, chacun des deux protocoles offre des similitudes, telles que :

Bibliothèque libcrypto et OpenSSH

Au-delà des différences et similitudes entre les deux protocoles, il est à préciser qu'OpenSSL est un outil de chiffrement comprenant deux bibliothèques :

Les deux bibliothèques peuvent être utilisées de manière indépendante.

C'est cette seconde bibliothèque, libcrypto, qui est importée et utilisée par OpenSSH afin d'effectuer les opérations de chiffrement. Cette bibliothèque fournit une suite de fonctions permettant d'effectuer les chiffrements (symétrique et asymétrique), la signature/vérification, ainsi que la génération de hachages.