• Aucun résultat trouvé

Le protocole SSH (Secure Shell)

N/A
N/A
Protected

Academic year: 2022

Partager "Le protocole SSH (Secure Shell)"

Copied!
27
0
0

Texte intégral

(1)

Solution transparente pour la constitution de réseaux privés virtuels (RPV)

INEO.VPN

Le protocole SSH (Secure Shell)

Tous droits réservés à INEOVATION. INEOVATION est une marque protégée

(2)

PLAN

Introduction

Bénéfice de SSH

L’architecture de SSH v2 SSH v1 vs SSH v2

La couche transport SSH (SSH-TRANS) La couche d’authentification (SSH-AUTH) La couche de connexion SSH (SSH-CONN) La couche de connexion SSH (SSH-CONN)

La phase d’initialisation de SSH v2

Les méthodes d’authentification avec SSH Les fonctionnalités de SSH

Les limites du protocole SSH

L’avenir de l’exploitation du protocole SSH

(3)

Introduction (1/2)

SSH Secure Shell est développé pour remplacer l’accès non-sécurisé des r-commandes de Unix

Les r-commandes (rlogin, rcp, rsh)

Les mots de passe à « usage unique »

19/04/2008 22:54

Les mots de passe à « usage unique » Telnet avec chiffrement

Début du travaille en 1995 développé par Tatu

Ylönen, chercheur dans le laboratoire informatique

de l’Université de Helsinki

(4)

Introduction (2/2)

Fait en 2 version , la version 2 est une réécriture complète de SSHv1( v1.3 et v1.5), c’est la version 2 qui a été accepter comme draft a l’IETF.

Actuellement V2 est en cours de normalisation à l’IETF par le groupe SECSH

(http://www.ietf.org/html.charters/secsh-charter.html)

SSH est un protocole couche transport qui travaille

au dessus de TCP est qui utilise la port 22

(5)

Bénéfice de SSH

Connexion à distance ( remplacement sécurisé de rlogin, rsh, rcp et telnet)

Évité la circulation du mot de passe en clair sur le réseau Authentification des machines et des clients

Redirection des sessions X11

19/04/2008 22:54

Redirection des sessions X11

Redirection de tous flux TCP dans le « tunnel » de la session Chiffrement ou même compression de cette session

Utilisations des infrastructure de certification (SPKI, X509,..) Implémentation très simple.

(6)

L’architecture de SSH v2

Le groupe de travail à l’IETF qui s’occupe de Secure Shell (SECSH WG), dirigé par Bill Sommerfeld, est alors lancé.

En 1997, ce groupe a fourni le premier draft IETF pour le protocole SSH v2. En 2006, il a réussi à normaliser le protocole SSH sous forme de trois « couches » :

1. SSH Transport Layer Protocol (SSH-TRANS) [RFC 4253] ; 1. SSH Transport Layer Protocol (SSH-TRANS) [RFC 4253] ; 2. SSH Authentication Protocol (SSH-AUTH) [RFC 4252] ; 3. SSH Connection Protocol (SSH-CONN) [RFC 4254].

(7)

L’architecture de SSHv2

Couche Description

Transport

Authentification du serveur, négociation des algorithmes, mise en place d’une clef de session, intégrité et confidentialité des

Les sous protocole de SSH v2

Transport place d’une clef de session, intégrité et confidentialité des données, compression, identification de session

Authentification Authentification du client (clef publique, mot de passe, clef d’hôte), changement du mot de passe

Connexion

Transfert de port TCP et transfert X, Transfert d’agent d’authentification

Gestion des sessions interactives, Exécution de programmes distants

Contrôle de flux, Gestion des terminaux (modes et tailles des fenêtres)

Compression des données

www.ineovation.fr

(8)

C’est quoi la différence entre SSH v1 et SSH v2 ?

SSHv1 SSHv2

Un seul protocole monolithique Séparation des protocoles de transport, d’authentification et de connexion

Un seul canal de données par session SSH

Nombre indéterminé de canaux de données par session SSH

Vérification faible de l’intégrité Vérification cryptographique forte de l’intégrité

- Possibilité de modifier le mot de passe

Mêmes algorithmes et clefs utilisés dans

les deux sens de la communication Les algorithmes de chiffrement, de calcul de contrôle cryptographique et de compression sont négociés séparément pour chaque sens de communication, avec des clefs indépendantes

Encodage fixé interdisant tout ajout de

nouveaux choix d’algorithmes Schéma de noms des algorithmes/protocoles extensible, permettant d’intégrer de nouveaux choix d’algorithmes nouveaux choix d’algorithmes permettant d’intégrer de nouveaux choix d’algorithmes

tout en préservant l’interopérabilité Confidentialité de la clé de session

transmise sur le réseau par la clef du serveur

Mise en place d’une clé de session basée sur Diffie- Hellman uniquement et donc inutilité de la clef du serveur SSH

- Reconnaissance des certificats de clefs publiques

Méthodes d’authentification des utilisateurs :

- Clef publique (RSA), RHostsRSA,

- Mot de passe

- Rhosts (à l’image de rsh dans Unix) - Kerberos (à base de tickets)

Méthodes d’authentification des utilisateurs :

- Clef publique (RSA, DSA, OpenPGP) associée à une machine,

- Mot de passe

- Clef d’Hôte (clef asymétrique permettant d’identifier les hôtes exécutant SSH, ou les instances du serveur SSH de la machine elle même)

Une seule forme d’authentification par

session Plusieurs méthodes d’authentification sont configurables pour un même utilisateur pour un même accès et le choix est fait lors de la phase d’initialisation (cf. section 2.2) L’authentification RhostsRSA est liée à

l’adresse de l’hôte client, ce qui limite son utilité

En principe, l’authentification basée sur l’hôte est indépendante de l’adresse réseau du client et peut ainsi fonctionner avec des mandataires, des clients mobiles, etc.

- Renouvellement périodique des clefs de session

(9)

•La couche transport SSH (SSH-TRANS)

C’est sur cette couche que reposent les deux autres couches SSH.

SSH-TRANS fournit l'authentification du serveur, la confidentialité et l'intégrité des données au moyen d'un chiffrement symétrique.

Elle fournit en option la compression des données de session en utilisant le mécanisme zlib (LZ77) défini dans les IETF RFC 1950 et 1951.

19/04/2008 22:54

1951.

Une fois que la couche transport a créé un tunnel sécurisé pour envoyer les informations entre les deux systèmes, le serveur indique au client les

différentes méthodes d'authentification prises en charge pour

l’authentification comme l'utilisation d'une clef asymétrique, ou l'entrée d'un mot de passe.

Packet length Padding length Payload

Random padding MAC

(10)

La couche d’authentification (SSH-AUTH)

Après l’échange des méthodes d’authentification supportées à travers la couche SSH-TRANS, la couche d’authentification (SSH-AUTH) permet de certifier l'identité du client auprès du serveur.

En effet, étant donné que les serveurs peuvent être configurés de façon à permettre différents types d'authentification, cette couche donne aux deux parties un niveau de contrôle optimal. Le serveur peut décider quelles

parties un niveau de contrôle optimal. Le serveur peut décider quelles méthodes d'authentification prendre en charge en fonction de son modèle de sécurité et le client peut choisir la méthode d'authentification à utiliser parmi celles qui sont disponibles.

Les messages échangés par cette couche sont sécurisés par la clef de chiffrement créée dans la couche SSH-TRANS. Après l'authentification du client auprès du serveur, de nombreux services peuvent être utilisés de façon sécurisée, tels qu'une session Shell interactive, des applications X11 et des ports TCP/IP tunnellisés

(11)

La couche de connexion SSH (SSH-CONN)

Cette couche s'appuie sur la couche d'authentification. Elle offre une variété de services riche aux clients en se servant de l’unique tunnel fourni par SSH-TRANS.

Ces services comprennent tout ce qu’il faut pour gérer plusieurs sessions interactives : exécution de programmes à distance (shell, applications commandes systèmes, etc.), multiplexage de plusieurs applications commandes systèmes, etc.), multiplexage de plusieurs flux (ou canaux), gestion des transferts X11, de port et d’agent.

Le transfert de port TCP permet d’encapsuler des protocoles applicatifs non sécurisés dans SSH de manière à apporter aux applications des services de chiffrement et d’intégrité de manière transparente.

www.ineovation.fr

(12)

La phase d’initialisation de SSH v2

La phase d’initialisation du protocole SSH v2

t (SSH-TRAN)Couche tansportCouche authentification (SSH-AUTH) Cette phase peut se répéter n fois jusqu’à que l’authentification réussi

(13)

Les méthodes d’authentification avec SSH

Trois méthodes d’authentification existent dans la version 2 normalisée à l’IETF :

Password

Il s’agit de l’authentification « traditionnelle », où lors de la connexion et après avoir décliné son identité, l’utilisateur tape son mot de passe qui sera

19/04/2008 22:54

après avoir décliné son identité, l’utilisateur tape son mot de passe qui sera transmis de façon protégé au serveur.

Ce dernier récupère le mot de passe, calcule son empreinte (condensât) et compare le résultat avec l’empreinte du mot de passe associé à l’utilisateur et stocké dans sa base de données.

Notons que les mots de passe stockés sous Unix sont chiffrés à l’aide de l’algorithme DES (via la fonction crypt()). D’autres systèmes utilisent des fonctions de hachage telles que MD5 ou SHA-1.

(14)

Les méthodes d’authentification avec SSH

Trois méthodes d’authentification existent dans la version 2 normalisée à l’IETF :

Publickey

• L’authentification à l’aide d’une clef publique est basée sur la

• L’authentification à l’aide d’une clef publique est basée sur la cryptographique asymétrique des clefs RSA ou DSA où

aucun secret ne circule sur le réseau. En effet, la clef

publique de l’utilisateur doit tout d’abord être stockée sur le serveur SSH et sa clef privée doit être stockée sur sa

machine de façon sécurisée.

• Ce système possède un niveau de sécurité plus élevé que le précédent. Cependant, sa sécurité repose quasi

exclusivement sur un système de confiance « hors ligne ».

(15)

Les méthodes d’authentification avec SSH

Trois méthodes d’authentification existent dans la version 2 normalisée à l’IETF :

hostbased

• Il s’agit d’une authentification similaire à celle utilisée par les

19/04/2008 22:54

• Il s’agit d’une authentification similaire à celle utilisée par les rcommandes et les fichiers tels que /etc/rhosts et ~/.rhosts, qui « certifient » les sites clients en ayant préalablement enregistré leur adresse dans le serveur.

• Avec cette méthode d’authentification, quand le client

demande une connexion à un serveur SSH, ce dernier va chercher dans le fichiers rhosts un nom d’hôte qui

correspond à l’adresse source de la connexion réseau du client.

(16)

Les méthodes d’authentification avec SSH

L’authentification avec des certificats X.509

La seule méthode pour remédier aux problèmes des clés asymétriques est

l’utilisation des certificats X.509 basée sur une infrastructure de gestion de clefs (ou PKI). Un certificat X.509, fourni par une autorité de confiance (AC), permet à la fois d’authentifier un individu, un serveur, une entreprise, ou toute autre entité et d’associer l’identité de cette entité avec sa clef publique.

et d’associer l’identité de cette entité avec sa clef publique.

Un certificat X.509 fournit principalement à son émetteur deux services de sécurité : l’authentification forte et la non répudiation des transactions ou des données.

Dans le protocole SSH, même si l’authentification par certificat X.509 des deux entités communicantes n’est pas encore normalisée au niveau de l’IETF

[SSHX509], il existe des implémentations qui permettent l’utilisation de ces certificats pour l’authentification dans deux entités SSH.

(17)

Les fonctionnalités de SSH

L’accès à distance par le shell SSH

Le shell SSH (la commande SSH) est une version

sécurisée de rsh (et rlogin). SSH veut dire « Secure Shell

» à l’image de rsh qui veut dire « Remote Shell ».

Quand rsh permet d’obtenir un shell distant aisément,

Quand rsh permet d’obtenir un shell distant aisément,

mais sans mécanisme d’authentification satisfaisant (du point de vue de la sécurité), SSH procure le même service de façon sécurisée.

Ainsi, pour utiliser SSH, il suffit d’utiliser la commande ssh à la place des commandes telnet, rsh et rlogin. Donc, à la place d’utiliser la commande : % rlogin serveur, il suffit d’utiliser maintenant %ssh serveur.

www.ineovation.fr

(18)

Les fonctionnalités de SSH

Le transfert de fichiers par SFTP

SFTP (Secure File Transfer Protocol) est un sous

protocole séparé qui se situe au-dessus du protocole SSH. Il est utilisé dans le transfert sécurisé des fichiers.

SFTP a plusieurs avantages par rapport au protocole non SFTP a plusieurs avantages par rapport au protocole non sécurisé FTP.

• D'abord, SFTP chiffre le couple username/password ainsi que les données transférées en se basant sur les

algorithmes cryptographiques négociés dans la phase d’initialisation du protocole SSH.

• En second lieu, il utilise le même port que le protocole SSH, ce qui élimine la nécessité d'ouvrir un autre port sur les pare- feux. Ainsi, l’utilisation de SFTP résout également les

problèmes connus dans le protocole FTP avec la translation

des adresses NAT. www.ineovation.fr

(19)

Les fonctionnalités de SSH

Le tunneling

En plus de fournir l'équivalent des commandes rcp, rlogin et rsh de manière chiffrée avec une authentification bien plus sécurisée, les protocoles SSH permettent la mise en œuvre du tunneling de manière relativement simple.

Lorsque vous ouvrez une session sur un hôte ssh, vous pouvez également

ouvrir un canal de communication sécurisé pour tous les autres protocoles. Il est ouvrir un canal de communication sécurisé pour tous les autres protocoles. Il est indéniable que la plupart des protocoles envoient les informations en clair sur le réseau.

L'astuce ici est de se servir du canal ouvert par ssh pour encapsuler les informations en clair et les faire transiter d'une machine à l'autre.

www.ineovation.fr

(20)

Les fonctionnalités de SSH

La redirection de ports (Port forwarding)

SSH permet de rediriger n’importe quel flux TCP dans le « tunnel » de la session SSH. Cela veut dire que le flux de n’importe quelle application circulant entre les ports client et serveur habituels, pourra être « encapsulé » à l’intérieur du « serveur habituels, pourra être « encapsulé » à l’intérieur du « tunnel » créé par la session SSH.

Cette fonctionnalité permet d’établir, entre deux points, un canal sécurisé par lequel peut transiter n’importe quel type de donnée IP

(21)

Les fonctionnalités de SSH

La redirection de l’authentification (Agent Forwarding)

L'agent SSH est un mécanisme d’authentification auprès de multiples serveurs SSH qui reconnaissent la clef privée d’un client sans devoir retaper à chaque fois sur sa machine sa client sans devoir retaper à chaque fois sur sa machine sa passphrase .

Un agent SSH est un programme, qui s’appelle ssh-agent, qui garde les clefs privées en mémoire et qui fournit les services d’authentification aux clients SSH.

Cette méthode permet à un utilisateur d’introduire sa

passphrase lors de la première connexion à un serveur SSH.

L’ouverture d’une session sécurisée avec un nouveau serveur SSH se fait de manière transparente pour l’utilisateur.

www.ineovation.fr

(22)

SSH vs les autres solutions VPN

SSH IPSec SSL

Normalisation 2006 à l’IETF 1998 à l’IETF IETF

Principale utilisation Interconnections entre des utilisateurs nomades et le site de leur entreprise via Internet

Interconnections des sites d’entreprise via l’Internet Interconnections entre des utilisateurs nomades et le site de leur entreprise via une session Web

Niveau OSI Sécurisation des applications au dessus de

TCP Sécurité transparente pour les applications au

dessus d’IP Sécurisation des applications au dessus

de TCP Service de sécurité - Confidentialité

- Intégrité - Authentification

non rejeu des paquets (grâce aux cookies, et aux numéros aléatoires utilisés dans la phase d’initialisation du protocole (SSH-CONN), les

- Confidentialité - Intégrité - Authentification

non rejeu des paquets (grâce aux cookies, et aux numéros aléatoires utilisés dans la phase d’initialisation du protocole (IKE), les données

- Confidentialité - Intégrité - Authentification

non rejeu des paquets (grâce aux numéros aléatoires utilisés dans la phase handshake du protocole, les données d’initialisation du protocole (SSH-CONN), les

données envoyées ne peuvent pas être rejouées après un certain temps)

- Protection d’identité

- Autorisation, (c.a.d, contrôle d’accès aux comptes), tunnel sécurisé, ‘port forwarding’, service de SSO (Single Sign On)

d’initialisation du protocole (IKE), les données envoyées ne peuvent pas être rejouées après un certain temps)

- Protection d’identité

handshake du protocole, les données envoyées ne peuvent pas être rejouées après un certain temps)

Gestion des clefs Gestion des clefs à travers un échange Diffie-

Hellman Dépend du protocole externe IKE (basé sur DH ou

sur un chiffrement asymétrique)

SSL utilise une méthode de chiffrement asymétrique (RSA ou DSA) ou des clefs DH pour la création d’un secret partagé Méthodes d’authentification

définies dans les normes

Username/mot de passe, clef asymétrique Clef partagée, clef asymétrique, certificat X.509 Clef partagée (rfc 4279), certificat X.509

Mécanisme de filtrage Impossible après l’ouverture d’un tunnel SSH Par paquet (niveau réseau), lié aux politiques de sécurité définies par les administrateurs pour IPSec

Impossible après l’ouverture d’une session SSL

Contrôle d’accès Comme pour SSL, plus adapté pour l’accès sur demande des utilisateurs.

Sécurise tout le trafic entre le client et le serveur SSH. Contrôle d’accès au niveau serveur SSH basé sur un fichier de configuration statique

Solution idéale pour les environnements Unix.

Problème de gestion des clefs chez les utilisateurs et un manque d’interface complète

Plus adapté pour l'accès à un ensemble défini des utilisateurs.

Accès total pour les clients VPN à un segment d’un réseau.

Solution idéale pour la sécurisation au niveau réseau. Problème de complexité

Plus adapté pour l'accès sur demande des utilisateurs.

Sécurise tout le trafic du navigateur au serveur principal. Accès " oui non " au niveau d'application basé sur une liste d’accès statiques (ACL).

Solution limitée aux applications qui supportent une interface Web ou qui intègrent SSL/TLS

(23)

Les limites du protocole SSH

La première authentification non sécurisée du client avec le serveur SSH

Puisque SSH n’utilise pas de tiers de confiance pour distribuer les clefs publiques, la première fois qu’un client SSH se

connecte à une nouvelle machine distante, il effectue un travail connecte à une nouvelle machine distante, il effectue un travail supplémentaire en vérifiant lui-même la clef publique du

serveur, soit en comparant le hachage, soit en contactant l’administrateur du serveur distant.

Une fausse acceptation de la clef publique envoyée par le

serveur SSH peut laisser une personne malveillante détourner le trafic SSH en envoyant une fausse clef lors de la première connexion au serveur SSH.

www.ineovation.fr

(24)

Les limites du protocole SSH

Les attaques sur le mot de passe

En encapsulant les données applicatives dans des paquets SSH, ce dernier ajoute du bourrage à

chaque paquet (bourrage de taille fixe pour SSHv1, bourrage de taille variable en fonction des méthodes bourrage de taille variable en fonction des méthodes de chiffrement par blocs pour SSH v2) ;

SSH chiffre les données et les envoie en clair dans le champ plaintextlength. Ainsi, un attaquant passif,

espionnant le trafic SSH, est capable de détecter la

taille des données envoyées sur le réseau et ainsi de

mener à bien des attaques par analyse de trafic.

(25)

Les limites du protocole SSH

L’authentification non sûre par « hôte de confiance »

Par définition, l’authentification par hôte de confiance renvoie aux méthodes d’authentification Rhosts, RhostsRSA de SSH-1 et hôte de SSH-2 [Dbar02].

et hôte de SSH-2 [Dbar02].

Plutôt que de demander au client de prouver son identité à tous les hôtes qu’il visite, l’authentification par hôte de confiance

établit des relations de confiance entre les machines.

Même si l’authentification par hôte de confiance est pratique pour les utilisateurs et les administrateurs (car elle permet de mettre en place une authentification automatique entre des

hôtes), cette technique dépend lourdement d’une administration correcte et de la sécurité des hôtes concernés.

www.ineovation.fr

(26)

L’avenir de l’exploitation du protocole SSH

Même si SSH a pu contourner de nombreuses menaces à la sécurité liées au réseau, il reste rattaché, dans sa spécification, à une conception

logicielle plus qu’à un vrai protocole de sécurité. Même si SSH, dans sa version 2, est devenu plus modulaire et extensible, nous pouvons

remarquer que les fonctionnalités de chaque sous-protocole dépendent fortement des autres sous-protocoles.

Jusqu’à présent, la meilleure utilisation du protocole SSH était dans le cadre de la sécurisation des connexions à distance vers les serveurs

d’applications ou les machines réseaux telles que les routeurs et les points d’accès. Cependant, la plupart de ces équipements réseaux proposent actuellement un mécanisme d’accès simple basé sur une interface Web non sécurisée basée sur le protocole SSL/TLS.

La nouvelle version du protocole SSL/TLS (TLS-PSK) pourra sans doute un nouveau concurrent au protocole SSH

(27)

Nous contacter

Pour plus d'informations, consultez le site

www.ineovation.fr

Pour plus d'informations, consultez le site www.ineovation.fr

Email: info@ineovation.fr

Références

Documents relatifs

Si la connexion SSH ne se termine pas sur un accès série physique, l'indication BREAK DEVRAIT être traitée d'une manière cohérente avec l'utilisation générale de BREAK

Si la connexion SSH ne se termine pas sur un accès série physique, l'indication BREAK DEVRAIT être traitée d'une manière cohérente avec l'utilisation générale de BREAK

La seule fois où le serveur devrait envoyer plusieurs messages de demande est si des données d'authentification supplémentaires sont nécessaires (c'est-à-dire, parce qu'il y a

La sécurité globale de l'utilisation de SSHFP pour la vérification de la clé d'hôte SSH dépend des politiques de sécurité de l'administrateur de l'hôte SSH et de l'administrateur

Les demandes d'allocation de nouvelles valeurs de code de type de données de transfert de données de canal étendu et leurs chaînes associées de données de transfert de données de

Dans cet échange, C est le client ; S est le serveur ; p est un grand nombre premier sûr ; g est un générateur pour un sous groupe de GF(p) ; q est l'ordre du sous groupe ; V_S est

Tous ces messages dépendent du 'nom de méthode' d'authentification utilisé, et le client PEUT à tout moment continuer avec un nouveau

De plus, le protocole de transport fournit un identifiant unique de session (lié en partie aux données pseudo aléatoires qui font partie de l’algorithme et du processus d'échange