Transcript powerpoint

Authentification et
identification
8e cours
Louis Salvail—2014
Définitions
Identification : Permet de connaître l’identité d’une entité. Le vérificateur vérifie
l’information révélée par l’entité par rapport à celles de toutes les entités connues.
L’identification doit être unique.
Authentification : Permet de vérifier l’identité d’une entité ayant émise une
information. Un utilisateur montre qu’il c’est bien Obélix à l’origine d’une
information. L’authentification n’a pas à être unique. L’authenticité d’un utilisateur
faisant partie d’un groupe n’est pas unique, car plusieurs identités sont du même
groupe. Un utilisateur peut s’authentifier comme membre du groupe.
Les deux termes sont souvent utilisés abusivement et sans les distinguer.
Une signature permet d’identifier le propriétaire d’une clé publique.
Kerberos (AS) identifie un utilisateur (avant de lui donner son premier ticket (ticket
d’accord de ticket).
Kerberos (TGS) vérifie l’authenticité de l’utilisateur avec l’identité identifiée par l’AS.
Autrement dit:
Identification: L’entité E est présente et
active.
Intégrité: Les données reçues ont été
transmises par E et n’ont pas été
modifiées.
Authenticité: Identification et intégrité en
même temps.
L’Identification
L’identification est le premier mécanisme de défense contre
l’accès aux ressources d’un système informatique par une entité
non autorisée.
Un protocole d’identification se déroule entre deux parties, le
mandant («principal») P et le vérificateur V :
Nous voulons pfa et pfr
P veut montrer à V qu’il/elle est bien celui/celle qu’il/elle
petits!!!
prétend être.
Un tel protocole a habituellement des imperfections :
pfa est la probabilité pour V d’accepter un mauvais P,
pfr est la probabilité que V rejette P.
Comment Identifier
L’identification d’une entité (personne, hôte, terminal
intelligent, programme,...) peut être établie par la
vérification de ce que l’entité :
est: car un environnement informatique n’a pas vraiment de
caractéristiques uniques et non transférables. Nous verrons des
méthodes pour y parvenir (biométrie).
a : établit l’identité en vérifiant que l’entité possède un jeton
confirmant celle-ci. Une carte à puce avec de l’information secrète
peut jouer ce rôle. L’hypothèse étant qu’une entité ne perd jamais
son jeton, autrement son identité peut être subtilisée.
Commençons par ici!
connaît : établit l’identité à partir d’une information secrète (NIP). La
perte de cette information ne permet pas de subtiliser une identité.
Cependant, le secret doit demeurer secret!
Indentification par mots de passe ou NIP
Ces méthodes sont essentielles à la sécurité de plusieurs
systèmes, et dans bien des cas le seul mécanisme de sécurité.
Ils sont souvent le maillon faible, car ils doivent être retenus par les
humains :
Les utilisateurs choisissent des mots de passe qui sont faciles à retenir
ou qu’ils écrivent sur des documents accessibles...
Il y au moins 4 points importants pour la sécurité des mots de passe :
Comment sont-ils choisis?
Comment les mots de passe sont-ils transmis entre l’utilisateur et le vérificateur?
Comment l’utilisateur range-t-il son mot de passe?
Comment le vérificateur range-t-il les mots de passe?
À propos des mots de
passe
Le nombre de NIP possibles à la banque est
moindre que 104=10000.
Les mots de passe UNIX sont quelques
milliards de fois plus nombreux : 252.
Les mots de passe ne peuvent être trop
longs. Ils doivent être mémorisés.
Des études ont montré que 12 chiffres est le
maximum que nous pouvons espérer entrer
correctement....
À propos des mots de passe (II)
Le nombre de mots de passe possibles n’est pas une mesure
de qualité. Nous devons nous préoccuper de la façon dont ils
sont choisis :
Les mots de passe qui peuvent être mémorisés sont beaucoup
plus faciles à deviner que leur longueur le laisse croire.
Une bonne idée est de retenir une «phrase de passe» au lieu
d’un mot et de n’en retenir que quelques lettres.
Exemple : «Ce mot de passe c’est le mien»->«cmdpc’elm».
Des études ont montré que cette façon de procéder est presque
aussi sûre que si le mot de passe était aléatoire, mais tout aussi
facile à mémoriser que s’ils étaient choisis pour leur contenu.
À propos des mots de passe (III)
Même si les phrases de passe ne sont pas utilisées, il est
Peut être une arme à double
possible d’aider l’utilisateur à rendre le système
sûr :
tranchant! Pour plus
les mémoriser,
nous les écrivons.
La plupart des systèmes demandent un changement fréquent
des mots de passe (par le principe vu précédemment).
Certains systèmes vérifient que le mot de passe n’est pas sur
une liste de «mauvais» mots de passe. S’il est
mauvais,
les de
Le résultat
étant aussi
les rendre plus difficiles à
systèmes refusent la modification.
mémoriser!
Ceci peut être amélioré en vérifiant que le nouveau mot de
passe n’a pas été utilisé récemment et qu’il n’est pas trop
similaire au précédent.
D’autres systèmes analysent et informent l’utilisateur de la
qualité de son mot de passe.
Faiblesses des guichets
(cartes à bande magnétique)
Beaucoup plus grave,
jamais le guichet ne
s’authentifie à ce
pauvre Obélix...
Comment le mot de passe/NIP est-il fourni au guichet?
À l’abri des yeux indiscrets?
Le compte est verrouillé après plus de trois échecs, mais les NIP sont courts.
Sous quelle forme le mot de passe/NIP est-il acheminé à la banque?
Chiffré
Est-ce que la banque protège bien les mots de passe/NIP?
Probablement?
Différentes attaques
Même si un guichet verrouille un compte après 3 essais, ceci ne garantit
pas l’impossibilité d’une attaque qui succède souvent:
Supposons que César puisse créer des fausses cartes pour des
clients réels. Il peut espérer entrer dans un compte de banque après
avoir contrefait environ 3000 cartes :
Pour chacune d'entre elles, 3 essais aléatoires sont effectués.
Puisque les guichets ne s’authentifient pas, un faux guichet peut aussi
voler les mots de passe et l’information sur la bande magnétique des
cartes. Ce sont des attaques par mascarade.
D’autres attaques peuvent, au lieu de donner accès à un compte,
attaquer la disponibilité du service. Le verrouillage de comptes laisse
place à ce type d’attaques. La qualité du mécanisme qui verrouille les
comptes dépend du modèle adopté pour les menaces de sécurité.
Accès à des ressources informatiques
Le nombre de mots de passe doit
être beaucoup plus grand que pour
les guichets.
Les attaques peuvent avoir
beaucoup plus d’envergure.
Le stockage sûr des mots de passe
sur le serveur est très important.
Il est préférable de faire en sorte que
même un super-utilisateur ne puisse
connaître les mots de passe des
utilisateurs.
Il est possible de rendre
l’identification plus sûre en
ralentissant le processus au lieu de
verrouiller la ressource.
L’accès au serveur est plus facile
qu’au guichet et les attaques peuvent
être automatisées.
Il est possible, depuis son salon,
d’attaquer des milliers de machines.
Les façons d’accéder au serveur sont
multiples à partir d’Internet.
Même les administrateurs système
peuvent être à risque.
Les attaques automatisées seront
donc beaucoup moins performantes.
Piratage psychologique
Le vol de mots de passe à partir du disque de l’utilisateur peut
être facile s’il y apparaît en clair.
D’autres méthodes peuvent être utilisées pour voler des mots de
passe (piratage psychologique, «social engineering») :
À l’université de Sydney, 336 étudiants ont reçu un courriel leur
demandant de fournir leur mot de passe prétextant une validation de la
base de données après une attaque soupçonnée. Beaucoup ont
changé leur mot de passe, mais personne ne s’est plaint.
Hameçonnage («phishing») : Le pirate se fait passer pour un tiers de
confiance dans le but de voler de l’information confidentielle.
Ce type d’attaque est très efficace. Les mécanismes de défense sont
difficiles à trouver, il semble qu’informer l’utilisateur et la combinaison
de mots de passe avec biométrie ou composantes matérielles soient les
seules approches possibles.
Stockage des mots de passe
De mauvais systèmes peuvent même stocker les mots de passe en clair.
UNIX (et bien d’autres) fait mieux : le fichier de mots de passe ne contient pas les
mots de passe mais plutôt des entrées du type :
<utilisateur u> :<f(mpu)>
la fonction f ici est une fonction à sens unique. Celles-ci sont faciles à évaluer
mais difficiles à inverser.
Le système peut vérifier un mot de passe, mais le vol du fichier des mots de
passe ne donne pas ceux-ci.
Cependant, un adversaire qui croit avoir le mot de passe d’un utilisateur peut le
vérifier s’il obtient une copie du fichier (ce qui n’est pas tropD’où
difficile
en UNIX).
la nécessité
d’orienter l’utilisateur
Cette attaque est réelle sur UNIX. Des programmes utilisentdans
des dictionnaires
son choix! pour
former des mots de passe et vérifient s’ils apparaissent dans le fichier.
25% des mots de passe peuvent être devinés de cette façon si l’utilisateur n’est pas
guidé.
Faiblesses de l’identification
par mot de passe
La vérification d’un mot de passe nécessite que celui-ci
soit présenté. Le vérificateur V peut aussi imiter P.
Puisque V ne prouve pas son identité à P, un V*
frauduleux peut apprendre le mot de passe de P pour
ensuite l’imiter.
Le mot de passe communiqué par P à V ne dépend
pas du temps actuel. Ceci permet une attaque par
redite...
Nous verrons des méthodes qui permettent de régler
certains de ces problèmes...
Sommaire sur les mots
de passe
Aider/forcer l’utilisateur à choisir un bon mot de passe
l’aidant à le mémoriser comme les phrases de passe.
Informer les utilisateurs au sujet du piratage
psychologique.
Le système de vérification devrait limiter la possibilité
de vérifier un mot de passe deviné.
S’assurer que le système de vérification stocke les
mots de passe d’une façon sûre en utilisant le
chiffrement ou la sécurité matérielle.
Sécurité matérielle
Des dispositifs matériels peuvent aider à assurer la sécurité de bien des
systèmes. Ils ne permettent pas seulement d’empêcher le vol de clés, mais
aussi de s’assurer que certains paramètres de sécurité existent en une
seule copie.
Des systèmes bancaires en ligne s’assurent que les clés secrètes pour
les signatures du client sont stockées sur le disque de l’utilisateur
chiffrées avec un mot de passe.
L’adversaire peut quand même réussir à subtiliser le fichier des clés
secrètes chiffrées sans que le propriétaire le constate. Il a maintenant
beaucoup de temps pour tenter de déchiffrervoler-copierles clés en essayant des
retourner!
mots de passe et en testant leur validité à l’aide
du fichier.
Les cartes bancaires ont un problème similaire. La bande magnétique
est très facile à copier. La bande magnétique ne contient pas
d’information sur le NIP. Mais l’adversaire peut essayer de le deviner
une fois qu’il a une carte.
Sécurité matérielle (II)
Si la carte était à l’intérieur d’une unité matérielle à l’épreuve des
escrocs, alors l’attaquant pourrait voler l’unité, mais du temps et de
l’argent seront nécessaires pour que l’attaque réussisse. Pendant
ce temps, le compte a de bonnes chances d’être verrouillé.
Il est donc intéressant de se doter d’unités matérielles qui sont
difficiles d’accès. Il est probablement trop optimiste de croire qu’un
système peut empêcher toutes les attaques, mais celles-ci peuvent
être longues et coûteuses. La sécurité des systèmes n’en serait
qu’améliorée.
Les cartes à puce sont de ce type...
Cartes à puce
Ces cartes ont leur propre processeur à bord, complet avec stockage,
système d’exploitation et logiciels inclus par le manufacturier.
Elles viennent souvent avec un coprocesseur pour le chiffrement et même
du matériel dédié implémentant RSA.
Le stockage est protégé, nécessitant l’utilisation du processeur pour
accéder aux clés :
Pour les utiliser, il est nécessaire d’avoir le NIP pour «ouvrir la carte»
et passer par les protocoles de communication prévus.
Les meilleures cartes ont des couches de protection sur le processeur
et des unités de stockage qui rendent les attaques difficiles sans
détruire les données de la carte.
Sans être impossibles, les attaques demandent de l’expertise, du
temps et des ressources.
L’intérieur d’une carte
Flash en est un
type
EEPROM :
Electrically Erasable
Programmable
Read-Only Memory
Cependant!
L’attaque la plus directe contre une carte à puce consiste à l’attaquer
physiquementOndans
le but d’appendre
clés secrètes
qu’elle
contient.
the Importance
of Checkingla/les
Cryptographic
Protocols
for
Faults
Boneh, DeMillo et Lipton (Bellcore) ont montré comment un adversaire qui
pourrait introduire des erreurs de calcul dans une carte pourrait aussi
apprendre les clés qui y sont rangées.
L’adversaire peut y parvenir sans savoir exactement les erreurs produites,
sans avoir le contrôle complet sur la nature des erreurs.
En comparant le déchiffrement sans erreur avec le déchiffrement avec
erreur, l’adversaire apprend des choses sur la clé.
Comment produire des erreurs?
Fluctuations de température, du voltage, de l’horloge interne,
Généralisé par
Biham et Shamir :
Differential Fault
Analysis
bombarder la carte de radiation, frapper dessus avec un
marteau en caoutchouc.
Attaques par analyse de
puissance
Les cartes à puce ont besoin d’une source de courant externe pour
fonctionner.
L’analyse du courant requis pour exécuter une tâche peut dévoiler de
l’information secrète.
Considérons l’algorithme standard/naïf pour le déchiffrement
RSA. Il visite chacun des bits de d (secret) :
Il exécute une opération si le bit courant de d est 0. Une
multiplication, une division.
Il exécute une autre opération s’il est 1. Deux
multiplications, une division et une soustraction.
À chaque cycle, le courant requis pour un bit de d égal à 0
n’est pas le même que pour un bit égal à 1. Cette différence
peut être mesurée et les bits de d déterminés.
Autres composantes matérielles
D’autres unités sont beaucoup plus difficiles à attaquer. Elles ne sont pas
des cartes à puce, sont beaucoup plus coûteuses et sont encombrantes.
Par exemple, le IBM 4758 a été certifié par l’administration américaine
au niveau le plus élevé de sécurité.
Ses mécanismes de protection sont à l’oeuvre à tout instant et vont
détruire l’information aussitôt une attaque détectée. Il a son
processeur, sa batterie et exécute les tâches cryptographiques.
Utilisées par les banques (stockage de NIP), CA (stockage de ses
clés secrètes) pour les certificats.
Personne n’est parvenu à l’attaquer avec succès.
pas tout à fait
vrai!!!!! nous
verrons...
Attention
La formule qui dit que la force d’une chaîne n’excède pas celle
de son maillon le plus faible est utile ici :
Le meilleur matériel est bien inutile si le système qui l’utilise
peut être trompé.
Supposons que mon PC soit équipé d’un lecteur de cartes à
puce pour les signatures avec clé secrète sur la carte.
Même s’il est très difficile d’obtenir la clé à partir de la carte
seule, est-ce que le logiciel que j’utilise est intègre?
Un message frauduleux me demandant de fournir mon NIP,
pour ensuite utiliser la carte à sa guise.
Par exemple, lui demandant de signer n’importe quoi!!!!!
Biométrie
Il s’agit de systèmes qui identifient une personne en fonction de ses
caractéristiques biologiques.
Ces systèmes balayent les empreintes digitales et/ou les yeux et/ou le visage
et/ou la voix. Ils fonctionnent tous selon les mêmes principes.
Les caractéristiques physiques sont mesurées et sont ensuite converties sous
forme numérique.
Un ordinateur a de la difficulté à reconnaître les patrons et les mesures sont
sujettes au bruit.
Il faut donc trouver une façon de les convertir pour que les bonnes personnes
soient acceptées la plupart du temps et les mauvaises soient rejetées presque
toujours.
Des systèmes fiables sont sur le marché pour les empreintes digitales et l’iris.
Las Vegas repère les joueurs non autorisés de cette façon. C’est de l’identification
malgré nous! (la figure est analysée dans ce cas)
Biométrie (II)
Quel avantage
l’iris offre par
rapport aux
empruntes
digitales?
Biométrie (III)
L’avantage de la biométrie est qu’elle ne demande pas à l’utilisateur de mémoriser
un mot de passe, car celui-ci transporte son «mot de passe».
Le problème, c’est que ceci peut mener à des problèmes de respect de la vie
privée :
Nous pouvons demeurer anonymes en fournissant un mot de passe; c’est
impossible avec les méthodes biométriques.
On entend souvent dire que la biométrie peut remplacer les CAM.
Ceci est certainement faux, car il n’existe aucun lien entre une empreinte et un
message. La réception d’une empreinte et d’un message ne prouve
absolument rien.
Ce que la biométrie permet, en plus de l’identification, c’est un meilleur contrôle
d’accès à votre clé privée.
La base de données biométriques doit être protégée contre les modifications. Si
elles sont à un autre endroit que l’unité, la communication doit être authentifiée (et
probablement aussi chiffrée)...
Impossible à court-circuiter?
Pour que les mécanismes de protection permettant d’accéder aux
ressources soient utiles, encore faut-il que l’adversaire ne puisse les
court-circuiter.
Si la ressource est une clé et le mécanisme est une boîte sûre,
alors il suffit d’y déposer la clé et de s’assurer qu’elle ne puisse
ressortir!
Une boîte qui range les clés de façon sûre ne doit jamais
retourner la clé à moins qu’elle n’y soit forcée.
La situation est beaucoup plus délicate si une telle boîte n’est pas
disponible.
C’est la situation lorsque la sécurité est demandée à partir d’un
PC ordinaire...
Un cas fréquent
Supposons que votre clé privée RSA n’est accessible que si le
bon mot de passe est fourni.
Puisque cette clé ne peut être protégée par une unité matérielle,
il faut la ranger chiffrée avec le mot de passe comme clé.
Un problème est qu’un mot de passe n’est pas une chaîne de
128 bits aléatoires comme les clés AES (par exemple).
Le hachage peut aider ici, si le mot de passe est mp et h est
une fonction de hachage standard, alors la clé SK est chiffrée
par Eh(mp)(SK).
Le problème c’est que le nombre de mots de passe possibles
est bien moindre que 2128!!
Briser le chiffrement de clés
sans briser AES
PK est la clé publique de
l’utilisateur
Fichier Clés :
Eh(mp)(SK)
clé secrète RSA
déchiffreur AES
Un truc contre ce type d’attaques
:
essayer un
nouveau mot h(mp*
)
de passe
possible
S*
(S*,PK) une paire
RSA?
Ralentir l’évaluation de h() :
h(mp)=SHA(SHA(SHA(SHA(...SHA(mp)...))))
où le nombre d’itérations de SHA
peut aller jusqu’à quelques
milliers.
Identification par défis
Ce type de protocoles d’identification vérifie que P connaît une
information secrète sans que celle-ci soit communiquée à V.
L’interaction est nécessaire pour empêcher les attaques par redites.
Ces protocoles peuvent être utilisés pour vérifier qu’un protocole
d’échange de clés secrètes a fonctionné comme prévu.
Ces protocoles peuvent être construits à partir :
d’une clé secrète pour un système de chiffrement symétrique,
d’une clé privée correspondant à une certaine clé publique pour
un système de chiffrement asymétrique,
d’une clé privée correspondant à une certaine clé publique pour
un système de signature.
Authentification de clés secrètes
L’identification mutuelle entre P et V qui partagent une clé
secrète K pour un système de chiffrement symétrique
EK(.).
K
tire au hasard un rO
aléatoire
accepte si DK(CA)
contient Obélix et rO.
appelé
«nonce»
<Obelix,rO
>
CA=EK(<Obélix,rO,rA
>)
CB=EK(<Astérix,r
A
K
>)
pige rA aléatoire
Notez qu’un tel système ne
permet pas de distinguer Astérix
d’Obélix!!!
accepte si DK(CB)
contient Astérix et rA.
Authentification de clés publiques
(par chiffrement)
V identifie P en vérifiant qu’il possède la clé secrète SK
associée à la clé publique PK.
Le chiffrement à clé publique EPK(.) et le déchiffrement
associé DSK(.) sont utilisés.
SK
P:
déchiffre DSK(CA) et
extrait rO=rA pour
autant qu’Astérix y
figure.
<Obelix
nonce
CA=EPK>
(<Astérix,rA
>)
rA
•L’homme du milieu ne peut
que retransmettre
•Les nonces empêchent les
redites.
PK
:V
tire au hasard un rA
aléatoire
accepte si rA est reçu.
Authentification de clés publiques
(par signature)
V identifie P en vérifiant qu’il possède la clé secrète SK
associée à la clé publique PK.
La signature à clé publique SSK(.) et la vérification
associée VPK(.) sont utilisées.
SK
nonce
P:
rA
<Obélix,
s=SSK(<rA>)>
PK
:V
tire au hasard un rA aléatoire
accepte si VPK(s) est
une signature de rA.
Pour et contre de l’identification
par défis
L’avantage premier de ces méthodes est que le secret n’est
jamais donné en clair au vérificateur.
Les attaques par mascarade sont éliminées.
Les défis permettent de se prémunir contre les redites.
Cependant, ils demandent de l’interaction entre les parties.
Ces systèmes demandent aussi une puissance de calcul au
mandant («principal»). Ils doivent donc résider sur
ordinateurs ou cartes à puce.
Dans les deux cas, un système d’identification par mots de
passe doit permettre un contrôle d’accès au matériel.
Petits problèmes (I)
Considérez les deux approches suivantes pour l’identification
:
SIGN
UNIX
u1,f(mp1)
u2,f(mp2)
u3,f(mp3)
:
.
un,f(mpn)
r
E
u1,PK1
u2,PK2
u3,PK3
:
.
un,PKn
Q1 : Considérez un adversaire passif qui écoute les communications et tente de le personnifier.
Comparez la sécurité des deux approches si les transmissions ne sont pas chiffrées. Si elles sont
chiffrées?
Q2 : Considérez un adversaire qui peut s’introduire sur les serveurs et lire l’information des
fichiers. Comparez la sécurité des deux approches si l’adversaire peut seulement lire. S’il peut
modifier les fichiers?
Q3 : Quelle solution favoriseriez-vous en général (en incluant les attaques qui permettent à
l’adversaire de s’introduire sur les serveurs)?
Petits problèmes (II)
La fonction à sens unique d’Unix pour chiffrer les mots de
passe est une version modifiée de DES sans clé secrète.
Une caractéristique est que la fonction est beaucoup
beaucoup plus lente que DES. Pourquoi?
Dans bien des cas, le fichier de mots de passe ne range
pas simplement (u,f(mpu)) mais plutôt (u,ru,f(mpu||ru)).
Pourquoi? Cette technique est appelée «random salt» ou
«salage aléatoire».
Salage Unix
Le mot de passe est «chiffré» par une modification de
DESk : DES’k.
Par le passé, le salage était formé de deux caractères :
(S1,S2), il y a au total 4096=64*64 possibilités pour S1 et
S2. Aujourd’hui, le salage est de 24 bits sur bien des
plates-formes UNIX.
Le fichier ressemble à ceci :
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
•login, DES’S1||S2||mp(0), no. utilisateur, no. groupe, maison, programme initial
Petits problèmes (III)
Pour les systèmes de banque à domicile («home banking»), la clé privée de l’utilisateur
peut être rangée sur une carte à puce.
La carte doit être insérée dans un lecteur connecté au PC. Elle est activée après avoir
entré un NIP. Quand une signature numérique doit être générée, le PC hache le
message et la valeur hachée est transmise à la carte. La carte retourne ensuite la
signature au PC.
Certaines cartes ont un clavier pour entrer le NIP. D’autres n’en ont pas. L’utilisateur
entre le NIP sur le PC et celui-ci le transmet à la carte. Qu’est-ce que l’adversaire doit
faire pour attaquer la sécurité de la carte dans les deux cas?
Quels problèmes peuvent survenir si le logiciel qui calcule le hachage est attaqué par un
virus par exemple?
Des systèmes demandent le NIP pour chaque message signé, l’utilisateur doit
explicitement confirmer la signature d’un nouveau message. Est-ce que ceci règle le
problème précédent?
Supposons que les clés privées soient rangées sur une unité matérielle connectée à un
serveur. L’utilisateur doit s’authentifier auprès de l’unité pour qu’elle utilise ses clés pour
signer. Comparez la sécurité de ce système au précédent.