400 likes | 571 Views
Authentification et identification. 8 e 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.
E N D
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 : • P veut montrer à V qu’il/elle est bien celui/celle qu’il/elle 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. Nous voulons pfa et pfrpetits!!!
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. • 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! Commençons par ici!
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) Peut être une arme à double tranchant! Pour les mémoriser, nous les écrivons. • Même si les phrases de passe ne sont pas utilisées, il est possible d’aider l’utilisateur à rendre le système plus sûr : • 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 systèmes refusent la modification. • 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. Le résultat étant aussi de les rendre plus difficiles à mémoriser!
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é.
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. 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.
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 trop difficile en UNIX). • Cette attaque est réelle sur UNIX. Des programmes utilisent des dictionnaires 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é. D’où la nécessité d’orienter l’utilisateur dans son choix!
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échiffrer les clés en essayant des 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. voler-copier-retourner!
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! On the Importance of Checking Cryptographic Protocols for Faults • L’attaque la plus directe contre une carte à puce consiste à l’attaquer physiquement dans le but d’appendre la/les clés secrètes qu’elle contient. • 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, • bombarder la carte de radiation, frapper dessus avec un marteau en caoutchouc. Généralisé par Biham et Shamir : Differential Fault Analysis
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!!
Fichier Clés : Eh(mp)(SK) h(mp*) clé secrète RSA Briser le chiffrement de clés sans briser AES essayer un nouveau mot de passe possible S* PK est la clé publique de l’utilisateur (S*,PK) une paire RSA? déchiffreur AES Un truc contre ce type d’attaques : 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.
K K <Obelix,rO> CA=EK(<Obélix,rO,rA>) CB=EK(<Astérix,rA>) 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(.). appelé «nonce» tire au hasard un rO aléatoire pige rA aléatoire accepte si DK(CB) contient Astérix et rA. accepte si DK(CA) contient Obélix et rO. Notez qu’un tel système ne permet pas de distinguer Astérix d’Obélix!!!
<Obelix> SK PK rA CA=EPK(<Astérix,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. nonce P : :V • L’homme du milieu ne peut que retransmettre • Les nonces empêchent les redites. tire au hasard un rA aléatoire déchiffre DSK(CA) et extrait rO=rA pour autant qu’Astérix y figure. accepte si rA est reçu.
SK PK <Obélix, s=SSK(<rA>)> rA 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. nonce P : :V tire au hasard un rA aléatoire accepte siVPK(s)est une signature derA.
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.
UNIX SIGNE r Petits problèmes (I) Obélix,mp Obélix Ssk(<Obélix,r>) u1,PK1 u2,PK2 u3,PK3 : . un,PKn u1,f(mp1) u2,f(mp2) u3,f(mp3) : . un,f(mpn) • Considérez les deux approches suivantes pour l’identification : 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».
. . . . . . . . . . . . • login, DES’S1||S2||mp(0), no. utilisateur, no. groupe, maison, programme initial 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 :
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.