You are on page 1of 108

Cours de scurit

PROTOCOLES DE
SECURITE

Grard Florin/Stphane Natkin


- CNAM / Laboratoire CEDRIC -

1
Protocoles de scurit

Plan du chapitre

Introduction
Confidentialit
Intgrit
Authentification
Protection (contrle daccs)
Conclusion
2
Protocoles de scurit

Confidentialit

Solutions de base
Echange de cls
Diffie-Helman

La mise en oeuvre des chiffrements par


blocs

3
Protocoles de confidentialit

Introduction Solutions de base

Cryptographie symtrique ( cls secrtes)


Cryptographie asymtrique ( cls publiques)
Solution mixte

4
Confidentialit :
solutions de base
Confidentialit : donner un accs en lecture des donnes
uniquement aux entits autorises.
Repose sur l'existence d'un bon chiffre.

Cryptographie cl prive (Ek,Dk) k cl secrte


Pour un message M, chiffrement Ek(M).
Seuls les dtenteurs de k savent chiffrer ou dchiffrer.
Cryptographie cl publique Ek , cl prive Dk
Pour un message M on envoie Ek(M).
Tout le monde connat Ek => tout le monde peut chiffrer.
Seul le dtenteur de k, peut dchiffrer avec Dk.

Problme de distribution des cls.


Problme de mise en uvre des chiffres sur les blocs
successifs. 5
Protocoles de confidentialit

Protocoles dchange de cls

Solutions cls secrtes et cls publiques


Solution de Diffie-
Diffie-Hellman

6
Confidentialit : Combinaison des
chiffres cls publiques et secrtes

Problmes de performances:
La cryptographie cl publique est beaucoup trop lente.
Personne (ou presque) ne chiffre en confidentialit en cls
publiques.

Solutions mixtes :
Echanger confidentiellement des cls de session en dbut de
session
En cryptographie cl secrte.
En cryptographie cl publique.
Par le protocole de Diffie-Hellman.
Communiquer ensuite rapidement confidentiellement au moyen
de la cl de session en utilisant la cryptographie cl secrte.

7
Confidentialit :
Chiffre symtrique
Confidentialit gnrale=> applicable lchange de cl de session
Cas dentits nombreuses sans relations pralables.
Alice veut transmettre Bernard sans connatre la cl de Bernard.
Utilisation d'un gardien de cls qui connat les cls secrtes de Alice et
de Bernard (pour protger la divulgation des cls).
Alice Bernard
C = Ea (Alice, Bernard, M)
Alice, Gardien, (Bernard , C)

Gardien
T = Da(C)
Z = Eb(T)

Gardien, Bernard, Z

Db(Z) = Alice, Bernard, M 8


Confidentialit :
Chiffre asymtrique
Confidentialit gnrale=> applicable lchange de cl de session
Utilisation d'un annuaire : Alice peut obtenir la cl publique de Bernard
en interrogeant lannuaire.
Notion de certificat : une structure de donnes stocke dans lannuaire
contenant une cl publique et dautres informations (contrle dintgrit).

Alice Bernard

Alice, Annuaire, (Bernard,?)

Annuaire, Alice, (Bernard,Eb) Annuaire

Contrler les certificats

Eb (M)
M = Db(Eb(M)) 9
Notion de certificat :
Exemple de certificat X509
Certificate ::= SIGNED {
SEQUENCE{ version [0] Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueIdentifier [1] IMPLICIT UniqueIdentifier OPTIONAL
}
}
Version ::= INTEGER { v1(0), v2(1), v3(2) }
CertificateSerialNumber ::= INTEGER
AlgorithmIdentifier ::= SEQUENCE {
algorithm ALGORITHM.&id({SupportedAlgorithms}),
parameters ALGORITHM.&Type ({SupportedAlgorithms}{@algorithm}) OPTIONAL }
SupportedAlgorithms ALGORITHM ::= { ... }
Validity ::= SEQUENCE { notBefore UTCTime, notAfter UTCTime }
SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier, subjectPublicKey BIT STRING }
Time ::= CHOICE { utcTime UTCTime, generalizedTime GeneralizedTime }
SIGNED { ToBeSigned } ::= SEQUENCE { toBeSigned ToBeSigned,
encrypted ENCRYPTED { HASHED {ToBeSigned }}} 10
Lchange de cls de Diffie
Diffie--Hellman :
Introduction
1) Diffie-Hellman : une premire tentative pour
trouver un chiffre cls publiques.
2) En fait un protocole uniquement utilisable
pour le partage dun secret : pour lchange
dune cl secrte.
3) Entre deux entits qui ne se connaissent
pas.
4) Communicant : au moyen dun rseau non
scuris.
5) Solution utilise en pratique: de faon assez
significative. 11
Confidentialit : Diffie-
Diffie-Hellman
Le protocole de base (1976)

Partie publique : p , g
Choix dun grand nombre entier premier p : on travaille dans le groupe
multiplicatif des entiers infrieurs p (Zp*)
Choix dun nombre g : gnrateur des entiers infrieurs p (g est un
lment primitif dans Zp*)
{g0, g1 , g2, , gP-1 (mod p)} = {0..p-1}

Partie secrte : x , y
Pour Alice : choix dun nombre alatoire x < p .
Pour Bernard : choix dun nombre alatoire y < p .

Rsistance aux coutes : lvation la puissance modulo p.


Complexit de la solution du problme du logarithme discret : dans
les entiers. 12
Confidentialit : Diffie-
Diffie-Hellman
Les changes du protocole de base

Un protocole en deux messages

Alice Bernard
Choix de x < p calcul de gx (mod p)
(secret de Alice)
Alice, Bernard, p, g , gx (mod p)
Choix de y < p calcul de gy (mod p)
(secret de Bernard)

Bernard, Alice , p, g, gy (mod p)

Secret partag = (gy)x (mod p) Secret partag = (gx)y (mod p)


13
Conclusion : Diffie-
Diffie-Hellman
1) Principal problme lattaque du milieu : Eve peut se faire passer
pour Alice auprs de Bernard et pour Bernard auprs de Alice parce quil
ny a aucun moyen dauthentification de prvu.
Seule solution : rajouter une structure de donnes pour valider lintgrit
des messages de Alice et de Bernard (une signature ou un MAC).
Utilisation indispensable dune cl : pour authentifier Alice et Bernard.
Echanger des cls confidentiellement : ncessite donc quand mme la
possession dune cl pour assurer lintgrit.
2) Diffrents autres problmes de mise en uvre :
Choix de p : nombre premier sur de grande taille. On suggre la forme
2q+1 avec q premier ( vrifier que p est bon).
Choix de g : gnre bien tous les entiers ( vrifier aussi, sinon on peut
simplifier considrablement les efforts dun attaquant).
Utiliser un sous groupe plus petit 0<x <q : pour simplifier les calculs
dexponentiation (bien choisir q).
3) Utilisation : IPSEC/IKE Internet Key Exchange Protocol (RFC 2409)
14
Protocoles de confidentialit

Mise en oeuvre des chiffrements


cls secrtes par blocs

Bourrage.
Le mode basique par blocs : ECB Electronic Code Book.
Chanage de blocs chiffrs : CBC Cipher Block Chaining.
Les vecteurs dinitialisation.
Gnration de flots de cls: OFB Output Feedback Block.
Gnration de flots de cls en mode compteur:
CFB Counter Feedback Block.
15
Chiffrement par blocs : Bourrage ou
Complmentation (Padding
(Padding)
Padding)

Chiffrement par blocs de b octets


Problme : si les messages transmettre M ne sont pas
de longueur l(M) fixe et multiple de b (k.b)
Solution : Complter les informations k.b par du
bourrage
Selon une mthode rversible : permettant denlever le
bourrage.
Solution rversible: rallonge obligatoirement
chaque message
Structuration par octets: au moins un octet en plus.
16
Chiffrement par blocs : Bourrage
Quelques solutions
Solutions pour des messages structurs par octets.
Solution 1 :
Rajouter un octet de valeur connue fixe : exemple 255.
Rajouter k.b(l(M)+1) octets de bourrage de valeur fixe : exemple 0

Solution 2 :
Solution pour des longueurs de bourrage en octets <255.
Dterminer le nombre doctets n de bourrage (avec minimum 1).
Rajouter n octets de bourrage de valeur gale n.

Solution 3 :
l(M) nombre doctets significatifs du message cod sur m octets :
exemple 8 octets (64 bits).
Rajouter k.b - l(M) - m octets de bourrage puis la longueur sur m
octets des donnes significatives. 17
Chiffrement par blocs : Le mode ECB
(Electronic
(Electronic Code Book)
Application basique du chiffrement par blocs : chiffrer sparment
chaque bloc.
M = B1, B2 , . ,Bi , .. BNblocs Ci = E(K, Bi) i=1, ., Nblocs

Bi Ci = E (K, Bi) Ci

K
Problme gnral dun chiffre : laisser filtrer le moins possible
dinformations.
Problme de cette solution: des blocs identiques du message en clair
sont chiffrs de la mme faon
On peut infrer des informations sur la nature du message en clair :
Enttes fixes, postface fixe (bourrage de structure connue) Chanes de
caractres rptes dans un texte (balises, selon le sujet).
On peut changer lordre des blocs.
Mode basique de chiffrement par blocs: non recommand en scurit.
18
Chiffrement par blocs : Le chanage de
blocs CBC Cipher
Cipher Block Chaining
Chaining

Ide principale : diversifier le rsultat de chiffrement de


chaque bloc en le faisant dpendre du bloc prcdent.
M = B1, B2 , . ,Bi , .. BNblocs
Ci = E(K, Bi Ci-1) i=1, ., Nblocs

Ci-1 Ci
Ci = E (K, Bi Ci-1)
Bi

C0 = VI K
Ncessit de choisir une valeur initiale VI (un premier bloc
chiffr, Vecteur dInitialisation) qui amorce le processus.
Exemples : DES-CBC , 3DES-CBC, AES-128-CBC (en IPSEC)
19
Chiffrement par blocs en mode CBC :
Choix du vecteur dinitialisation
1) Vecteur dinitialisation constant
Problme sur le premier bloc dont la valeur en clair est
souvent fixe et dont on va donc connatre le chiffre.
2) Vecteur dinitialisation numro de squence.
VI un compteur : le numro de squence du message.
Si lon part toujours de 0 : encore des faiblesses.
Sur n bits : on repasse par les mmes valeurs.
3) Vecteur dinitialisation alatoire.
VI donn par un bon gnrateur de nombres alatoires.
Il faut communiquer VI en clair avec le premier bloc qui est
donc diffrent : VI=C0, C1 = E (K, B1 C0)
Une solution qui gne considrablement un attaquant. 20
Exemple de vecteur dinitialisation bas
sur un nonce (B. Schneier)
VI est un nonce Number Used Once : un nombre alatoire
(imprvisible) qui nest jamais utilis deux fois.
Etape 1 : Fabrication dune estampille
Identifiant unique de message => Estampilles de Lamport
Numroter chaque message chiffrer par blocs (par exemple sur 32
bits comme en TCP)
Associer au numro de message lidentifiant unique de
lmetteur pour former lestampille.
Etape 2 : Nonce obtenu par chiffrement de lestampille
VI (vecteur dinitialisation) = Nonce = E(K, Estampille)
Sil y a des problme de collisions avec E(K, ) => utiliser un hachage
Rgle de scurit: faire circuler lestampille en clair, ne pas
faire circuler le nonce en clair (le vecteur dinitialisation).
Solution considre comme scuritaire. 21
Chiffrement par bloc: Chiffrement flot
de cls OFB Output Feedback Block
Ide gnrale: utiliser un chiffre pour gnrer un flot de
cls successives formant une squence pseudo alatoire
quon utilise comme masque (ex RC4).
Bi Ci = Bi Ki Ci

K0=VI , , Ki=E(K , Ki-1), . Kn= E(K , Kn-1)


On doit choisir un VI selon les mmes possibilits quen
mode CBC : avec une prfrence pour un VI dfini partir
dun nonce (le plus alatoire possible et non rutilis).
Variante de OFB le mode CFB Cipher Feedback Block) :
cest la prcdente donne chiffre qui sert gnrer la cl
suivante: Ki=E(K , Ci-1).
22
Chiffrement flot en mode compteur
CFB Counter
Counter Feedback Block
Une autre variante du mode OFB : chaque cl de bloc est
construite partir dun nonce et du numro du bloc :

Bi Ci = Bi Ki Ci

Ki=E(K , Nonce || i )
Nonce : donne une valeur unique pour tous les blocs dun
message.
Indice i du bloc : donne une valeur unique pour chaque blocs
(|| symbole pour la concatnation).
Mthode juge trs scuritaire (recommande): selon les
qualits du chiffre E les cls Ki sont pseudo alatoires et
imprvisibles cause de E, de K et du nonce.
23
Protocoles de scurit

Protocoles dintgrit

Introduction: dfinition de base


Signatures numriques
Codes dauthentification de messages (MAC)

24
Problme dintgrit :
Dfinition
1) Intgrit : contrler laccs en criture
Autoriser seulement certaines entits crire.
2) Donne dont on peut vrifier lintgrit:
donne possdant un code de dtection de
modification.
Systme dintgrit : deux facettes.
Fonction de construction du code de dtection.
Fonction de vrification du code.
3) Terminologie frquente : donne signe.
4) Fonctionnement conjoint : intgrit et
authentification
Un document est intgre parce que son code de dtection
de modification a t calcul par une entit de confiance.
25
Problme dintgrit : Diffrences de
nature Confidentialit/Intgrit
Confidentialit :
Base sur la gnration de donnes chiffres par les
usagers autoriss dtenteurs dun secret:
Faire disparatre les redondances du texte en clair: ide de diffusion
Pas de corrlations possibles entre le clair et le chiffr: ide de
confusion
Mais on peut toujours fabriquer une suite binaire qui a la longueur
dun message chiffr et qui peut tre pris pour un message chiffr.
Intgrit :
Ajouter des redondances un message en clair pour
vrifier que le clair na pas t modifi.
Faire apparatre des redondances pour vrifier lintgrit
Etablir des corrlations entre le code de dtection de modification et le
clair.
On peut toujours accder au contenu du message en clair. 26
Protocoles dintgrit

Les signatures numriques

Introduction
La signature RSA
La signature DSA

27
Notion de signature numrique :
Dfinition et proprits principales
Signature numrique : une structure de donnes associe un
document pour le garantir en intgrit mais aussi en
authentification et en non rpudiation.

P1) Une signature concerne un seul document :


Une signature n'est pas rutilisable
P2) Intgrit 1 : Un document sign ne peut tre ensuite modifi
Mme trs partiellement.
P3) Intgrit 2 : Une signature est vrifiable par nimporte qui
Sans quon ait demander dautorisation.
P4) Authentification : Une signature authentifie le signataire:
Seul le signataire peut avoir sign.
Une signature ne peut-tre imite
P5) Non rpudiation: Une signature ne peut-tre renie.
Cest une preuve que le signataire a dlibrment sign le document.
P6) Performances : Devrait tre facile calculer et vrifier
En fait assez souvent de mauvaises performances.
28
Signatures numriques :
Systme de signature numrique
1) Signataires (en nombre limit) => existence dun systme
de chiffrement avec cls, associ la signature numrique.
Conseil : ne pas utiliser les mmes cls pour le chiffrement
en confidentialit et pour la vrification dauthentification
(affaiblissement dun mcanisme par lautre).
2) Algorithme de signature : Fonction de construction de la
structure de donnes qui garantit lintgrit dun document et
authentifie lmetteur.
( M , K ) S = sig (K , M)
3) Algorithme de vrification de signature : calcul de
prdicat de vrification de lintgrit de la donne et de
lauthentification de lmetteur.
ver ( M , S) vrai ou faux
ver ( M , S ) : S = sig (K , M) 29
Signatures numriques : Utilisation
des chiffres cls publiques
1) Signature numrique : utilisation dun chiffre
asymtrique ( cl publique k chiffrement Ek et cl
prive k dchiffrement Dk).
2) Ide de base : signer avec la cl prive, vrifier
avec la cl publique.
sig(M) := Dk( M, redondance(M), )
ver(sig(M)) : Ek( sig(M)) = M , redondance(M), .
3) Proprits : si le chiffre cl publique et la
fonction de redondance sont scuritaires on peut
satisfaire les proprits dune signature numrique.
En particulier: seul lmetteur peut signer (Dk).
Tout le monde peut vrifier une signature (Ek). 30
Signatures numriques : Signatures
avec recouvrement de message
1) Solution de la signature avec recouvrement: chiffrer
tout le message => Pour mmoire car trs rare.
2) Ajouter des informations formant redondance: pour
s'apercevoir des modifications ventuelles.
sig(M) : transmettre Ek(M) et S = f(Ek(M))
ver(sig(M)): S=f(Ek(M))
Rcuprer M partir de Ek(M) : Dk(Ek(M))
S

E
M Ek(M)

3) Problme: La signature avec recouvrement est coteuse


car elle suppose le chiffrement complet de M. 31
Signatures numriques : Signatures
avec appendice (appendix
(appendix)
appendix)

Solution de la signature avec appendice: chiffrer un


hachage du message.
Solution prconise dans tous les protocoles cryptographiques
Utilisation dun chiffre cls publiques et dune
fonction de hachage H: rsum du message pour
s'apercevoir des modifications ventuelles.
sig(M) : on transmet M et appendice = Dk(H(M))
ver(sig(M)): H(M) = Ek(appendice)= Ek(Dk(H(M)))

M H H(M) Dk Dk(H(M))

32
Protocoles de signatures numriques

La signature RSA
(Rivest , Shamir , Adleman)
Adleman)

33
Signatures numriques RSA :
Introduction
Utilisation du chiffre RSA: en signature.
Utilisation en mode appendice: ne pas chiffrer en
RSA tout le message M pour le signer.
Trop lent
Najouterait pas de redondances.
Utilisation dun hachage M H(M).
Le plus souvent MD5 ou SHA-1.
Prconisation de scurit : actuellement SHA-256 (le moins lent
et le moins encombrant des hachages scuritaires).
Message sign de Alice Bernard
Alice cl publique EA (eA, nA) ; cl prive DA (dA, nA)
sig (M) S := DA (H(M)) := (H(M)) dA (mod nA)
ver (S) H(M) = EA (S) = (S) eA (mod nA)
Signature: de trs loin la plus utilise.
34
Signatures numriques :
Le protocole de signature RSA
Alice Bernard
M MDC := H(M)
MDC := MDC||Bourrage
Sig := DA (MDC)
Alice, Bernard, M, Sig
Bernard, Annuaire , (Alice , EA?)

Annuaire
Annuaire, Bernard, Alice , EA)
Vrifier EA
M MDC := H(M)
MDC := MDC || Bourrage
35
MDC := EA (Sig)
Signature numrique RSA :
Problme de bourrage
H(M) plus petit que la taille des blocs chiffrs
en RSA : fonctions de hachage de 128 512 bits,
RSA blocs de 320 2048 bits selon valeur de n=p.q
Solution 1 : Complmentation par concatnation
dune information fixe => H(M) || B.
Solution 2 : Complmentation par concatnation
dun nombre alatoire => H(M) || GNPA(x).
Plus scuritaire car la partie alatoire est inconnue
Solution 3 : Complmentation par extension de
H(M) par une fonction dextension pseudo
alatoire H(M) F(H(M)) F rsultat entre 0 et
n=pq alatoire (proposition B Schneier). 36
Protocoles de signatures numriques

La signature DSA
Digital Signature Algorithm
Algorithm

37
Signatures numriques DSA :
Introduction
Origine: NIST (National Institute Of Standards and
Technology) et NSA (National Security Agency) en
1991.
Normalis dans le cadre du standard DSS :
Digital Signature Standard (1994).
DSS : une signature en mode appendice de 320
bits (2x160)
Utilisation de SHA-1 comme fonction de hachage
(160 bits).
Utilisation de DSA comme signature.
Solution trs voisine de la signature
numrique dfinie par El Gamal : modifications
lgres.
Utilise le chiffre cl publique dfini par El Gamal. 38
Signatures numriques :
Signature El Gamal

Chiffre cls publiques El Gamal : bas sur la


difficult du logarithme discret.
Choix dun jeu de cls :
Cl publique : p , g , y
p grand nombre premier
g infrieur p
y = gx (mod p)
Cl secrte : x , p
Solution originale de signature:
On ne chiffre pas directement le hachage du message.
On fait un calcul spcifique de signature. 39
Signature El Gamal :
Gnration de la signature
H(M) : le hachage dun message (le rsum pour la
signature).
Choisir un nombre alatoire k : k et p-1 sont
premiers entreux (k est infrieur ou gal p-2 et ne
divise pas p-1).
Calculer : a = gk (mod p)
Trouver b tel que : identit de Bezout
x a + k b = H(M) (mod p-1)
Signature de M : le couple a , b.
Ne peut se calculer : que si lon connat x la cl
prive et k valeur alatoire qui doit rester secrte.
Si lon signe deux fois la mme chose : la
signature change cause de k (qui change). 40
Signature El Gamal :
Vrification de la signature
Connaissant : H(M) , (a,b) (la signature) et p,g,y
(la cl publique).
Calculer : gH(M) (mod p) et yaab(mod p) .
Si les deux valeurs sont gales M na pas t modifi.
Preuve: Daprs la construction de la signature (a et b):
H(M) = x a + k b (mod p-1)
Soit encore : H(M) + (p-1) r = x a + k b
On a donc : gH(M) g(p-1)r (mod p) = gxa gkb (mod p)
Avec : g(p-1) (mod p) = 1 (Fermat)
Et par choix: y = gx (mod p) , a = gk (mod p)
Donc : gH(M) (mod p) = ya ab (mod p) 41
Signatures numriques :
DSA Conclusion

Modifications DSA par rapport El Gamal


Rduction de la taille des signatures : en travaillant sur un sous
groupe 0..q sur 160 bits (nombres infrieurs p grand nombre
premier 1024 bits ncessaire pour la scurit du chiffre El Gamal).
Petite modification des formules de calcul.
Solution qui a t trs utilise : surtout aux USA.
Inconvnient : Solution trs lente.
Avantages :
Scurit :
Solution cl publique reposant sur la difficult du logarithme discret,
Un nombre alatoire k change les signatures pour deux messages
identiques.
Gnre une signature de longueur raisonnable : 320 bits (en
relation avec SHA-1 160 bits => deux fois cette taille)
Solution retenue aussi car nutilisant pas le RSA et solution
uniquement ddie la signature : la solution ne devait pas
pouvoir tre utilise en chiffrement 42
Protocoles dintgrit

Les codes dauthentification de


message (CAM)
MAC Message Authentication
Code
Introduction
Mac de base
Mac double
CBC-MAC
HMAC 43
Codes dauthentification de
messages (MAC) : Introduction (1)
1) Objectif : gnrer lmission une structure de
donne MAC permettant de vrifier lintgrit dun
message avec une solution utilisant un secret
partag (une cl secrte K).
2) En mission : calculer MAC(K,M) ; envoyer M ,
MAC(K,M)
Mac (K,M) incorpore K et M dans une structure de
donne de taille fixe gnralement en utilisant H une
fonction de hachage (MD5, SHA)
Exemple type : MAC(K,M) = H(K||M) ) ou || est la
concatnation.
Do une autre terminologie : en anglais KHF Keyed
Hash Function, en franais fonction de hachage avec cl.
3) En rception: recevoir M,a ; vrifier a =MAC(K,M)
44
Codes dauthentification de
messages (MAC) : Introduction (2)
4) Etude de la scurit
MAC sens unique : pour ne pas pouvoir
remonter K.
MAC sans collisions : pour ne pas pouvoir violer
lintgrit.
5) Etude des performances
Bons temps de calcul : gagner du temps sur la
signature numrique.
Volume peu important : ne pas encombrer les
messages (parfois on ne prend quun sous
ensemble des bits calculs par une fonction MAC).
45
Codes dauthentification de
messages (MAC) : Proprits
Proprits de la signature qui sont conserves

P1) Un MAC concerne un document : (selon collisions).


P2) Intgrit : un document avec MAC peut tre trs
difficilement modifi (selon collisions).
P6) Performances : un MAC est facile calculer et vrifier.

Proprits de la signature qui sont abandonnes

P3) Intgrit : un MAC nest pas vrifiable par nimporte qui


Seuls les dtenteurs de la cl K peuvent vrifier le MAC.
P4) , P5) Authentification , non rpudiation
Si Alice et Bernard qui communiquent en partageant K ne sont pas daccord
sur le message M on ne peut les dpartager 46
Codes dauthentification de
messages : MAC de base (simple)

Construire un MAC en utilisant directement une


fonction de hachage H: nombreuses variantes de solutions.
Selon la fonction H utilise : MD5, SHA-1, SHA-256 (meilleure est la
fonction H meilleur est le MAC).
Selon lutilisation de H dans le cadre du MAC (simple, doubles )
Solution 1: H appliqu la concatnation || de K et M
MAC (K, M) = H(K||M)
Attaque dextension de longueur : si H est itratif (toujours) on
peut rajouter des informations en fin de M et calculer un MAC correct.
Exemples dans cette classe : SHA-1 (K||M) , SHA-256(K||M);
Solution 2: H en mode simple sur la concatnation de M et K
MAC (K, M) = H(M||K)
La cl dans le dernier bloc est plus facilement attaquable (nombre
dessais)

47
Codes dauthentification de
messages : MAC double

Solution : Utiliser un hachage H en mode double (d) sur


la concatnation de K et de M.

MAC (K, M) = Hd ( K || M ) = H( H ( K || M ) )

Pas dextension de longueur possible.

Solution plus lente quun Mac simple mais solution


considre comme scuritaire

Exemple dans cette classe :


SHAd-256 (K||M) = SHA-256 ( SHA-256 ( K || M ) )
48
Codes dauthentification de
messages : CBC-
CBC-MAC

1) CBC-MAC Cipher Block Chaining MAC:


Construire un MAC partir dun chiffrement par blocs.
Chiffre en mode chanage : voisin dune fonction de hachage itre.
Avantage : on rutilise le programme dun chiffre existant.
2) Fonctionnement :
Choix dun chiffre par blocs E(K, B) et dune cl secrte K
Dcoupage par blocs M = B1, B2 , . ,Bi , .. BNblocs
Choix dun vecteur dinitialisation H0 = VI
Itrations : Hi = E(K, Bi Hi-1) i=1, ., Nblocs
CBC-MAC(K, M) = HNblocs Le dernier rsultat des itrations.
CBC-MAC : solution de mise en uvre dlicate
Selon les proprits de collisions du rsultat final.
Variantes utilises : CBC-MAC-DES, CBC-MAC-AES.
49
Codes dauthentification de
messages : HMAC Dfinition

HMAC : Keyed-Hashing Message Authentication Code


IETF : RFC 2104 (1997)
HMAC (K, M) = H [(K Ipad) || H((K Opad) || M))]
K est une cl secrte de longueur n octets.
B est la longueur du hachage gnr par H (16, 20, 32 oct)
Ipad (0x36 rpt B fois) et Opad (0x5C rpt B fois) sont des
constantes qui servent complter la cl K si elle na pas la
taille du bloc utilis par le hachage (bourrage).
|| dfinit la concatnation.
Exemples de HMAC : HMAC-MD5 ; HMAC-SHA-1 ;
HMAC-SHA-256
50
Codes dauthentification de
messages : HMAC Conclusion
Avantages des HMAC :
HMAC est rapide
K XOR opad et K XOR ipad peuvent tre calculs au pralable et utiliss
comme initialisation pour des algorithmes de hachage itratifs MD5.
HMAC est a peu prs quivalent un calcul simple de hachage.
HMAC rsiste aux extensions de longueur de M.
K cl secrte nest pas prsente la fin.
Les techniques dattaques actuelles de collisions sur les
hachages ne fonctionnent pas avec HMAC.
Avec HMAC il nest pas ncessaire dutiliser un hachage Hd
HMAC : solution recommande
Dj ancienne et dj attaque avec une bonne rsistance.
Solution trs utilise : dploye dans de nombreux
protocoles de scurit IPSEC, SSL, DNSSEC.
51
Codes dauthentification de
messages (MAC) : Conclusion

1) MAC : une utilisation trs rpandue dans de nombreux


protocoles de scurit en mode message.
2) Trs nombreuses autres solutions non cites ici :
peu utilises industriellement.
3) En gnral : Bonnes performances en temps de calcul.
4) En gnral : Niveau de scurit satisfaisant.
5) Solutions recommandes actuellement:
MAC doubles
HMAC (peut-tre la meilleure solution actuelle disponible).
6) Pour un bon MAC : utiliser une bonne fonction de
hachage.
Exemple de MAC recommand => HMAC-SHA-256
52
Protocoles dintgrit

Lintgrit dun flot de messages


: le rejeu

Introduction
Solutions

53
Intgrit dun flot de messages :
Introduction
1) Problme gnral : respecter les relations de causalit.
2) Problme du rejeu : un intrus coute un message correct
et le relance ultrieurement pour en tirer un avantage ou
dsorganiser le protocole.
Message d'une connexion ancienne ou de la mme connexion
=> Destruction silencieuse du message rejou.
3) Retransmission : un metteur retransmet ultrieurement
un message considr par lui comme non dlivr (rejeu lgal).
=> Destruction silencieuse normale.
4) Principe de Horton:
Contrler en intgrit la charge utile dun message M : les bits
de donnes.
Mais aussi les autres informations utiles linterprtation
correcte de cette charge utile : ici typiquement les donnes qui
identifient un message dans un flot (donnes protocolaires).
Identifiant metteur, destinataire, rfrence de connexion, numro de
squence dans une connexion . 54
Intgrit dun flot :
Solutions au problme du rejeu (1)
Base des solutions : utiliser un identifiant unique
pour chaque message.
Nonce : un identifiant utilis seulement une fois et
contrl (number used once).
Solution 1) Nonce bas sur un numro de
squence
Identifier les messages par des numros de squence.
Identifier de mme les connexions successives.
Utiliser de grands espaces de numros (64 bits au moins)
Gestion des numros trs stricte : dmarrage.
Vrification en intgrit des numros: signature, MAC.
Rejeu excessivement difficile : possibilit de succs
uniquement li aux collisions.
55
Intgrit dun flot :
Solutions au problme du rejeu (2)
Solution 2) Nonce bas sur le temps physique
Utiliser un estampillage par l'horloge de l'metteur.
Cette datation ncessite un protocole de synchronisation
d'horloge (metteur/rcepteur) lui-mme de scurit.
Vrification en intgrit de la date: permet au rcepteur
de vrifier la cohrence de la date et vite ainsi le rejeu.
Solution 3) Nonce bas sur un nombre alatoire
Nombre alatoire imprvisible pour chaque message :
trs faible probabilit de tirer deux fois le mme nombre.
Doit tre chang dans les deux sens et vrifi (intgrit)
Adapt un change client serveur : sporadique.
Peu adapt un flot : cot de vrification du nombre. 56
Protocoles de scurit

Protection
(Contrle daccs)

Introduction
Gestion des droits (politique de
scurit).
Politique discrtionnaire dans les
systmes : anneaux et domaines
57
Protection : Introduction
Le problme du contrle daccs (1)
1) Dfinition: le domaine des systmes
dexploitation et des rseaux qui traite du contrle de
laccs des composants matriels ou logiciels.
2) Terminologie : Protection, Autorisation, Contrle
daccs, Authorization, Access Control (AAA).
3) Notion dinterface daccs => protection des
interfaces.
4) Objectifs : limiter la propagation des erreurs non
intentionnelles, contrler laccs pour empcher les
intrusions.
5) Domaine dvelopp avec les premiers
systmes dexploitation: dbut des annes 1960. 58
Protection : Introduction
Le problme du contrle daccs(2)

6) Moyen : un ensemble de mcanismes permettant


de vrifier quun usager disposant dun ensemble de
droits agit en respectant ces droits.
7) Politique de scurit : dfinition des droits dun
usager et de leurs volutions possibles.
8) Au dpart : vrification des droits de lecture ou
dcriture sur une donne (mmoire ou fichier).
9) Extension tous les types dactions : droits
concernant nimporte quelle action excutable
(instruction, procdure).
59
Protection/Contrle daccs :
Sujets , objets et groupes
1) Sujet : Entit informatique qui ralise des actions
devant tre contrles.
Exemples : utilisateurs, processus, objets, composants, .
2) Rle : Groupe de sujets recevant un traitement
identique du point de vue dune politique de scurit.
Exemples : acheteur, vendeur, banque, .
3) Objet : Entits informatique qui reoit et excute
des requtes devant tre contrles.
Exemples : pages ou segments de mmoire, fichiers,
processus, objets, composants.
4) Groupes dobjets : Traits de manire identique
du point de vue dune politique de scurit
Exemple : ensemble de fichiers dune application.
60
Protection/Contrle daccs :
Notion de capacit (
(capability
capability)
capability)
1) Abstraitement : un droit dexcution dun sujet
sur un objet.
2) Plus prcisment : laffirmation dun prdicat
dautorisation dexcution dune action dans le futur.
3) Concrtement : une structure de donnes qui
matrialise ce droit.
4) Informations dans une capacit
Au minimum un couple : dsignation de lobjet ,
dsignation du droit (si on range la capacit dans le descriptif
dun sujet).
Nombreuses autres informations possibles : date
dinvalidation, signature ...
61
Protection/Contrle daccs :
Exemples de capacit (capability
(capability)
capability)

1) Droits dans les systmes de stockage


(mmoire, fichier, base de donnes): droit de
lecture, dcriture, cration, destruction.
2) Droits rseaux : droit dmettre ou de
recevoir des messages sur une adresse .
3) Droits sur le noyau du systme: droit
dutiliser un priphrique (imprimer), de crer ou
dtruire un processus
4) Droits dans la politique de scurit : droit
de transfrer un droit un autre sujet, droit de se
donner un droit quel quil soit.
62
Protection/Contrle daccs :
Notion dassertions
1) Assertion : gnralisation de la notion de capacit
laffirmation de nimporte quelle formule de logique
(gnralement de logique temporelle ou de
connaissance)
2) Notion daffirmateur dune assertion : le sujet
qui est la source dune assertion.
3) Informations dans une assertion
Nom de lassertion,
Spcification de lassertion : ventuellement,
Parties concernes par lassertion : affirmateur de
lassertion, sujets/objets concerns,
Attributs divers : date dinvalidation, signature
4) Exemple: SAML Security Assertion Markup
Language. 63
Protection/Contrle daccs :
Exemple dassertions
1) Signature : Affirmation, lopration crire de cette
donne t ralise par moi (connaissance dune
opration crire dans le pass) .
2) Assertion dauthentification : Affirmation, un
serveur dauthentification a authentifi tel sujet
(connaissance dune authentification pass).
3) Capacit (droit pour une action) : Affirmation :
laction A est autorise pour le sujet S (formule de
logique temporelle du futur).
4) Assertion de capacit pour une suite
dactions : les actions A et B sont lies et autorises
uniquement dans lordre A avant B (logique temporelle
du futur).
64
Protection/Contrle daccs :
Matrice de contrle daccs
Politique de scurit (au sens traditionnel) : lensemble des
rgles qui gouvernent la cration, lvolution et la destruction
des droits (des capacits) et leur utilisation.
Matrice de contrle (Lampson 1971) : matrice qui dfinit
chaque instant les droits de chaque sujet sur chaque objet
(gnralement sujets en ligne et objets en colonnes)
Seg M1 Seg M2 Fich F1 Fich F2

P1 R,W,E R,W R
P2 R,W,E R R,W R
S1 R,W,E R,W,E Crer Propritaire
Dtruire
S2 R,W,E
65
Protection/Contrle daccs :
volution de la matrice des droits

La matrice des droits volue en fonction des


vnements suivants :
Cration et destruction des sujets et des objets.
Cration et destruction des droits pour soi mme.
Propagation et rvocation des droits des autres usagers.
Exemple :
Dans le systme VMS les droits d'un processus fils sont
hrits du pre et partags entre les fils.
Pour le processus racine ce sont les droits de l'utilisateur
crateur.
66
Protection/Contrle daccs :
Spcification dune politique
Une politique de scurit dfinit essentiellement les rgles
dvolution de la matrice des droits.

Dfinition dune politique de scurit : analogue dune spcification


comportementale dun composant
Des rgles qui grent les volutions de la matrice des droits.
Des proprits de scurit qui doivent tre vrifies chaque instant
(invariants de scurit) par la matrice de contrle des droits.

Possibilit de mise en oeuvre de toutes les techniques classiques


de validation logicielle pour valider une politique de scurit.
Preuve formelle : analogue la preuve de programme.
Vrification oprationnelle (test)
Les volutions prvues prservent les invariants (l'implantation de la
politique n'autorise que les transitions valides).
Le contrle d'accs est toujours excut. 67
Protection/Contrle daccs :
Deux principes fondamentaux
Le confinement
Les objets sont maintenus dans des domaines de protection
tanches pour empcher qu'une entit n'interfre avec une
autre la suite d'une action involontaire ou volontaire.
Exemple : accs l'espace mmoire d'un autre usager.

Le moindre privilge
Pour qu'un systme fonctionne en scurit il faut donner ses
utilisateurs exactement les droits dont il ont besoin pour
s'excuter : ni plus ni moins.
Si l'on donne plus de droits on risque de voir ces droits
utiliss anormalement : involontairement ou volontairement.
Exemple : ne pas travailler en standard sur un systme en
mode administrateur.
68
Protection/Contrle daccs : Politiques
discrtionnaires et obligatoires
Politiques discrtionnaires
Une politique est discrtionnaire si la propagation des
droits sur un objet est entirement contrle par les sujets.
Exemple : Pour chaque objet un droit propritaire
("owner") permet un sujet de propager des droits sur cet
objet => Droits d'accs aux fichiers UNIX.
Politiques obligatoires
La politique est obligatoire si le processus de propagation
est dfini par un ensemble de rgles quun sujet ne peut
modifier.
Exemple : Politique militaire de scurit.
69
Protection/Contrle daccs :
Politiques nominatives et de rles
Politique nominative
Les droits sont attribus individuellement
chaque sujet.
Exemple : Droits d'accs aux utilisateurs pour les
fichiers UNIX.
Politique de rle
Les droits sont attribus un sujet
automatiquement par son appartenance un
groupe.
Exemple : Droits daccs des groupes dutilisateur
dans le systme de fichier UNIX. 70
Protection/Contrle daccs :
Notion de guichet

Un serveur
(un objet)

Un client Un serveur
Un guichet dauthentification et de
(un sujet)
(un point daccs) contrle daccs (AAA)

Authentifieur
Controleur daccs

Un systme de
contrle daccs
71
Protection/Contrle daccs :
Dtails concernant les guichets
Guichet : un nom gnrique pour un point de passage oblig
qui permet la vrification des droits.
Tout accs un objet se fait via un guichet
Un guichet rassemble pour une interface les aspects de scurit relatifs
la protection (au contrle daccs).
Une entit se prsente au guichet :
Authentification de l'entit.
Authentification du guichet (risque de dguisement)
Prsentation d'une capacit pour raliser une opration.
Exemples de guichet
Point dentre dans lexcutif de requtes dun systme
dexploitation.
Serveur dauthentification et de contrle daccs dans un systme
dauthentification unique (SSO Single Sign On)
Mur pare-feux (anti feux firewall)
Aspect de scurit (programmation par aspects).
72
Protection/Contrle daccs :
Construction des guichets
Principe de mfiance mutuelle: le client se mfie du serveur et le serveur
se mfie du client.
A) Garantir les transferts de donnes entre le client et le guichet :
protgs selon les besoins en intgrit ou en confidentialit.
B) Protger les donnes confidentielles : toutes donnes qui doivent
tre tanches en lecture (par exemple donnes la base de
lauthentification).
C) Protger en criture : certaines donnes comme des capacits ou
aussi des codes excutables partags.
D) Authentifier rciproquement client et guichet.
E) Garantir que l'excution de l'opration ne peut tre faite que par
le guichetier et selon sa spcification => notion de guichet
incontournable.
F) Pouvoir enregistrer de faon non falsifiable toutes les
oprations : journalisation => non rpudiation.
G) Pouvoir noter toutes les tentatives de fraude: auditabilit.
73
Protection/Contrle daccs :
Administration des guichets

1) Gestion des entits sujets, objets et des


donnes d'authentification de ces entits :
dsignation, cration, destruction.
2) Gestion des guichets et des donnes
d'authentification de ces guichets : dsignation,
cration, destruction.
3) Gestion des capacits (droits) selon la
politique de scurit : cration, destruction,
propagation.
74
Protection/Contrle daccs :
Notion de moniteur de rfrence
1) Les composants systme ddis la scurit
reposent sur un mcanisme de scurit central:
sur lequel repose toute la scurit (de prfrence bas
sur du matriel).
2) Il doit tre: Inviolable,
Incontournable,
Correct
Par rapport un ensemble de proprits permettant
d'implanter une politique de scurit.
3) Le moniteur de rfrence est le "mta
guichet" : permet de construire des guichets et de
grer les droits d'accs. 75
Protection/Contrle daccs :
Construction du moniteur de rfrence
1) Un moniteur de rfrence est construit selon une
hirarchie de mcanismes.
2) Dans un systme centralis : on utilise des
mcanismes matriels au niveau le plus bas => pour
contourner ces mcanismes il faudrait pouvoir modifier le
matriel.
Gestion de la mmoire.
Mode d'excution des processus et contrle d'accs aux instructions
privilgies.
Programmes en mmoire morte
Systme matriel d'authentification (exemple: lecteur de carte puces).
3) Dans un systme rparti le moniteur de scurit est :
Compos des moniteurs de scurit locaux
Des protocoles de scurit construits partir des fonctions
cryptographiques. 76
Protection

Politiques discrtionnaires dans


les systmes dexploitation

Machines anneaux
Machines domaines (machines capacits )

77
Protection
Machines anneaux : Gnralits
1) Mcanisme de protection matriel/logiciel : appliqu par un
processeur et son systme dexploitation.
2) Notion danneau :
Un niveau de protection matrialis par un entier : Les niveaux sont hirarchiss:
notion d'anneaux concentriques.
De 2 niveaux (mode matre esclave) assez souvent 4 (Pentium) ou 8 niveaux
(rarement plus)
Exemple: Mode matre/esclave Mode esclave
Mode Matre

3) Sujets : un programme (un processus) s'excute un instant donn


dans un anneau donn ( un niveau de protection donn).
4) Objets : un anneau (un niveau de protection) est associ chaque
ressource (instruction processeur , segment mmoire )

78
Protection Machines anneaux :
Rgles de fonctionnement
1) Objectif vis : certaines oprations (accs ressources) ne
sont excutables que dans un anneau qui le permet.
2) Moyen : contrle permanent des droits.
Toute opration (instruction, rfrence mmoire) est soumise un
contrle du droit d'accs matriel.
Le registre danneau du sujet demandeur (processus) est compar au
registre danneau de la ressource (processeur, segment mmoire).
Pour qu'une opration soit excute le niveau de lappelant doit tre
suprieur ou gal celui de l'objet rfrenc sinon il y a droutement.
3) Cas d'un droutement ('trap')
Excution d'une instruction ou d'un accs avec augmentation des
droits (dlibr ou accidentel).
Droutement = Demande de changement d'anneau
Le droutement provoque le passage un guichet => l'excution d'un
code de contrle du droit de passage dans l'anneau appel.
79
Protection Machines anneaux :
Exemple
Exemple : Systme organis en quatre anneaux :
0 : superviseur dentres sorties (pilotes de priphs).
1 : excutif de requtes.
2 : systme de fichiers.
3 : processus usager.
Opration tudie : Lecture darticle sur un fichier
1) Usager : anneau 3 -> Gestion des fichiers : anneau 2
Contrle du droit daccs sur le fichier,
Fonctionnement systme de fichier: calcul dadresse bloc.
2) Gestion des fichiers : anneau 2 -> Appel l'excutif anneau 1
Contrle du droit daccs au volume logique (file system),
Requte au pilote pour accder au volume physique.
3) Excutif : anneau 1 -> Superviseur dentres sorties anneau 0
Contrle du droit daccs lunit de disque.
80
Protection Machines domaines :
Introduction
1) Notion de domaine de protection : une gnralisation
des anneaux des ensembles de droits organiss de faon
quelconque (sans hirarchie).
Dfini pour un sujet par un ensemble de droits sur des objets.
A tout instant un objet accessible doit appartenir au domaine de
protection courant (au domaine du sujet en excution).
2) Tout appel d'une opration est ralis en fournissant
une capacit:
Rfrence de l'appel (dsignation)
Droit possd par l'appelant sur l'appel (protection).
3) Rle du systme dexploitation (moniteur de
rfrence de scurit matriel/logiciel)
La capacit est contrle avant d'excuter chaque opration (instruction
processeur, accs mmoire, mthode dun objet .).
La modification des capacits (la manipulation, la propagation des droits)
ne peut tre ralise que par appel du moniteur (fonctionnant en mode
protg). 81
Protection Machines domaines :
Approche des listes de capacits
1) Machines capacits (Capability based) : une
approche de capacit stocke la matrice (sujet, objet) par
lignes.
Une ligne de la matrice : une liste de capacits ou c-liste.
2) Stockage des capacits associes aux sujets : Pour
chaque sujet on gre au niveau systme (dans une mmoire
protge) l'ensemble des capacits de ce sujet.
3) Machines capacits au niveau du matriel : le
matriel implante toute la protection par capacit (segments
spciaux, vrification matrielle des droits par consultation des
segments de capacit).
4) Machines capacits en logiciel : les listes de capacits
sont traites par programmes (le moniteur de rfrence
matriel utilise des anneaux).
82
Protection Machines domaines :
Exemples dapproche capacits (1)
Exemple 1 Capacits pour les primitives dun
systme dexploitation.
Systme VAX-VMS
En fait tous les systmes dexploitation bien protgs.
1) Les primitives du noyau sont protges par des
droits d'accs : droits processus, droits doprations
rseaux, droit de modifier ses droits.
2) Une liste de capacits est associe au
descriptif de chaque usager.
3) A chaque fois qu'un usager (sujet) accde
une primitive systme (objet) on vrifie le droit du
sujet. 83
Protection Machines domaines :
Exemples dapproche capacits (2)
Exemple 2 Machines Capacits
(niveau matriel)
IBM AS 400
En fait trs peu dautres exemples car coteux.
Capacits contrles en permanence pour les
droits dexcution des accs mmoire et des
oprations processeur.
Mcanismes matriels de gestion des segments
de capacits : les segments de capacits sont
exploits et protgs au niveau matriel.
84
Protection Machines domaines :
Exemples dapproche capacits (3)
Exemple 3 Murs Pare-Feux (Firewalls)
Implantation dune politique de capacits pour
les rseaux :
Si lon dfinit une liste de droits par metteurs :
machine dadresse IP donne, numro de port TCP donn.
Sujets : les sites metteurs.
Objets : les sites destinataires.

85
Protection Machines domaines :
Approche des listes de contrle daccs
1) Une approche de liste de contrle d'accs stocke la
matrice des droits par colonnes.
Pour chaque objet : la liste des sujets et leurs droits sur l'objet.
Colonne : notion de liste de contrle daccs (ACL Access Control
List based) .
2) Exemple : Systme de fichier UNIX
On associe chaque fichier une liste de droits (lire, crire, excuter)
a) Pour un usager particulier: le propritaire (politique nominative)
b) Les membres du groupe du propritaire (politique de rle)
c) Tous les autres usagers du systme (politique de rle)
Dans de nombreux systmes de fichiers les droits sont plus fins
On peut dfinir des listes de contrle d'accs fichiers pour nimporte
quel utilisateur ou nimporte quel groupe (exemple VAX-VMS).
86
Protection Machines domaines :
Comparaison des approches
1) Choix entre les deux approches : Repose sur le cot
plus ou moins pratique de la manipulation des listes de droits
dans les sujets ou les objets:
2) Les listes de contrle d'accs sont ranges dans les
descriptifs des objets
Pratique pour la rvocation des droits puisqu'ils sont associs l'objet.
Pratique pour des objets longue dure de vie, de types peu variables.
Pratique sil existe dj des descriptifs dobjets significatifs (fichiers)
3) Les listes de capacits (c-listes) sont ranges dans
les descriptifs des sujets.
Pratique pour ce qui concerne les droits des objets manipuls en
mmoire centrale par le noyau (peu de sujets actifs, descriptifs noyau).
4) Pour la distribution: une solution mixte
Capacits stockes par metteur (sujet).
87
Prsentes lobjet distant pour vrification par un guichet destinataire.
Protocoles de scurit

Authentification

Introduction.
Authentification mot de passe.
Protocoles dauthentification.

88
Authentification :
Introduction
1) Authentification : vrification d'identit de
lauteur dune action (sujet).
Prsentation dun identifiant : existence dun nommage
Prsentation dune crance (credential) : lettre de
crance instrument permettant dauthentifier.
Vrification de la validit de la crance.
2) Impossibilit : d'assurer une proprit de
scurit dune action sans s'appuyer sur la garantie
indiscutable des identits (client, serveur, affirmateur).
Proprit dintgrit : authentification de lcrivain.
Proprit de non rpudiation : authentification du client
et du serveur pour rgler les diffrents juridiques.
Proprit de protection : vrification de lidentit du
demandeur et de celle de laffirmateur du droit. 89
Authentification :
Pour une session ou en continu

Authentification en dbut de session : une fois pour toute


la session, toute une suite dactions jusqu fermeture.
Authentification en continu: pour chaque action individuelle

L'authentification devrait tre assure en continu

Quand l'entit est un usager : il peut quitter son poste en le


laissant ouvert
=> Procdure de dconnexion automatique, procdure de r
authentification priodique.
Quand l'entit est informatique : une substitution peut
avoir lieu surtout en rseau
=> Application des protocoles dauthentification en continu.
=> problmes de lourdeur et de performances.
90
Authentification : Diffrentes crances
1 - Connaissance
1) Information tenue secrte: cl, mot de passe
( ce que lon sait )
Technique la plus simple et la plus rpandue.
Applicable aux entits informatiques.
2) Problmes bien connus :
Le secret peut-tre dcouvert.
Le secret peut-tre confi un tiers.
3) Quelques parades :
a) Obliger l'usager changer rgulirement de secret :
mot de passe.
b) Surveiller les tentatives d'accs illicite : les
enregistrer et les diter.
c) Prvenir l'usager des connexions sur son compte en
affichant la date et l'heure (ex du dernier accs). 91
Authentification : Diffrentes crances
2 Moyen matriel

1) Secret matrialis physiquement ( ce que


lon possde )
Une cl (traditionnelle) => une carte lue : magntique,
Miniaturisation et radio : RFID Radio Frequency IDentifiers,
Complexification : carte puce.
Technique simple et rpandue.
2) Les problmes :
La perte.
Le vol du support.
La duplication plus ou moins facile mais toujours possible.
3) Les solutions :
La rvocation.
92
Authentification : Diffrentes crances
3 Techniques biomtriques
1) Classe de solutions adaptes lidentification des
personnes ( ce que lon est ).
2) Crance base sur un caractre biologique ou
morphologique ou comportemental.
A priori caractrisant de manire unique l'utilisateur.
Liste de caractres dans les transparents suivants.
3) La vrification repose sur la classification du caractre
retenu dans un ensemble de personnes (analyse statistique,
rseaux de neurones).
Ncessit d'tudes approfondies du caractre utilis l'intrieur du
groupe autoris et dans une population quelconque.
4) Incertitudes des techniques biomtriques
La variabilit intra-individuelle : le prlvement pour vrification peut ne
pas suivre exactement un profil prenregistr (en raison de son type).
Variabilit inter-individuelle : incertitudes.
Deux types d'erreurs possibles: le rejet tort d'un individu autoris93ou
l'acceptation tort d'une personne non autorise.
Authentification : Diffrentes crances
Techniques biomtriques : Solutions (1)

1) L'empreinte digitale (morphologique)


Le sujet applique son doigt sur un prisme.
La pression dclenche une analyse par balayage d'un faisceau
infrarouge.
Le signal reu dpendant des sillons de l'empreinte (creux et bosses
successives) est analys et classifi.
2) La reconnaissance faciale (morphologique)
Identification par comparaison du visage ceux mmoriss dans une
base.
3) La vascularisation de la rtine (morphologique)
Empreinte biomtrique analogue l'empreinte digitale qui est trs
stable.
L'image de fond de l'oeil est obtenue par un dispositif monoculaire utilis
dans les test de vision mdicaux.
La numrisation est effectue par une camra infrarouge.
L'image est classifie.
94
Voir aussi des tudes avec liris de loeil.
Authentification : Diffrentes crances
Techniques biomtriques : Solutions (2)
4) La voix (morphologique et comportemental)
Le sujet prononce quelques mots.
Le systme numrise et classifie le signal.
5) La gomtrie de la main (morphologique)
Une camra enregistre l'image de la main.
La caractrisation est obtenue par mesure de la longueur et de la largeur de
chaque doigts.
6) Dynamique de la signature (comportemental)
Elle est obtenue par une tablette graphique relie un calculateur
La signature et surtout le mouvement ralis par la main pour la fabriquer sont
analyss en comparaison plusieurs signatures de rfrence.
7) Dynamique de la frappe clavier (comportemental)
Un clavier spcial permettant la mesure prcise des intervalles dans les squence
de frappe ou la pression des doigts sur le clavier est utilis.
8) Empreinte gntique (biologique)
Analyse du code gntique de l'individu.
Demande encore actuellement trop longtemps.
95
Authentification : Diffrentes crances
Techniques biomtriques : Conclusion

1) Solution en rapide dveloppement.


2) Solution qui peut-tre efficace mais qui
prsente aussi des taux dchecs plus ou
moins levs.
3) Solution le plus souvent onreuse :
dans l'tat actuel des procds.
4) Solution qui peut-tre difficile
accepter dans certains cas par l'utilisateur.
96
Protocoles dauthentification

Lauthentification mots de
passe

Introduction
Authentification mot de passe en UNIX
Authentification mot de passe en rseaux

97
Authentification mot de passe :
Introduction
1) Utilisateur : nom d'usager U,
mot de passe secret P
2) Vrification: fichier de correspondance U , P.
3) Stockage: fichier de mots de passe U, P en clair.
Possible si le vrificateur est trs bien protg.
En gnral : protection trop faible.
4) Stockage : fichier de mots de passe U, P chiffr
Fonction de hachage a sens unique (oneway hash
function) H => On stocke U, H(P).
Authentification usager U, P : P est immdiatement
hach H(P).
On compare la valeur obtenue celle enregistre.
Le fichier peut tre accessible en lecture par tous
puisqu'on ne peut dduire P de H(P). 98
Authentification mot de passe :
Exemple d'authentification en UNIX
1) Version de base : mot de passe 8 caractres.
2) Hachage sens unique : CBC-MAC-DES
Cl utilise : Le mot de passe 8 caractres -> une cl
de 56 bits pour chiffrer avec l'algorithme du DES.
Message utilis : une suite de 25 blocs de 64 bits 0.
3) Fonctionnement concret du hachage:
On chiffre en DES avec le mot de passe comme cl
Un texte qui est compos de 64 bits 0.
On ritre 25 fois sur les valeurs successives obtenues.
4) Le rsultat est traduit en 11 caractres
ASCII
Plac dans un fichier (au dpart /etc/passwd).
Accessible en lecture par tous les usagers.
99
Authentification mot de passe :
Authentification en UNIX : attaques
1) Dcryptage "force brute"
Essayer tous les mots de passe: pas impossible si
l'intrus a pu recopier le fichier (calculateur puissant).
Essayer des mots de passe tirs d'un dictionnaire de
mots de passe (prnoms, noms de chiens .. etc) => on peut
casser jusqu' 30% des mots de passe gnrs la lgre.
2) Solutions
Interdiction de l'utilisation des mots de passe courts ou
cassables facilement.
Interdiction de plus de n tentatives d'accs en chec.
Temporisation longue pour chaque essai.
Mise en protection du fichier des mots de passe :
accs contrl par primitive systme. 100
Authentification mot de passe :
Authentification en UNIX : salage
1) Cl complmentaire alatoire : salage (Salt)
Adjonction au mot de passe P d'une cl complmentaire N
(l'heure de cration du mot de passe, une cl alatoire)
On stocke dans le fichier des mots de passe protg U , N ,
H(P , N). A chaque vrification on ajoute au mot de passe P
de l'usager la cl N avant de crypter.
2) Salage UNIX:
Cl complmentaire de 12 bits ("salt") construite partir
de l'UID (code interne utilisateur) et de l'heure de
gnration du mot de passe.
Cl ajoute au mot de passe de l'usager.
On multiplie par 4096 le nombre d'essais raliser pour
chaque mot de passe par un pirate.
101
Authentification mot de passe :
Fonctionnement en rseau
Problme 1 : assurer la confidentialit des mots
de passe.
Solution 1 : Utilisation d'un chiffre cl secrte pour
protger les mots de passe (accs LDAP protg SSL).
Solution 2 : Transmission dun hachage du mot de passe
avec une cl secrte (une forme de MAC : CHAP, Radius).
Problme 2 : un pirate pourrait couter une
authentification pour la rutiliser ultrieurement en
forme crypte (rejeu, "replay")
Solution: Utilisation d'un nonce (nombre alatoire)
A chaque authentification on change une valeur diffrente
imprvisible. 102
Authentification cl secrte :
Principes gnraux dune solution
Les deux entits partagent une cl secrte Ea , Da
Bernard doit connatre toutes les cls des usagers
qui s'authentifient auprs de lui.
Inutilisable si Alice et Bernard ne se connaissent pas.
Alice Bernard
Alice, Bernard, Login (Alice)

Gnrer NbAlatoire
Bernard, Alice, NbAlatoire

X = Ea (NbAlatoire)
Alice, Bernard, X

NbAlatoire 103
== (Da(X) ?
Authentification cl publique :
Principes gnraux dune solution
Les deux entits peuvent sauthentifier sans se connatre au pralable
Alice Bernard
Alice, Bernard, Login (Alice)

Bernard, Annuaire, (Alice,?)

Annuaire Annuaire, Bernard,(Alice,Ea)


Contrler
les certificats
Gnrer NbAlatoire
Bernard, Alice, NbAlatoire

X= Da(NbAlatoire)
Alice, Bernard, X

NbAlatoire ==
104
Ea (X) ?
Authentification cls publiques
Explication de la solution
Bernard propose Alice un dfi qui est de crypter un nonce.

Il n'y a pas de mot de passe au sens habituel: c'est la


connaissance par l'utilisateur de sa cl prive qui sert de secret.

Si Alice retourne le nonce crypt c'est elle puisque seule


Alice connat Da.

Bernard vrifie la cohrence de la valeur du nonce ce qui


empche la rptition.
Il faut que l'annuaire des clefs publiques (association de
Alice et de sa clef publique) soit accessible.
On utilise la commutativit du chiffre asymtrique retenu:
E (D(M)) = D(E(M)) = M
105
Protocoles de scurit :

Conclusion

106
Protocoles de scurit :
1) Protocoles de scurit et fonctions
cryptographiques :
un tout pour atteindre des proprits de scurit.
des implantations trs nombreuses qui prsentent des
variantes souvent mineures des mmes principes.
2) Protocoles assez stabiliss : volutions plus
lentes quen cryptographie.
3) La preuve de la satisfaction des proprits
reste toujours dlicate :
Fonctions cryptographiques et complexit.
Attaques difficiles prvoir.
107
Bibliographie
- Bruce Schneier, Cryptographie applique , Thomson
Publishing, Paris 1995
- Bruno Martin, Codage, cryptologie et applications,
Presses polytechniques et universitaires romandes 2004
- Stphane Natkin, Les protocoles de scurit de
lInternet, Dunod, 2002
- Niels Ferguson , Bruce Schneier, Cryptographie en
pratique , Wiley 2003, Vuibert 2004, Paris 1995
- A Menezes, P Van Oorschot, S Vanstone, Handbook
of applied cryptography, CRC Press Inc, 1997
- Cours disponibles en ligne et pages spcialises sur
des concepts, normes ou produits

108

You might also like