Beaucoup de services Internet et beaucoup d'ordinateurs requièrent une authentication (identification) de l'utilisateur.
L'identification d'un utilisateur peut se faire des manières suivantes:
Ce qui identifie l'utilisateur: l'exemple le plus connu est la combinaison traditionnelle code d'identification/mot de passe.
Ce qu'est l'utilisateur (biométrie),
avec comme exemples les plus connus les empreintes digitales et iris-scan. L'inconvénient ici est que ces systèmes ne fonctionnent jamais exactement à 100% (faux-positifs et/ou faux-négatifs).
Ce que possède l'utilisateur, p.e. une clé privée.
Des combinaisons des trois points précédents.
En théorie rien n'est sûr à 100%, et les méthodes très sûres ne sont pas toujours conformes aux désirs des consommateurs.
Dans la pratique on travaille généralement avec un simple mot de passe. Lors du choix d'un mot de passe il vaut mieux suivre les règles suivantes, si on ne le fait pas le mot de passe peut assez rapidement être
piraté :
Choisissez un mot de passe qui soit le plus long possible (le plus souvent la longueur maximale est limitée à 8 caractères, utilisez alors ces 8 caractères).
Ne prenez pas de mots de passe qui soient prévisibles (des noms d'animaux domestiques, des noms de membres de votre famille, de célébrités du monde sportif, musical et cinématographique, des numéros de téléphone ou d'immatriculation,...).
Ne prenez pas de mots qui apparaissent dans un dictionnaire.
Il vaut mieux utiliser un mélange de majuscules et de minuscules, de chiffres et autres signes qui apparaissent sur le clavier (sauf des tabulations et des blancs).
Une façon bonne et simple est p.e. de composer une phrase, et de prendre de chaque mot la première lettre, ou de prendre de certains mots uniquement les consonnes ou voyelles, et de mélanger le tout avec des chiffres et autres signes.
N'inscrivez jamais le mot de passe, ou si vous le faites malgré tout, cachez le papier dans un endroit bien choisi (les endroits sous le clavier, la table, le téléphone,... ne sont absolument pas intéressants).
N'utilisez jamais les mêmes mots de passe pour des services qui se trouvent sous une administration différente (des administrateurs de système connaissent parfois les mots de passe). Par exemple une personne qui travaille dans une banque et qui y utilise un mot de passe, et qui à la maison a une communication Internet où elle utilise ce même mot de passe, fait preuve de négligence.
Modifiez le mot de passse régulièrement (le faire trop souvent n'est toutefois pas indiqué non plus, puisqu'alors on aura du mal à inventer ou retenir les mots de passe, et on commencera plus à les inscrire sur un papier.)
Des administrateurs de système ont parfois la possibilité d'imposer une ou plusieurs des règles que nous venons de mentionner.
Ne vous laissez pas prendre par social engineering. Ne donnez jamais votre mot de passe à une personne inconnue, ou même pas à des personnes que vous connaissez. Si une personne inconnue vous charge de modifier votre mot de passe en xyz, ne répondez pas à cette demande. Si vous recevez des messages E-mail concernant des manipulations à faire avec un mot de passe, soyez toujours sur vos gardes (un message E-mail peut facilement être falsifié).
Veillez à ce que personne ne vous observe lorsque vous introduisez votre mot de passe; et si vous vous trouvez près d'une personne qui doit intoduire son mot de passe, ayez la décence de ne pas l'observer.
Les problèmes suivants peuvent se produire avec des systèmes de mots de passe:
Les mots de passe sont répertoriés sous forme lisible. Si on entre
par effraction dans un système d'ordinateur, le pirate aura tout de suite
tous les mots de passe. De la même manière des administrateurs de système
de machines peuvent lire ces mots de passe.
Mots de passe 'hashés': Pour ces systèmes le mot de passe n'est pas
enregistré sous forme lisible, mais le mot de passe est soumis à une fonction
hash, dont
le résultat est enregistré dans un fichier de mots de passe. Si une personne
essaye de se connecter à l'aide d'un mot de passe, la fonction hash est appliquée
au mot de passe introduit, et les deux résultats 'hashés' font l'objet d'une
comparaison. S'ils sont identiques, ça signifie que l'utilisateur connaît
le mot de passe.
Les problèmes suivants restent valables:
Le mot de passe va à travers la ligne en clear-text, et peut éventuellement
faire l'objet d'écoute.
Il est toujours possible de deviner des mots de passe.
Si on a un fichier contenant des mots de passe 'hashés', on peut essayer
de pirater les mots de passe par
Une attaque de dictionnaire (dictionary attack): on applique
la fonction hash à une liste de mots du dictionnaire (sur internet
on trouve de grandes listes de mots dans diverses langues), et on
compare les résultats à des mots de passe 'hashés' du fichier de mots
de passe.
Une attaque de force brute(brute-force attack): on essaye
toutes les combinaisons possibles. Voilà pourquoi un mot de passe
doit être assez long et que le nombre de caractères permis doit être
aussi grand que possible; ceci rend les attaques de force brute très
laborieuses puisqu'elles prennent un temps fou. Si le fait de faire
des hashes se passe de la même (par exemple sur toutes les machines
UNIX), on devra seule une fois faire une liste complete de toutes
les combinaisons possibles. Pour éviter ceci, ajoutera-t-on
des characteres arbitraires (nommé salt),
avant la calculation du hash.
Des administrateurs de système doivent donc faire en sorte que les fichiers
contenant des mots de passe ne puissent pas être lus par des personnes
non-initiées.
Le système de mot de passe UNIX est basé sur des mots de passe 'hashés'.
Des versions récentes n'enregistrent plus les mots de passe 'hashés' dans
le fichier contenant les mots de passe (/etc/passwd), mais les enregistrent
dans un autre endroit, dans un système de fichier qui peut uniquement
être lu par root (fichiers de mot de passe
fantôme).
Afin d'éviter que des mots de passe soient envoyés sous forme lisible on
a inventé des systèmes challenge-response. Ils
fonctionnent de la manière suivante:
Une personne veut se connecter et réalise une connexion avec un serveur.
Le serveur génère une chaîne unique (p.e. le temps) = le challenge,
et renvoie celle-ci à la personne voulant se connecter.
La personne qui veut se connecter exécute une fonction déterminée à
l'aide de son mot de passe et du challenge, le résultat = la réponse
est envoyé vers le serveur.
Le serveur fait la même chose avec la chaîne unique et le mot de passe,
et quand les deux résultats sont identiques, le mot de passe est connu
par l'utilisateur.
Pour l'utilisateur ceci demeure un système facile, il doit uniquement introduire
son mot de passe (tout comme c'était le cas pour les systèmes de mots de passe
précédents).
Si le réseau fait l'objet d'écoute, cette technique reste exposée aux attaques
de dictionnaires et de force brute.
Les premiers systèmes challenge-response étaient basés sur des fichiers de
mots de passe contenant des mots de passe lisibles, des versions récentes
utilisent des mots de passe 'hashés' sur le serveur (ce qui passe à travers
la ligne est alors un mot de passe 'hashé'-'hashé').
A cause des problèmes rencontrés par des systèmes de mots de passe faciles,
on s'est mis à chercher d'autres solutions, dont nous donnons un aperçu ici:
L'utilisation de certificats pour se connecter. Voir la partie sur le cryptage.
The PISA-project is financed by the OSTC, Belgian Federal Office for Scientific,
Technical and Cultural Affairs (DWTC - SSTC). Project description of PISA