Protocole SSH
Cette page concerne le protocole SSH. Pour la société qui en est à l’origine, voir Sécurité des communications SSH. Pour l’utilisation de la commande ssh de Linux, voir Utilisation de la commande ssh. Pour les clients, serveurs et informations techniques de SSH, voir la page d’accueil de SSH (Secure Shell).
Le protocole SSH (également appelé Secure Shell) est une méthode de connexion à distance sécurisée d’un ordinateur à un autre. Il fournit plusieurs options alternatives pour une authentification forte, et il protège la sécurité et l’intégrité des communications par un cryptage fort. Il s’agit d’une alternative sécurisée aux protocoles de connexion non protégés (tels que telnet, rlogin) et aux méthodes de transfert de fichiers non sécurisées (telles que FTP).
Utilisations typiques du protocole SSH
Le protocole est utilisé dans les réseaux d’entreprise pour :
-
fournir un accès sécurisé aux utilisateurs et aux processus automatisés
-
des transferts de fichiers interactifs et automatisés
-
émettre des commandes à distance
-
gérer l’infrastructure réseau et d’autres composants système critiques.
Comment fonctionne le protocole SSH
Le protocole fonctionne selon le modèle client-serveur, ce qui signifie que la connexion est établie par le client SSH qui se connecte au serveur SSH. Le client SSH pilote le processus de configuration de la connexion et utilise la cryptographie à clé publique pour vérifier l’identité du serveur SSH. Après la phase de configuration, le protocole SSH utilise un chiffrement symétrique fort et des algorithmes de hachage pour garantir la confidentialité et l’intégrité des données échangées entre le client et le serveur.
La figure ci-dessous présente un flux de configuration simplifié d’une connexion shell sécurisée.
Authentification forte avec les clés SSH
Il existe plusieurs options qui peuvent être utilisées pour l’authentification de l’utilisateur. Les plus courantes sont les mots de passe et l’authentification par clé publique.
La méthode d’authentification par clé publique est principalement utilisée pour l’automatisation et parfois par les administrateurs système pour l’authentification unique. Elle s’est avérée être beaucoup plus utilisée que nous ne l’avions prévu. L’idée est de disposer d’une paire de clés cryptographiques – clé publique et clé privée – et de configurer la clé publique sur un serveur pour autoriser l’accès et accorder à toute personne possédant une copie de la clé privée l’accès au serveur. Les clés utilisées pour l’authentification sont appelées clés SSH. L’authentification par clé publique est également utilisée avec les cartes à puce, telles que les cartes CAC et PIV utilisées par le gouvernement américain.
La principale utilisation de l’authentification par clé est de permettre une automatisation sécurisée. Les transferts de fichiers shell sécurisés automatisés sont utilisés pour intégrer de manière transparente des applications et aussi pour la gestion de la configuration des systèmes automatisés &.
Nous avons constaté que les grandes organisations ont beaucoup plus de clés SSH qu’elles ne l’imaginent, et la gestion des clés SSH est devenue très importante. Les clés SSH accordent l’accès comme le font les noms d’utilisateur et les mots de passe. Elles nécessitent un processus de provisionnement et de résiliation similaire.
Dans certains cas, nous avons trouvé plusieurs millions de clés SSH autorisant l’accès à des serveurs de production dans les environnements des clients, 90 % des clés étant en fait inutilisées et représentant un accès provisionné mais jamais résilié. Pour une bonne gestion des identités et des accès, il est essentiel de mettre en place des politiques, des processus et des audits appropriés pour l’utilisation de SSH. Les projets traditionnels de gestion des identités ont négligé jusqu’à 90 % de toutes les informations d’identification en ignorant les clés SSH. Nous fournissons des services et des outils pour la mise en œuvre de la gestion des clés SSH.
SSH fournit un chiffrement fort et une protection de l’intégrité
Une fois qu’une connexion a été établie entre le client et le serveur SSH, les données qui sont transmises sont chiffrées selon les paramètres négociés lors de la configuration. Au cours de la négociation, le client et le serveur conviennent de l’algorithme de chiffrement symétrique à utiliser et génèrent la clé de chiffrement qui sera utilisée. Le trafic entre les parties communicantes est protégé par des algorithmes de chiffrement fort conformes aux normes industrielles (tels que AES (Advanced Encryption Standard)), et le protocole SSH comprend également un mécanisme qui garantit l’intégrité des données transmises en utilisant des algorithmes de hachage standard (tels que SHA-2 (Standard Hashing Algorithm)).
Norme SSH de l’IETF et documentation technique détaillée
Le protocole de base
Lorsque le protocole SSH est devenu populaire, Tatu Ylonen l’a présenté à l’IETF pour normalisation. C’est maintenant un standard internet qui est décrit dans les documents suivants :
RFC 4251 – L’architecture du protocole Secure Shell (SSH)RFC 4253 – Le protocole de la couche de transport de Secure Shell (SSH)RFC 4252 – Le protocole d’authentification de Secure Shell (SSH)RFC 4254 – Le protocole de connexion de Secure Shell (SSH)
Protocole de transfert de fichiers SFTP
Le SFTP (SSH File Transfer Protocol) est probablement le protocole de transfert de fichiers sécurisé le plus utilisé aujourd’hui. Il fonctionne sur SSH, et est actuellement documenté dans draft-ietf-secsh-filexfer-02
Format de fichier de clé publique
Le format de fichier de clé publique n’est pas un standard formel (c’est un document informatif), mais de nombreuses implémentations supportent ce format.RFC 4716 – Le format de fichier de clé publique Secure Shell (SSH)
Comment citer SSH
Pour citer SSH dans un article de recherche, veuillez utiliser ce qui suit :
Tatu Ylonen: SSH - Secure Login Connections over the Internet.Proceedings of the 6th USENIX Security Symposium, pp. 37-42,USENIX, 1996.
.