Table des mati`eres Introduction Protocole de transport Protocole d’authentification Protocole de connexion R´ef´erences
Protocole SSH-2.0
Tuan-Tu, TRAN
Janvier 2009
1 Introduction
2 Protocole de transport
Etablissement des cl´es de session Protection des donn´ees ´echang´ees
3 Protocole d’authentification Identification par mot de passe Identification par cl´e publique Identification par hˆote
4 Protocole de connexion
Table des mati`eres Introduction Protocole de transport Protocole d’authentification Protocole de connexion R´ef´erences
Utilisations de Secure Shell
Acc`es `a distance, orient´e compte utilisateur.
Entre autres:
sessions interactives `a distance;
execution de commandes `a distance;
transfert de fichiers vers des machines distantes (sftp, scp);
redirection de ports;
montage de syst`emes de fichiers distants (sshfs);
... de mani`ere s´ecuris´ee !
Pr´ed´ecesseurs non s´ecuris´es
Remplacement des r-commandes (rsh,rlogin,rcp) et de ftp, non s´ecuris´es:
envoi de donn´ees en clair sur le r´eseau (dont les informations d’identification);
pas de contrˆole d’int´egrit´e des donn´ees;
pas de contrˆole d’authenticit´e des participants.
Table des mati`eres Introduction Protocole de transport Protocole d’authentification Protocole de connexion R´ef´erences
Architecture du protocole SSH-2.0
Mod`ele client-serveur, subdivis´e en 3 protocoles:
Transport: canal de communication s´ecuris´e;
Authentification: identification du client et contrˆole d’acc`es;
Connexion: multiplexage du canal s´ecuris´e.
Protocole de transport
Protocole de base.
Canal de communication s´ecuris´e:
Authentificationdu serveur;
Chiffrementdes donn´ees;
Contrˆole d’int´egrit´eet d’authenticit´edes donn´ees.
Chiffrement sym´etrique et authentification des messages
⇒´etablissement de cl´es de session.
N´egociation des algorithmes.
Table des mati`eres Introduction Protocole de transport Protocole d’authentification Protocole de connexion R´ef´erences
Etablissement des cl´es de session Protection des donn´ees ´echang´ees
Sp´ecifications de l’´etablissement des cl´es de session
Algorithme →
(secret partag´e K
hash d’´echange secret H =f(K, ...) D´erivation d’un identificateur de session:
session id := 1erhash d’´echangeH propre `a chaque session
d´efinitif pour la session
D´erivation des vecteurs d’initialisation et des cl´es de sessions:
HASH(K k H k X k session id) fonction HASH d´etermin´ee par l’algorithme n´egoci´e X = constante d´efinie pour chaque cl´e/vecteur `a d´eriver
Algorithme de Diffie-Hellman pour l’´echange de cl´es
Etablissement d’un secretK partag´e entre 2 acteurs Aet B.
1 Choix d’un groupe cycliqueG et d’un g´en´erateurg.
2 A→B :ga aveca priv´e `aA B→A:gb avecbpriv´e `aB
3 A: K = gba B: K = (ga)b
Difficult´e du logarithme discret en base g dans G. H := HASH(f(K,a,b,g,...))
Diff´erentes variantes selon le choix de G,g et HASH.
ex.: diffie-hellman-group1-sha1
Probl`eme de l’identit´e des participants.
Table des mati`eres Introduction Protocole de transport Protocole d’authentification Protocole de connexion R´ef´erences
Etablissement des cl´es de session Protection des donn´ees ´echang´ees
Authentification du serveur
But: assurer au client C qu’il s’adresse effectivement au serveurS S signe H avec sa cl´e priv´ee.
S envoie sa cl´e publique et la signature `aC + ´eventuellement un certificat d’authenticit´e C v´erifie que la cl´e publique re¸cue est bien celle de S
soit `a l’aide du certificat
soit grˆace `a une base de donn´ee locale
C v´erifie la signature `a l’aide la cl´e publique re¸cue
C est alors certain que les cl´es de sessions ont ´et´e partag´ees avecS et la communication crypt´ee peut commencer.
Traitement des messages
Communication de messages par paquet Compression ´eventuelle du message.
Bourrage al´eatoire:
adapter la taille du paquet;
compliquer la crypto-analyse.
Calcul du MAC.
Chiffrement.
Table des mati`eres Introduction Protocole de transport Protocole d’authentification Protocole de connexion R´ef´erences
Etablissement des cl´es de session Protection des donn´ees ´echang´ees
Code d’authentification des messages
MAC =fMAC(cl´e , n◦ de s´equence kpaquet non chiffr´e)
Protection contre: alt´eration, contre-fa¸con, rejeu
0 ≤n◦ de s´equence <232⇒ changement de cl´es de sessions avant 232 paquets
Protocole d’authentification
Identifier le client pour le contrˆole d’acc`es aux ressources.
Identification par mot de passe;
Identification par cl´e publique;
Identification par hˆote.
Processus contrˆol´e par le serveur.
D´efinition des m´ethodes admises Identifications multiples possibles
Table des mati`eres Introduction Protocole de transport Protocole d’authentification Protocole de connexion R´ef´erences
Identification par mot de passe Identification par cl´e publique Identification par hˆote
Identification par mot de passe
byte SSH MSG USERAUTH REQUEST string user name
string service name string "password"
boolean FALSE
string plaintext password
possibilit´e de modifier le mot de passe Vuln´erabilit´es:
d´ecryption du paquet;
modification du paquet en cas de changement de mot de passe;
compromission du serveur.
Identification par cl´e publique
byte SSH MSG USERAUTH REQUEST string user name
string service name string "publickey"
boolean TRUE
string public key algorithm name string public key to be used string signature
signature avec session id.
rˆole du bool´een.
Vuln´erabilit´e: compromission du client.
Table des mati`eres Introduction Protocole de transport Protocole d’authentification Protocole de connexion R´ef´erences
Identification par mot de passe Identification par cl´e publique Identification par hˆote
Identification par hˆ ote
byte SSH MSG USERAUTH REQUEST string user name
string service name string "hostbased"
string public key algorithm name string public host key
string client host name
string user name on the client host string signature
signature avec session id.
possibilit´e d’inclure un certificat.
Protocole de connexion
Multiplexage de plusieurs flux de donn´ees `a travers l’unique canal s´ecuris´e.
Terminal `a distance Session graphique (X11) Port forwarding
protocole sftp
Table des mati`eres Introduction Protocole de transport Protocole d’authentification Protocole de connexion R´ef´erences
Port forwarding: connexion non s´ecuris´ee
mysql --host=distant --port==3306
3 3 0 6
????
Local Distant
Port forwarding: connexion s´ecuris´ee
ssh -L 2212:local:3306 user@distant mysql --host=local --port=2212
ssh(22)
????
Local Distant
2 2 1 2 3 3 0 6
ssh(22)
Table des mati`eres Introduction Protocole de transport Protocole d’authentification Protocole de connexion R´ef´erences
R´ef´erences I
D.J. Barrett, R.E. Silverman, and R.G. Byrnes.
SSH, The Secure Shell: The Definitive Guide.
O’Reilly Media, Inc., 2005.
A.J. Menezes, P.C. Van Oorschot, and S.A. Vanstone.
Handbook of Applied Cryptography.
CRC Press, 1997.
Wikipedia.
Diffie-Hellman key exchange.
Available from World Wide Web:
http://en.wikipedia.org/wiki/Diffie-Hellman_key_exchange
R´ef´erences II
Wikipedia.
Message authentication code.
Available from World Wide Web:
http://en.wikipedia.org/wiki/Message_authentication_code T. Ylonen and C. Lonvick.
The Secure Shell (SSH) Authentication Protocol.
Technical report, RFC 4252, January 2006.
T. Ylonen and C. Lonvick.
The Secure Shell (SSH) Connection Protocol.
Technical report, RFC 4254, January 2006.
Table des mati`eres Introduction Protocole de transport Protocole d’authentification Protocole de connexion R´ef´erences
R´ef´erences III
T. Ylonen and C. Lonvick.
The Secure Shell (SSH) Protocol Architecture.
Technical report, RFC 4251, January 2006.
T. Ylonen and C. Lonvick.
The Secure Shell (SSH) Transport Layer Protocol.
Technical report, RFC 4253, January 2006.