Definition

SSH (Secure Shell)

SSH, ou Secure Socket Shell, est un protocole réseau qui permet aux administrateurs d'accéder à distance à un ordinateur, en toute sécurité. SSH désigne également l'ensemble des utilitaires qui mettent en oeuvre le protocole. Le protocole Secure Shell assure une authentification forte et des communications de données chiffrées sécurisées entre deux ordinateurs connectés sur un réseau peu sûr, tel qu'Internet. SSH est largement utilisé par les administrateurs réseau pour gérer à distance les systèmes et les applications, car il leur permet de se connecter à un autre ordinateur sur un réseau, d'exécuter des commandes et de déplacer des fichiers d'un ordinateur à un autre.

SSH désigne à la fois le protocole de réseau cryptographique et les utilitaires qui mettent en oeuvre ce protocole. SSH fonctionne selon le modèle client-serveur, en connectant une application client Secure Shell - là où s'affiche la session - à un serveur SSH - là où s'exécute la session.

La plupart des systèmes d'exploitation, à l'exception de Microsoft Windows, incluent SSH par défaut. SSH prend en charge la tunnellisation, qui transfère des ports TCP arbitraires et des connexions X11, alors que le transfert de fichier peut être effectué à l'aide des protocoles SFTP (Secure File Transfer Protocol) ou SCP (Secure Copy Protocol) associés. Par défaut, un serveur SSH écoute le port TCP standard 22.

La suite SSH intègre trois utilitaires (slogin, ssh et scp), qui sont des versions sécurisées d'utilitaires UNIX non sécurisés antérieurs (rlogin, rsh et rcp). SSH utilise le chiffrement à clé publique pour authentifier l'ordinateur distant et lui permettre d'authentifier l'utilisateur, au besoin.

La première version de SSH a été créée en 1995 par Tatu Ylönen, chercheur à l'Université technologique d'Helsinki et fondateur de SSH Communications Security. Progressivement, des failles ont été découvertes dans SSH-1, désormais obsolète. La version actuelle des protocoles Secure Shell est SSH-2, le standard adopté en 2006. Elle n'est pas compatible avec SSH-1 et utilise un échange de clés Diffie-Hellman et un contrôle d'intégrité renforcé qui repose sur des codes d'authentification de message pour améliorer la sécurité. Les clients et serveurs SSH peuvent utiliser diverses méthodes de chiffrement, les plus répandues étant AES et Blowfish.

Actuellement, on ne connait aucune vulnérabilité exploitable de SSH2, mais les informations dévoilées par Edward Snowden en 2013 suggèrent que la National Security Agency est en mesure de déchiffrer une partie du trafic SSH.

Shellshock, une faille de sécurité du processeur de commandes Bash, peut être exécutée sur SSH, mais il s'agit d'une vulnérabilité dans Bash, pas dans SSH. En réalité, la plus grande menace pour SSH réside dans une mauvaise gestion des clés. En effet, faute d'un processus centralisé approprié pour la création, la rotation et la suppression des clés SSH, les entreprises risquent de perdre totalement le contrôle des autorisations d'accès aux ressources, particulièrement lorsque SSH est utilisé dans des traitements inter-applicatifs automatisés.

Cette définition a été mise à jour en août 2016

Pour approfondir sur Sécurité réseau (IDS, XDR, etc.)