- Secure Shell
-
Secure Shell Fonction Session à distance sécurisée Sigle SSH Port 22 RFC RFC 4251 modifier Pile de protocoles 7. Application 6. Présentation 5. Session 4. Transport 3. Réseau 2. Liaison 1. Physique Modèle Internet
Modèle OSISecure Shell (SSH) est à la fois un programme informatique et un protocole de communication sécurisé. Le protocole de connexion impose un échange de clés de chiffrement en début de connexion. Par la suite toutes les trames sont chiffrées. Il devient donc impossible d'utiliser un sniffer pour voir ce que fait l'utilisateur.
Le protocole SSH a été conçu avec l'objectif de remplacer les différents programmes rlogin, telnet et rsh.
Sommaire
Le protocole
Le protocole SSH existe en deux versions majeures : la version 1.0 et la version 2.0. La première version permet de se connecter à distance à un ordinateur afin d'obtenir un shell ou ligne de commande. Cette version souffrait néanmoins de problèmes de sécurité dans la vérification de l'intégrité des données envoyées ou reçues, la rendant vulnérable à des attaques actives. En outre, cette version implémentait un système sommaire de transmission de fichiers, et du port tunneling.
La version 2 qui était à l'état de draft jusqu'en janvier 2006 est déjà largement utilisée à travers le monde. Cette version est beaucoup plus sûre cryptographiquement, et possède en plus un protocole de transfert de fichiers complet, le SSH file transfer protocol.
Habituellement le protocole SSH utilise le port TCP 22. Il est particulièrement utilisé pour ouvrir un shell sur un ordinateur distant. Peu utilisé sur les stations Windows (quoique on puisse l'utiliser avec PuTTY, mRemote, cygwin ou encore OpenSSH), SSH fait référence pour l'accès distant sur les stations Linux et Unix.
SSH peut également être utilisé pour transférer des ports TCP d'une machine vers une autre, créant ainsi un tunnel. Cette méthode est couramment utilisée afin de sécuriser une connexion qui ne l'est pas (par exemple le protocole de récupérations de courrier électronique POP3) en la faisant transférer par le biais du tunnel chiffré SSH.
Il est également possible de faire plusieurs sauts entre consoles SSH, c'est-à-dire ouvrir une console sur un serveur, puis, de là, en ouvrir une autre sur un autre serveur.
Historique
La première version de SSH (SSH-1) a été conçue par Tatu Ylönen, à Espoo, en Finlande en 1995. Il a créé le premier programme utilisant ce protocole et a ensuite ouvert une société, SSH Communications Security pour exploiter cette innovation. Cette première version utilisait certains logiciels libres comme la bibliothèque Gnu libgmp, mais au fil du temps ces logiciels ont été remplacés par des logiciels propriétaires. SSH Communications Security a vendu sa licence SSH à F-Secure (anciennement connue sous le nom de Data Fellows).
La version suivante a été nommée SSH-2. Le groupe de recherche de l'IETF « secsh » a défini en janvier 2006 le standard Internet SSH-2, que l'on retrouve actuellement dans la plupart des implémentations. Cette version est compatible ascendante avec les implémentations du draft de SSH-2 qui étaient en version 1.99.
SSH avec authentification par clés
Avec SSH, l'authentification peut se faire sans l'utilisation de mot de passe ou de phrase secrète en utilisant la cryptographie asymétrique. La clé publique est distribuée sur les systèmes sur lesquels on souhaite se connecter. La clé privée, qu'on prendra le soin de protéger par un mot de passe, reste uniquement sur le poste à partir duquel on se connecte. L'utilisation d'un « agent ssh » permet de stocker le mot de passe de la clé privée pendant la durée de la session utilisateur.
Cette configuration profite aussi à SCP et à SFTP qui se connectent au même serveur SSH.
Recommandations
SSH V2 est définie par plusieurs recommandations :
- RFC 4251 : Architecture générale du protocole
- RFC 4252 : Protocole d'authentification (PKI, par mot de passe ou par machine)
- RFC 4253 : Protocole de transport sécurisé (Chiffrement, Signature numérique, intégrité)
- RFC 4254 : Protocole de connexion (Port tunneling, Shell)
Implémentations logicielles
- OpenSSH, le projet libre d'outils SSH. OpenSSH est l'implémentation ssh la plus utilisée, y compris par les distributions GNU/Linux.
- Portable OpenSSH, une implémentation OpenSSH multiplateforme.
- lsh[1], une implémentation distribuée par le projet GNU selon les termes de la licence GNU GPL.
- MacSSH[2], une implémentation lsh pour MAC OS.
- FRESH[3], une implémentation ssh en environnement JBoss.
- SSHWindows[4], une implémentation pour Windows non maintenue.
Notes et références
- (en) Implémentation GNU
- (en) MacSSH sur la plateforme SourceForge
- (en) FRESH
- (en) SSHWindows sur la plateforme SourceForge
Voir aussi
Articles connexes
- Protocole de communication
- SSH file transfer protocol (soit SSH FTP) transfert de fichiers à travers SSH
- Secure shell file system (soit SSHFS) partage de systèmes de fichiers à travers SSH
- Secure copy : transfert de fichiers à travers SSH
- Files transferred over shell protocol (en) : transfert de fichiers à travers un shell SSH
- PuTTY - client SSH multi-OS
- WinSCP - client SFTP graphique pour Windows
- TTyEmulator - Émulateur de terminal propriétaire, en Français sous Windows incluant un grand nombre de fonctionnalités.
Liens externes
- Catégorie SSH de l’annuaire dmoz
- (fr) Site Web d'OpenSSH
- Pulse2 Secure Agent OpenSSH (base cygwin) packagé pour Windows
- Connexion distante SSH : Apprendre à utiliser SSH.
Catégories :- Protocole de communication chiffrée
- Logiciel d'administration sécurisée à distance
- Protocole réseau sur la couche application
- Standard Internet
Wikimedia Foundation. 2010.