Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
PROTOCOLES DE
SECURITE
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
3
Protocoles de confidentialit
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.
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
Alice Bernard
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 .
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)
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)
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
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
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
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
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.
E
M Ek(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
47
Codes dauthentification de
messages : MAC double
MAC (K, M) = Hd ( K || M ) = H( H ( K || M ) )
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)
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
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
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
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
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)
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.
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