Le protocole Secure Shell (SSH) permet d'établir des connexions chiffrées à distance entre des ordinateurs. Il permet également la tunnellisation.
Cet article s'articule autour des points suivants :
Contenu associé
Qu'est-ce que l'authentification ?
Contrôle des accès
Sécurité des collaborateurs en télétravail
Sécurité Zero Trust
Abonnez-vous à theNET, le récapitulatif mensuel de Cloudflare des idées les plus populaires concernant Internet !
Copier le lien de l'article
Le protocole Secure Shell (SSH) est une méthode permettant d'envoyer en toute sécurité des commandes à un ordinateur sur un réseau non sécurisé. SSH a recours à la cryptographie pour authentifier et chiffrer les connexions entre les appareils. SSH permet également la tunnellisation, ou le transfert de port, c'est-à-dire que les paquets peuvent traverser des réseaux qu'il ne pourrait pas traverser autrement. SSH est souvent utilisé pour contrôler des serveurs à distance, dans le but de gérer l'infrastructure et de transférer des fichiers.
Lorsqu'il est en déplacement, le propriétaire d'un magasin peut donner des instructions à ses employés à distance afin de garantir le bon fonctionnement du magasin pendant son absence. De la même manière, SSH permet aux administrateurs de gérer des serveurs et des appareils à distance. Les anciens protocoles de gestion à distance tels que Telnet acheminaient les commandes des administrateurs dans un format visible par tout le monde. (Imaginez que les employés mettent le propriétaire du magasin sur haut-parleur pendant un appel ; tous les clients du magasin pourraient entendre des instructions confidentielles). Contrairement à Telnet, SSH est sécurisé, d'où le nom de Secure Shell.
Connexions chiffrées à distance : SSH établit une connexion entre l'appareil d'un utilisateur et une machine éloignée, souvent un serveur. Il utilise le chiffrement pour brouiller les données qui traversent la connexion. Quiconque intercepterait les données ne trouverait que des données statiques, c'est-à-dire des données aléatoires qui n'ont aucun sens tant qu'elles ne sont pas déchiffrées. (Les méthodes de chiffrement appliquées par SSH rendent le déchiffrement extrêmement difficile pour les personnes extérieures).
Possibilité de tunnellisation : dans le domaine des réseaux, la tunnellisation est une méthode permettant de faire transiter un paquet au travers d'un réseau en utilisant un protocole ou suivant un itinéraire qu'il ne pourrait normalement pas emprunter. La tunnellisation consiste à envelopper les paquets* de données avec des informations supplémentaires, appelées en-têtes, afin de modifier leur destination. Les tunnels SSH ont recours à une technique appelée redirection de port pour transférer des paquets d'une machine à l'autre. La redirection de port est expliquée plus en détail ci-dessous.
*Toutes les données qui traversent un réseau sont décomposées en morceaux plus petits ces morceaux sont appelés « paquet ».
SSH s'exécute parallèlement à la suite de protocole TCP/IP, sur laquelle repose une grande partie de l'Internet. Le TCP/IP transporte et distribue les paquets de données. L'utilisation de TCP distingue SSH des autres protocoles de tunnellisation, dont certains utilisent le UDP, plus rapide mais moins fiable.
Ces clés « asymétriques », appelées ainsi parce qu'elles ont des valeurs différentes, permettent également aux deux parties de la connexion de négocier des clés symétriques identiques et partagées pour un chiffrement supplémentaire du canal. Une fois cette négociation terminée, les deux parties utilisent les clés symétriques pour chiffrer les données qu'elles échangent.
Dans une connexion SSH, les deux parties disposent d'une paire de clés publique/privée, et chaque partie authentifie l'autre à l'aide de ces clés. C'est ce qui distingue SSH de HTTPS, qui, dans la plupart des cas, ne vérifie que l'identité du serveur web dans le cadre d'une connexion client-serveur. (Parmi les autres différences, citons le fait que HTTPS ne permet généralement pas au client d'accéder à la ligne de commande du serveur et que les pare-feu bloquent parfois SSH, mais presque jamais HTTPS).
Bien que la cryptographie à clé publique permette d'authentifier les appareils connectés selon SSH, un ordinateur correctement sécurisé exigera toujours l'authentification de la personne qui utilise SSH. Il s'agit souvent de saisir un nom d'utilisateur et un mot de passe.
Une fois l'authentification établie, la personne peut exécuter des commandes sur la machine distante comme si elle le faisait sur sa propre machine en local.
La redirection de port est comparable au transfert d'un message entre deux personnes. Bob peut envoyer un message à Alice, qui le transmet à son tour à Dave. De la même manière, la redirection de port transfère les paquets destinés à une adresse IP et à un port d'une machine donnée vers une adresse IP et un port d'une autre machine.
Imaginons par exemple qu'un administrateur veuille apporter une modification à un serveur situé dans un réseau privé dont il assure la gestion, et qu'il veuille le faire à partir d'un site distant. Pour des raisons de sécurité, ce serveur ne reçoit que des paquets provenant d'autres ordinateurs au sein du réseau privé. L'administrateur a alors la possibilité de se connecter à un deuxième serveur au sein du réseau, un serveur qui reçoit sans problème du trafic provenant d'Internet, et d'utiliser la redirection de port SSH pour se connecter au premier serveur. Du point de vue du premier serveur, les paquets de l'administrateur proviennent de l'intérieur du réseau privé.
Le protocole SSH est présent dans les systèmes d'exploitation Linux et Mac. Sur les machines Windows, il arrive qu'il soit nécessaire d'installer une application client SSH. Sur les ordinateurs Mac et Linux, les utilisateurs peuvent ouvrir l'application Terminal et saisir directement les commandes SSH.
Techniquement, SSH peut transmettre n'importe quelle donnée arbitraire sur un réseau, et la tunnellisation SSH peut être mise en place pour une multitude d'objectifs. Toutefois, les cas d'utilisation les plus courants de SSH sont les suivants :
Le port 22 est le port par défaut pour le protocole SSH. Parfois, les pare-feu bloquent l'accès à certains ports sur les serveurs situés derrière le pare-feu, mais laissent le port 22 ouvert. SSH est donc utile pour accéder à des serveurs de l'autre côté du pare-feu : les paquets dirigés vers le port 22 ne sont pas bloqués et peuvent ensuite être transférés vers n'importe quel autre port.
L'accès SSH s'accompagnant généralement de privilèges élevés tels que la capacité d'installer des applications sur un serveur ou de supprimer, modifier ou extraire des données, il peut être dangereux s'il est accordé à un acteur malveillant, même à un collaborateur interne bien intentionné. SSH a été utilisé dans un certain nombre d'attaques signalées dans le but d'exfiltrer des données privées, d'ouvrir des portes dérobées vers un réseau sécurisé et d'obtenir l'accès à la racine de serveurs.
SSH peut également passer à travers des pare-feu qui ne bloquent pas le port 22 (comme c'est le cas pour beaucoup), ce qui permet aux acteurs malveillants de se glisser à l'intérieur de réseaux sécurisés.
Les acteurs malveillants peuvent également voler des clés SSH afin d'accéder à des ordinateurs et des serveurs privés. En réalité, la gestion des clés SSH représente un problème de sécurité majeur pour les grandes organisations, car leurs nombreux serveurs peuvent utiliser des milliers, voire des millions de clés, et le suivi et la mise à jour manuels de ces clés sont pratiquement impossibles. Les clés SSH n'expirent pas, sauf si elles font l'objet d'une révocation explicite. Ainsi, lorsqu'un acteur malveillant obtient une clé, il peut bénéficier d'un accès pendant des mois, voire des années.
Une des principales différences entre SSH et les autres protocoles de tunnellisation concerne la couche OSI sur laquelle ils opèrent. GRE, IP-in-IP et IPsec sont tous des protocoles de la couche réseau. Ils ne connaissent pas les ports (un concept propre à la couche de transport) et opèrent plutôt entre des adresses IP. (La couche OSI exacte de SSH n'est pas strictement définie, mais la plupart des sources la décrivent comme un protocole de la couche applicative, à savoir la couche 7, tel qu'HTTP, FTP et SMTP.)
Une autre différence tient à l'utilisation de TCP par SSH. TCP, comme il est décrit ci-dessus, est un protocole de la couche de transport, et l'un des principaux utilisés sur Internet. Il existe un autre protocole de couche de transport largement utilisé, il s'agit d'UDP, User Datagram Protocol. UDP est un protocole qui assure le transport « au mieux », c'est-à-dire qu'il envoie des paquets sans en garantir la remise. Il est donc plus rapide mais il arrive qu'il perde les paquets. Bien que TCP soit plus lent qu'UDP, il garantit la livraison de tous les paquets dans l'ordre et est donc plus fiable.
IPsec utilise exclusivement UDP au lieu de TCP afin de permettre aux paquets IPsec de traverser les pare-feu. Par conséquent, les tunnels IPsec sont généralement plus rapides que les tunnels SSH, mais peuvent perdre des paquets en transit. GRE et IP-in-IP peuvent être utilisés avec TCP ou UDP.
Enfin, le protocole SSH ne chiffre qu'une application à la fois, et non l'ensemble du trafic entrant et sortant d'un appareil. En cela, SSH se distingue d'IPsec qui crypte tout le trafic réseau, quelle que soit l'application d'où il provient. C'est la raison pour laquelle SSH n'est pas utilisé pour la mise en place de VPN.
Bien que SSH fasse peser des risques élevés sur la sécurité, de nombreuses organisations en dépendent pour rester productives. Pour atténuer ces risques, Cloudflare propose le SSH avec Access for Infrastructure dans le cadre de sa plateforme SASE. Ce service applique les concepts Zero Trust au SSH, offrant aux organisations un contrôle granulaire sur la manière dont les utilisateurs peuvent se connecter à leurs serveurs SSH. Il limite ce qu'un utilisateur peut faire, ce qui amoindrit les éventuelles conséquences liées à une utilisation non autorisée de SSH par un acteur malveillant ou un collaborateur interne.
Le SSH associé à Access for Infrastructure élimine également la nécessité de gérer les clés SSH (ce qui suppose une difficulté énorme, comme il est décrit précédemment). À la place, les organisations peuvent utiliser des certificats SSH à la durée de vie limitée, émis par une autorité de certification (CA) gérée par Cloudflare.
Cloudflare permet également aux entreprises de surveiller et de journaliser les accès et l'utilisation du SSH, une caractéristique essentielle à la fois pour la récupération des incidents et la conformité aux règlementations
En savoir plus sur SSH associé à Access for Infrastructure.
Le SSH (Secure Shell) est un protocole réseau qui établit des connexions chiffrées entre des ordinateurs pour un accès distant sécurisé. Il fonctionne sur le port TCP 22 et assume des fonctions d'authentification, de chiffrement et d'intégrité afin de protéger les données transmises sur les réseaux non sécurisés.
Les clés SSH permettent d'authentifier les utilisateurs à l'aide de la cryptographie asymétrique, avec une paire de clés publique-privée au lieu des mots de passe traditionnels. La clé privée reste sur le système du client tandis que la clé publique réside sur le serveur, ce qui permet une authentification sécurisée sans transmission des informations d'identification réelles sur le réseau.
La tunnellisation SSH crée une connexion sécurisée par laquelle d'autres données peuvent passer, le trafic non chiffré est ainsi efficacement chiffré. Cela permet de sécuriser le transfert de port et d'éviter que les informations sensibles ne soient interceptées pendant la transmission.
Telnet transmet des données en texte clair. SSH chiffre toutes les communications afin d'empêcher les attaques par écoute clandestine et les attaques de l'homme du milieu. SSH a efficacement remplacé Telnet comme norme d'accès aux serveurs à distance en raison de ses fonctionnalités de sécurité supérieures.
Les types de clés SSH les plus courants sont RSA, ECDSA et EdDSA, qui offrent différents niveaux de sécurité et de performances. Ed25519, une version du schéma de signature EdDSA qui utilise une courbe elliptique, devient de plus en plus populaire car il offre une sécurité renforcée, avec des longueurs de clé plus courtes et des opérations plus rapides.