Vous êtes sur la page 1sur 68

CHAPITRE 8

Introduction à la cryptographie

1
PLAN

1.Introduction ( Problèmes de sécurité des échanges


, Historique , Principe général)
2.Cryptographie à clé secrète ( symétrique )
3.Cryptographie à clé publique ( asymétrique )
4.Fonction de Hachage et Signature numérique
5.Certificat numérique et PKI

2
Objectifs

• Comprendre le principe de la cryptographie moderne .

• Comprendre le principe de la cryptographie symétrique et


asymétrique

• Comprendre le principe de SSL /TLS et OpenSSL

• Comprendre le principe de la signature numérique

• Comprendre le principe des certificats numériques et les PKI

3
Introduction
• Avant , l’environnement de l’entreprise était :
– Centralisé
– Avec des échanges papier
– Et pas d’accès distant.
– Une relation de confiance est établie entre l’entreprise et
ces collaborateurs
• Aujourd’hui , avec l’utilisation des réseaux informatique :
– C’est un environnement distribué sur plusieurs sites ,
– Avec des accès distants,
– Des échanges de documents numérique,
– Utilisation d’Internet
– Difficile de maintenir la relation de confiance .
4
Environnement de l’entreprise

Internet

Les échanges ne sont plus sure !!!!!!!! 5


Problèmes de Sécurité des échanges sur Internet

• Les problèmes de sécurité des échanges sont dus à des failles


notamment dans les protocoles de communication (exemple :
ftp et telnet )
• Toute information circulant sur Internet peut être capturée et
enregistrée .
• Toute information circulant sur Internet peut être capturée et
modifiée .
• Toute personne ou machine peut engendrer une fausse
identification .
• Toutes personnes ou machines peut nié l’envoi ou la
réception d’une données .

6
Besoins de sécurité des échanges sur Internet
• Pour assurer la sécurité des échanges sur Internet il faut utiliser
un mécanisme qui permet :
– La Confidentialité : Consiste à empêcher qu’un tiers intercepte les
données confidentielle échangés durant une session .
– L’ Intégrité : Consiste à empêcher toute modification non autorisée
des données.
– L’ Authentification : Consiste à vérifier l’identité de l’utilisateur ou
de la machine qui veut accéder à un système informatique.
– Non répudiation : consiste à garantir qu’un correspondant ne puisse
nier qu’un message lui a été envoyé ou il a envoyer lui-même un
message.

Pour sécurisé les échanges et réponde à ces besoins


utiliser la cryptographie .
7
Définition de la cryptographie
• Le mot cryptographie vient du grec :
• kryptos (caché)
• et graphein (écrire) .
• La cryptographie est la science d’écriture et de lecture des
messages codés .
• La cryptographie est une science mathématique permettant
d’effectuer des opérations sur un texte claire afin d’assurer une
ou plusieurs propriétés de la sécurité de l’information (
authentification , confidentialité , intégrité et non répudiation ).

8
Définition de la cryptographie

• Afin de protéger un message, on lui applique une transformation qui le rend


incompréhensible, c’est ce qu’on appelle chiffrement ou cryptage.

• Inversement, le déchiffrement ou décryptage est l’action qui permet de


reconstituer le texte en claire à partir du texte chiffré.

• Cryptanalyse : la Science permettant d’étudier les systèmes


cryptographiques en vue de les tester ou de les casser ( trouver des failles )

• Cryptologie : la science qui regroupe la cryptographie et la cryptanalyse.

• La cryptographie est un élément de base de la sécurité informatique.

9
Schéma d’un système de cryptographie

Chiffrement Déchiffrement
Texte en clair Texte chiffré Texte en clair

•M : suite de caractères (message)


•Fonction ( algorithme )de chiffrement
• E(M)=C
•Fonction (algorithme )de déchiffrement
• D(C)=M
•On doit avoir D(E(M))=M

10
Bref Historique
• La cryptographie à été utilisée avant l’avènement de l’informatique et elle
c’est développée plus pendant les guerres !!!!!!!!!!!!!!
• 50 av. JC. : Julius Cesar utilise une simple substitution de l’alphabet pour
les communications .
• 1918 : Gilbert Vernam, mathématicien américain, inventa le one-time pad,
l’algorithme de chiffrement le plus sûr jusqu’à aujoud’hui, mais
impraticable
• 1923 : Dr. Albert Scherbius, hollondais résidant en Allemagne, met au point
la machine Enigma qui sert à encoder des messages.
• 1925 : La marine de guerre allemande reprend le projet Enigma .
• 1937 : Enigma M3 est adoptée par le Wehrmacht, l’armée allemande
• 1939 : début de la seconde guerre mondiale, où des milliers de scientifiques
britanniques, polonais et français travaillaient pour solutionner Enigma, et
les milliers de messages chiffrés. L’équipe de Alan Turing trouva la
solution
11
Bref Historique
• 1976 : IBM publie un algorithme de chiffrement nommé le DES (Data
Encryption Standard)
• 1976 : Whitfield Diffie et Martin Hellman introduisent l’idée d’un système
à clé publique
• 1978 : l’algorithme de chiffrement à clé publique RSA est publié par
Rivest, Shamir et Adleman
• 1991 : Phil Zimmermann rend disponible sa première versio de PGP
• 1992 : MD5 est développé par Ronald L. Rivest
• 1994 : Ron Rivest, déjà auteur de RC2 et RC4, publie RC5
• 2000 : Rijndael devient l’AES, le standard du chiffrement avancé

12
Types de cryptographie

• On distingue la cryptographie ancienne et la cryptographie


moderne
• La cryptographie ancienne :
– Les algorithmes utilisés sont secret .
• La cryptographie moderne :
– Les algorithmes sont connus par tout le monde.
– La sécurité repose uniquement sur le secret d’une clé ( données utilisé
par l’algorithme pour le chiffrement ) .
F(message , clé )= MessageCrypté

13
La cryptographique ancienne

• La cryptographie ancienne utilise une paire de fonctions (


algorithmes ) pour le chiffrement et le déchiffrement.
• Les algorithmes sont secret
• La conception d'un tel algorithme nécessite des experts.
• On ne peut pas utiliser des algorithmes commerciaux
• Différents algorithmes pour différents utilisateurs.
• Pratiquement , n’est plus utilisé.

14
La cryptographique moderne

• Dans la cryptographie moderne, les algorithmes


cryptographiques dépendent d’un paramètre appelé clé.
• Le secret réside dans la (ou les) clé(s) et non dans les détails de
l'algorithmes.
K1 K2

M C M
Chiffrement Déchiffrement

E (M,K1)=C
D(C,K2)=M

Si on connaît pas la clé K2 on pourra pas décrypter le message


15
Clés cryptographique

• La valeur de la clé K provient d'un grand ensemble de valeurs


possibles (espace des clés )  tant que l’espace des clés est
grand plus l’algorithme est sûr .

• Par exemple , si la clé est sous forme binaire sur n bits alors 
2n possibilités ).
• Si on connaît pas la clé il faut essayer 2n combinaisons pour
pouvoir décrypté le message .

• En général on a besoin de deux clés


• K1 : pour le chiffrement
• K2 : pour le déchiffrement

• Pour le chiffrement E (M,K1)=C


• Et pour le déchiffrement D(C,K2)=M 16
Deux types d'algorithmes de chiffrement
moderne
• Algorithmes à clé secrète ( symétrique )
– On a K1=K2
– K1 doit être secrète
Pour le chiffrement E (M,K1)=C Et pour le déchiffrement D(C,K1)=M

• Algorithmes à clé publique ( asymétrique )


– K1K2
– K2 ne peut pas être calculé à partir de K1
– K1 peut être publique
– K2 doit être secrète (clé privée)

Pour le chiffrement E (M,K1)=C Et pour le déchiffrement D(C,K2)=M

17
Emplacement de la cryptographie dans le
modèle OSI

7 Application : pgp , md5,https


, imaps ,….
6 Présentation

5 Session : SSH

4 Transport : SSL/TLS

3 Réseau : IPsec

2 Liaison de données : L2TP

1 Physique

18
Le modèle OSI (de l'anglais Open
Systems Interconnection) est une norme
de communication, en réseau, de tous les
systèmes informatiques. C'est un modèle
de communications entre ordinateurs
proposé par l'ISO (International
Organization for Standardization en
français Organisation Internationale de
Normalisation) qui décrit les
fonctionnalités nécessaires à la
communication et l'organisation de ces
fonctions.
19
SSL (Secure Socket Layer)
• Le protocole SSL (Secure Socket Layer) a été développé par la
société Netscape Communications Corporation pour permettre
aux applications client/serveur de communiquer de façon
sécurisée.
• TLS (Transport Layer Security) est une évolution de SSL
réalisée par l’IETF.

• Il assure trois garanties cryptographique:

• L’authentification

• La confidentialité

• L’intégrité
20
SSL et la pile TCP/IP

• SSL est un protocole qui s’intercale entre TCP/IP et les


applications qui s’appuient sur TCP.

Couche Application
SSL
Couche transport

Couche Internet

Couche accès réseau

21
OpenSSL
• OpenSSL est une boîte à outils cryptographiques implémentant
les protocoles SSL et TLS .
• OpenSSL offre :
• Une bibliothèque de programmation en C permettant de
réaliser des applications client/serveur sécurisées s’appuyant
sur SSL/TLS.
• Une commande en ligne (OpenSSL) permettant :
– la création de clés privé et publique
– la création de certificats
– le calcul d’empreintes
– le chiffrement et déchiffrement à clé secrète .
• Intégration à multiple langages
– PHP,
– Perl 22
La cryptographie à clé secrète
( Symétrique )

23
23
Introduction
• Les systèmes à clé secrète (ou symétrique) utilisent une même
clé et un même algorithme de chiffrement pour chiffrer et
déchiffrer un message.
• L’émetteur et le destinataire doivent utiliser la même clé .

24
Cryptographie Symétrique : Modes
Opérationnels
• Cryptage par bloc
– Division du texte clair en blocs fixe, puis chiffrement bloc
par bloc
– Opère sur des blocs de données de taille fixe
– Implémentation logicielle en générale

• Cryptage par flux


– Le bloc a une dimension unitaire (1 bit, 1 octet, …), ou une
taille relativement petite.
– Opère sur un flux continu de données
– Mode adapté pour la communication en temps réel
– Implémenté en général sur des supports hardwares
Quelques algorithmes à clé secrète

• Chiffrement par bloc


– DES: IBM, Standard NIST 1976
– 3DES: W. Diffie, M. Hellman, W. Tuchmann 1978.
– IDEA: Xuejia Lai et James Massey en 1992
– Blowfish: Bruce Schneier en 1993
– AES (Rijndael): Joan Daemen et Vincent Rijmen 2000
• Chiffrement par flux
– RC4: Ron Rivest 1987
– SEAL: Don Coppersmith et Phillip Rogaway pour IBM
1993.

26
Exemple 1 :
Cryptage par Substitution
• Le code de César est le plus vieil algorithme de chiffrement
symétrique par substitution connu.
• Il consiste à remplacer chaque lettre du message d’origine
par une lettre de l‘alphabet situé n position plus loin (par une
simple translation).
• N constitue la clé secrète.

• Exemple :
La clé est 3 :
Texte clair : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Texte chiffré: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

27
Exemple 2 : Cryptage par transposition
(permutation )
• Le principe de codage par transposition est de modifier selon une loi
prédéfinie l’ordre des caractères.
• La méthode de pliage constitue un exemple simple de chiffrement par
transposition.
• Elle consiste à écrire le message d’origine dans une matrice (écriture en
ligne) comportant autant de colonnes que la clé secrète.
• La clé secrète est constituée de numéros de colonnes.
• Le cryptogramme est obtenu en lisant cette matrice en colonnes selon
l’ordre défini par la clé .
• Exemple : 1 2 3 4

• Le message d’origine: U N E P

UNE PLANCHE A VOILE L A N C


• La clé de codage : 4312 H E A V
• Le message crypté :
O I L E
PCVE ENAL ULHO NAEL
28
Exemple 3 : L’algorithme DES

• L'algorithme DES (Data Encryption Standard ), a été créé dans


les laboratoires de IBM en 1976.
• C'est un chiffrement qui transforme des blocs de 64 bits avec
une clé secrète de 56 bits au moyen de permutations et de
substitutions.
• La clé est constituée de 64 bits .
• 56 bits sont générés aléatoirement et utilisés dans
l'algorithme
• Les huit autres bits sont des bits de parité.

29
Principe de DES
simple substitution et transposition

H V
P Q G
V H
A B U +1
+1 W D
T U V
D W
A C B
+2 E S
T V C +2
S E
E G Q

30
Principe de DES
• Chiffrement par blocs
• Entrée : bloc de 64 bits
• Sortie : bloc de 64 bits
• DES utilise 16 sous clés .
• Chaque clé est généré a partir
de la clé secrète
• DES utilise 16 tours ( itérations )
• Chaque itération effectuer une
permutation et une substitution en
utilisant une sous clé ( effectuer des
OU exclusif à chaque fois ).
• Pour déchiffrer refaire le même
processus dans le sens inverse

31
Avantages et inconvénients de DES

•Avantages :
•DES offre des performances excellentes à des débits très élevés (dizaine/
centaine de Mégabits/seconde).
-Utilisation multiple : Transmission de données informatiques, Cryptage de
chaînes de télévision .

•Incontinents :Problème de longueur des clés (actuellement 56 bits est insuffisant )

•Des puces spéciales permettant l'essai de 106 clés par seconde ont été
construites
•DES Challenge I 1997: DESCHALL en 96 j
•DES Challenge II-1 1998: Distributed.net en 41j
•DES Challenge II-2 1998: EFF Deep Crack 56h
•DES Challenge III 1999: Deep Crack et Distributed.net 22h15
•En 2000 AES deviens le standard à la place de DES
32

.
Triple DES ( 3DES )

• Appliquer le DES trois fois avec trois clés ( 128 bits)


• Généralement la première et la troisième sont égaux
• Cette algorithme est très sure mais il est très lent

33
L’AES
• AES : Advenaced Encryption Standard
• C’est le nouveau standard de cryptage
symétrique à partir de 2000
• Inventé créé par V. Rijmen et J.Daemen.
• AES : chiffrage de blocs de 128/192/256
bits
• avec une clé de 128/192/256 bits
• Le nombre de tours varie entre 10 et 14
selon la taille des blocs et la longueur des
clés.

34
Chifferemet symétrique avec OpenSSL
openssl enc -des -in test.doc -out test.cry
• enc : chiffrement
• des : algorithme de chifferement à clé secrète
• test.doc : fichier en entré en clair
• Test.cry : fichier en sortie chiffré
• Pour déchiffrer utiliser la même commande mais avec l’option –d

openssl enc -des -d -in test.cry -out test.doc


Remarque :
Pour choisir l’algorithme il suffit juste de changer le nom ( par exemple des3 )

openssl enc -des3 -in plaintext.doc -out ciphertext.bin


Chifferemet symétrique avec OpenSSL

• C’est possible de visualiser la clé de cryptage généré en utilisant l’option –P

openssl enc -des -P

• Le résultat key=DA9886B0BE9D1FE1
• Utiliser en suite cette clé pour le cryptage et le dycryptage .

openssl enc -des -k 784A259FB9A3AC74 -in test.txt -out test.cry


openssl enc -des -k 784A259FB9A3AC74 -in test.cry -out test.dec -d

36
Problèmes de la cryptographie symétrique
• La cryptographie à clé secrète présente l’inconvénient de la complexité de
gestion des clés secrètes .
• Pour n personnes communicantes, il faut gérer n*(n-1)/2 clés (car chaque
deux communicants possèdent leur propre clé de chiffrement).
• Pour une centaine de personne par exemple, il faut 4950 clés, ce qui n’est
pas pratique pour sécuriser les communications au sein d’une organisation
avec des milliers de communicants .

37
La cryptographie à clé publique
( Asymetrique )

38
38
Introduction

• Dans la cryptographie à clé publique (ou cryptographie


asymétrique) chaque communicant utilisent deux clés,
• L’une est connue par tous (clé publique), l’autre n’est connue
que par lui-même (clé privée).
• Les deux clés sont reliées mathématiquement entre elles de
telle sorte qu’il est impossible de retrouver la clé privée en
connaissant la clé publique.
• La cryptographie publique peut être utilisée pour assurer :
• Confidentialité
• Authentification

39
Principe de la cryptographie asymétrique

40
Relation entre les clés publique et privé

• Soit K_pub et K_priv respectivement la clé publique et la


clé privé d’une personne A.
• M le texte à chiffrer , C le texte crypté et F l’algorithme de
chiffrement
• Le message crypté avec l’une des clé ne peut être décrypté
qu’avec l’autre.

F(M,K_pub)=C  F(C,K_priv)=M
F(M,K_priv)=C  F(C,K_pub)=M

41
Cryptographie Asymétrique
Premier Mode : Confidentialité des données
K_pubB K_privB
A B
Texte clair Texte clair
Cryptage Internet Décryptage
Voici le Voici le
numéro numéro
de ma de ma
carte de ☺☼♀☻ carte de
crédit ♠♣▼╫◊ crédit
111111, 111111,
♫◙◘€£
¥₪Ω‫٭‬
Texte crypté
K_pubA, K_privA K_pubB,K_privB
K_pubB K_pubA

F(M, K_pubB) = C  F(C,K_privB)=M


F(C’, K_privA) = M’  F(M’,K_pubA)=C’
42
Cryptographie Asymétrique
Premier Mode : Authentification
A K_pubA
K_privA B

Texte clair Texte clair


Cryptage Internet Décryptage
Voici le Voici le
numéro numéro
de ma de ma
carte de ☺☼♀☻ carte de
crédit ♠♣▼╫◊ crédit
111111, 111111,
♫◙◘€£
¥₪Ω‫٭‬
Texte crypté
K_pubA, K_privA K_pubB,K_privB
K_pubB K_pubA

F(M,K_privA)=C  F(C,k_pubA)=M

L’information cryptée par la clé privée de A ne peut être déchiffrée que par
la clé publique de A  donc c’est A qui a envoyé le message chiffrée 43
Principe des Algorithmes à clés publiques

• Les algorithmes à clé publique reposent sur les bases de


l’arithmétique .
• Elle se base sur la factorisation des nombres premiers .
• Le choix des ces nombres détermine la force ou la faiblesse de
l’algorithme de cryptage  les nombre sont assez grands de
l’ordre 10100 .
• Deux principaux algorithmes :
• RSA (Rivest, Shamir et Adleman).
• DSA ( Digital Signture Algorithm )

44
Le RSA
• Inventé par (Rivest, Shamir et Adleman).
• Il utilise des clés très longues (jusqu’à 1024 bits)

• RSA offre toutes les garanties cryptographiques


(confidentialité, intégrité, authentification et non répudiation).
• Cet algorithme est très largement utilisé, par exemple dans les
navigateurs pour les sites sécurisés et pour chiffrer les
emails.

• L'algorithme est remarquable par sa simplicité. Il est basé sur


les nombres premiers.
• La sécurité apportée par le système RSA se fonde sur la
difficulté à factoriser le produit de deux grands nombres
premiers  personne n’a pus le faire en un temps
raisonnable.. 45
RSA dans la pratique
• Dans la pratique, ce n'est pas si simple à programmer.

• Dans la pratique , on utilise pas les algorithmes asymétriques pour


chiffrer toutes les données, car c’est trop lent à calculer par rapport au
algorithme de cryptographie symétrique.

• La cryptographie publique est plus utilisé pour assurer l’authentification


mais pour la confidentialité des données utilise la cryptographie
symétrique .

46
Utiliser OpenSSL pour le cryptage asymetrique
Génaration de la clé privé
openssl genrsa -des -out priv.key 1024
• genrsa : clé RSA
• des : algorithme de chifferement de la clé privée
• priv.key : fichier résultat qui contient la clé.
• 1024 : la taille de la clé

-----BEGIN RSA PRIVATE KEY-----


MIICXQIBAAKBgQDLxU8qdvFzpg8gVszguzH4d9UWdHeAzPABe40cVn+tV+Db1V3z
EVXanSQoCcO9cg4RrMcWBFDWJ6bEzE4LxiALDIc29fveB4x5HGTYJVeJLoCuDbV/
aEssNKoFs1UZ6ZxNAM3V5h5rb/D8DimM/YPYxBOCS3HmXAItUmsowrUCpQIDAQAB
AoGBAL3VyKX3/4NNPiRTmTT4UFp5URRFVpuw0RugfdrbnsDf8MT8pzTufnxXDzsZ
tbiFTCQdQa/6P1DzycLnzwHbBzd4QLH77jTlXPDX7kzRsS5lrmR5JCzvL3/4sW3Q
m7FGPY74ZNRxUCRtt/+URS4OtiyM8q+gYxUTkF7QOHrV5HQVAkEA/Dq818UIiJxo
F71yQ8nXVih5FFM0Rxepm1tGCa5CHX6coErdMqHvIVzNc0BVkwhBS5gayPyoGyES
qv8aVFrxFwJBAM7RH7hEJ9nokqS7PF75BWLFbIuPSrNT26f25nbKCw5qWyOPRjYS
rYQQ/wsgsA0vR3CAe9hVtupI6mHjqwxlJ6MCQCzRTw7T7uE/UWuueOg8rCueA22u
HyLmvHdjb3123j6ZacE9rDI7/d6iu8rXypzWoauJ+nBuHHy9krCZpZcJlb8CQF0L
7vZrC3bZUOh2KJId/RNT+SLMw/HsP33Q8hzth43jwb883XzEaHZrYyNxgGNeKwjt
dUp+Pb4oMfL6h+EavXsCQQCOt0RfqI7qrQaktlMwCg8nN+3YI80Vfj6oNgOTgfCv
ZBnAMNQ7oZNNYsAZ5DynHYfYZ8QyM7nTXWCiuyIP9zui 47
-----END RSA PRIVATE KEY-----
Utiliser OpenSSL pour le cryptage asymetrique
génération de la clé publique
• Extraction de la clé publique à partir de la clé privée :
openssl rsa –in priv.key -out pub.key -pubout

• rsa : clé RSA


• in priv.key : fichier de la clé privé
• out pub.key : fichier résultat qui contient la clé publique.

-----BEGIN PUBLIC KEY-----


MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLxU8qdvFzpg8gVszguzH4d9UW
dHeAzPABe40cVn+tV+Db1V3zEVXanSQoCcO9cg4RrMcWBFDWJ6bEzE4LxiALDIc2
9fveB4x5HGTYJVeJLoCuDbV/aEssNKoFs1UZ6ZxNAM3V5h5rb/D8DimM/YPYxBOC
S3HmXAItUmsowrUCpQIDAQAB
-----END PUBLIC KEY-----

48
Utiliser OpenSSL pour le cryptage asymetrique
Chifferement à clé publique
openssl rsautl -pubin -inkey pub.key -in plain.txt -out plain.txt.bin -encrypt

• inkey pub.key : fichier de la clé publique

openssl rsautl -inkey priv.key -in plain.txt.bin - out plain.txt -decrypt

• -inkey priv.key : fichier de la clé privé

49
Application de la cryptographie
Asymétrique

SSH
Secure Shell

50
SSH , quels sont les besoins ?
• Circulation des données et les mots de passe "en clair" sur le
réseau;
• authentification faible basé sur :
– Compte et mot de passe
– le nom ou l'adresse IP d’une machine
• L’objectif de SSH est d’améliorer :
• Le mécanisme de l’authentification : utilisation des clés
privé et publique .
– La confidentialité des données en chiffrant les données (
cryptage symétrique )

51
SSH : Architecture Client/Serveur
• SSH Permet la connexion et l'exécution de commandes sur une machine
distante
•Bonne alternative des services : telnet , rlogin,……

ssh serveur
Serveur SSH

Login : user
client
Passwd : ****

•Le serveur ssh écoute sur le port 22/TCP , il offre trois service
•ssh : travail à distance
•scp : copie de fichiers à distance
•sftp : transfert de fichiers sécurise similaire à ftp. 52
Sécure Shell : SSH
• Il existe deux version: SSHv1 et SSHv2
• La version 1 inclut : 1.3 et 1.5
• La version 2 inclut : 2.x,3.x,…
• Les deux version sont radicalement incompatibles
• Le protocole est monolithique dans SSH version 1
• Tandis que SSH2 est modulaire :
• SSH Transport Layer Protocol (SSH-TRANS)
• SSH Authentication Protocol (SSH-AUTH)
• SSH Connection Protocol (SSH-CONN)
Le protocole SSHv2
• La couche transport prend en charge:
• l'intégrité
• le chiffrement
• la compression
• l'authentification des machines
• La couche authentification prend en charge:
• l'authentification (password, clés publiques)
• la couche connexion prend en charge
• La gestion du tunnel (shell, redirection de ports, contrôle de
flux).
Chiffrement et authentification dans SSH

• SSH utilise le chiffrement symétrique pour le transfert de


données ( rapidité ) .
• Et le chiffrement asymétrique pour l’authentification .
• SSH permet d’authentifier :
– Les serveurs : assurer que nous somme bien connecté au
bon serveur
– Les utilisateurs : assurer que c’est les bon utilisateurs qui
accèdent au serveur.

55
Déroulement d’une session
SSHv2
(1) Etablissement de la connexion
S
C e
(2) Authentification du serveur
L r
I (3 )Authentification des utilisateurs v
E e
N (4) Exécution des commandes u
t r
(5) Déconnexion
56
Phase d’établissement de la connexion
• Dans cette phase le client demande l’établissant une connexion
TCP sur le port SSH (TCP/ 22)
• Serveur et client s’échangent les versions de SSH qu’ils
supportent
• Le client et le serveur se met d’accord sur l’algorithme de
chiffrement symétrique ( 3DES,AES ) pour assurer la
confidentialité.
• Le client et le serveur utilisent un protocole ( le protocole de
diffie-hellman ) pour généré la clé secrète qui sera utilisé par
la suite pour le cryptage des données .
Remarque :
la clé secrète généré est appelé une clé de session , à la prochaine
connexion elle sera changé . 57
Authentification du serveur ( 1)
• Le serveur SSH dispose d'une paire de clés RSA (généré lors
de l'installation du serveur):
• Lorsque le client envoi sa requête de connexion au serveur .
Le serveur envoie sa clé publique au client avec une demande
de confirmation de réception de la clé publique.
• Si le client accepte , alors la clé publique du serveur sera
sauvegarder au niveau du client .

58
Authentification du serveur ( 2)
• L’objectif de cette authentification est de s’assurer que
serveur possède bien la clé privée qui est associée à la clé
publique envoyer au client .
• Pour s’authentifier , le client crypte un message avec la clé
publique du serveur et l'envoie au serveur .
• Si le serveur retrouve le message en utilisant sa clé privé ,
c’est la preuve que le serveur est bien le vrai serveur.
• Maintenant l’utilisateur doit s’authentifier auprès du serveur .

59
Authentification du serveur
remarque
• Précaution
– Il faut s'assurer que k_pub présentée par le serveur est bien sa clé publique
– Sinon le client risque de se connecter à un faux serveur

• Solution
– Demander à l'administrateur du serveur quelle est le fingerprint (
empreinte )de la k_pub du serveur avant la première connexion.
– Le fingerprint d'une clé publique est une chaîne de 32 caractères
hexadécimaux unique pour chaque clé .

60
Authentification des utilisateurs

• Les utilisateurs peuvent s’authentifier de deux


manières :
– Soit par le mot de passe : dans ce cas tout simplement
l’utilisateur introduit son mot de passe et il sera transmis au
serveur d’une façon crypté .
– Soit en utilisant leurs clé publique et privée.

61
Authentification des utilisateurs par les
clés publique et privée

• L’utilisateur doit créer une paire (k_pub/k_priv) sur sa machine


personnelle(partie client)
• L’utilisateur doit copier sa clé k_pub sur le serveur vers lequel
il veut se connecter ( s’il y a plusieurs machines serveurs alors
copier sur l’ensemble de ses machines ). Et bien sur il garde
chez lui sa clé privée k_priv.
• L’objectif de cette authentification est de s’assurer que client
possède bien la clé privée qui est associée à la clé publique
62
envoyer au serveur .
Authentification des utilisateurs (2 )
1. Quand l’utilisateur demande une connexion à un serveur , ce dernier
vérifie l’éxistance de la clé publique k_pub de cette utilisateur chez lui .
2. Si la clé existe , le serveur génère un nombre aléatoire et le chiffre en
utilisant la clé publique K_pub de l’utilisateur . Cette données et envoyer
à l’utilisateur .
3. L’utilisateur déchiffre le nombre aléatoire en utilisant sa clé privée et le
renvoie au serveur .
4. Si le nombre déchiffré correspond au nombre chiffré d'origine, alors le
serveur s’assure que c’est le bon utilisateur .
5. Alors la connexion est acceptée et l’utilisateur peut travailler sur le serveur.

63
Génération des clés au niveau du client
• Utiliser la commande : ssh-keygen
• Cette commande permet la génération des clés (k_priv,k_pub) selon
l’algorithme choisit (RSA ou DSA)

ssh-keygen -t rsa
ssh-keygen -t dsa
• La taille par défaut de la clé est de 1024 bits
• La clé publique générée est en texte clair
• La clé privée générée est chiffrée
• Au moment de la génération on va vous demander d’introduire une
passphrase ( un code ) pour chiffrer la clé privée)
• Cette information vous sera demandée à chaque fois que vous utiliser une
authentification basé sur les clé publique et privé
64
Le répertoire ~/.ssh/

• authorized_keys
– Ce fichiers contient la liste de k_pub des utilisateurs autorisés à se connecter à ce
serveur

• id_dsa/id_dsa.pub
– Paire de clés DSA pour l’authentification des utilisateurs

• id_rsa/id_rsa.pub
– Paire de clés RSA pour l’authentification des utilisateurs

• known_hosts
– Ce fichier contient la liste des k_pub de machines vers lesquelles les connexions sont
autorisées

65
Redirection de ports, tunnelling par SSH

• SSH permet de rediriger (forward) n'importe quel flux TCP dans

le "tunnel" de la session SSH. Ex: Telnet, FTP, HTTP,…

• Tout flux entre client et serveur sera "encapsulé" à l'intérieur du

"tunnel" créé par la (session) SSH

66
Redirection des ports du client
• Création d’un tunnel commençant du client (home PC) et se terminant dans le
serveur( WS)
• Commande de création lancée juste dans le client:

ssh -L 1234:127.0.0.1:23 work.example.org


• Le logiciel client doit changer le port et l’adresse de connexion au serveur
vers : « 127.0.0.1:1234 »

telnet 127.0.0.1 1234

Port Port 23
Tunnel
aléatoire SSH

Port 1234
Port 22
Client telnet Serveur telnet
(home.example.org) (work.example.org67
)
Redirection de ports du serveur
• Création d’un tunnel commençant du serveur(work WS) et se terminant
dans le client(home PC)
• Commande de création lancée juste dans le serveur(work WS) :

ssh -R 1234:127.0.0.1:23 home.example.com

• Le logiciel client doit changer le port et l’adresse de connexion au serveur


vers : « 127.0.0.1:1234 »

telnet 127.0.0.1 1234

68