Qualité des mots de passe by
strongpassword 4. décembre 2010 05:00
Que valent les mots de passe que vous utilisez quotidiennement?
Sont-ils réellement efficaces? Comment savoir quel type de mot de passe
il faut créer pour se protéger efficacement?
Pour le savoir, utilisez notre
calculateur de mots de passe,
il vous permet de déterminer la longueur et la complexité nécessaires
pour une protection efficace. Cette page vous explique pourquoi.
Cette page explique comment sont fabriqués les mots de passe, comment
on peut les attaquer et quelle résistance ils peuvent avoir. Cette page
peut vous aider à mieux comprendre comment choisir les bons mots de
passe.
1. Les attaques2. Les algorithmes de cryptage3. La composition des mots de passe4. Le bon mot de passe
1. Les attaquesPour mesurer l'efficacité des
mots de passe, nous devons considérer plusieurs niveaux
d'attaques possibles. Ceux-ci correspondent à différents types de
hackers et aux moyens qu'ils ont à leur disposition.
Les méthodes principales de pénétration des systèmes ainsi que les profils types de hackers sont décrits ci-dessous.
1.1. Les méthodesParmi les méthodes les plus courantes nous trouvons:
Cracking
Le système est pénétré en
exploitant une faille de la sécurité. Si l'algorithme d'encryption
utilisé n'est pas très évolué, il est possible de trouver les mots de
passe ou les clés en utilisant par exemple l'algorithme inverse. Il est
aussi possible de modifier le code du programme afin de ne plus avoir à
introduire de mot de passe. Les innombrables jeux piratés témoignent de
l'efficacité de cette méthode.
Les
programmes actuels se protègent de telles attaques en utilisant dans
leurs algorithmes des fonctions mathématiques dont l'inverse est (pour
l'instant ;-)) difficilement calculable. Comme par exemple la
factorisation en nombres premiers de très grands nombres (utilisé par le
système
RSA notamment).
Si le cracking est trop difficile, le hacker peut passer à la méthode "password guessing".
Password guessing
Ou "deviner les mots de
passe". Le hacker utilise un programme testant systèmatiquement les mots
de passe les plus courament utilisés. Il s'agit des mots des
dictionnaires ainsi que de leurs dérivés. Par exemple le programme teste
le mot "password", mais également ses dérivés: "p@ssword", "passw0rd",
"pass_word", etc. ainsi que les combinaisons de ceux-ci.
Afin de pouvoir tester ces
combinaisons, le hacker doit se procurer une copie du fichier contenant
les mots de passe. Il peut ensuite tester tranquillement les
combinaisons sans être en liaison directe avec le système attaqué.
Si le "password guessing" n'aboutit pas, le hacker continue avec la "brute force".
Brute force
Ou "force brute". Il s'agit
en fait d'une extension de la méthode "password guessing". Le programme
teste dans ce cas toutes les combinaisons possibles. Afin d'aboutir on
mise sur la rapidité du système de piratage (calculé en nombre de
combinaisons testées par seconde), sur la chance et sur le fait qu'au
moins un utilisateur utilise un mauvais mot de passe.
La probabilité qu'une telle
méthode aboutisse est donnée par le temps que mettrait la machine de
piratage pour tester la moitié de toutes les combinaisons possibles. A
ce moment là il y a une chance sur deux pour que le mot de passe ait été
découvert.
Man in the middle
Ou "homme au milieu". Il
s'agit dans ce cas de se procurer le mot de passe en se plaçant sur le
parcours de celui-ci ou de manière détournée. La façon la plus simple
est de se faire passer pour un administrateur et de demander simplement
le mot de passe à l'utilisateur (et ça marche plus souvent qu'on ne le
croit!). Il est également possible de payer une personne ayant accès aux
locaux (entreprise de nettoyage par exemple) pour qu'elle lise
discrètement les mots de passe inscrits sous les tapis de souris.
On peut aussi utiliser un
programme simulant le "login" du système, mais mémorisant en fait le mot
de passe que vous tapez avant de restituer le processus au véritable
"login". De tels programmes sont nommés "chevaux de Troie". D'autres
programmes comme les "sniffers" écoutent tout ce qui passe par votre
réseau. Enfin, grâce à la miniaturisation, il est possible d'installer
des micro-caméras à vote insu vous filmant lorsque vous tapez les mots
de passe au clavier.
1.2. Les hackersLes profils type des hackers peuvent être groupés par:
Hacker par accident
C'est votre collègue de
travail s'amusant sur votre PC lors de votre absence. Il essaie par
hasard le prénom de votre femme ou le nom de votre chat et pénètre votre
système. Il n'a aucune idée de la programmation et abandonne
rapidement.
Au pire des cas il a trouvé
sur le net un programme très simple d'utilisation lui permettant
certains piratages. Ce type d'attaque est en général inoffensive et vous
remarquerez l'intrusion en découvrant sur votre écran un message
moqueur vous signifiant que votre collègue est un crack et que vous êtes
vraiment stupide d'utiliser des mots de passe aussi simples.
Moyens à disposition du hacker: 0$
Niveau de danger: bas.
L'étudiant
L'étudiant tente de démontrer sa supériorité en pénétrant un système de préférence réputé inviolable (comme par exemple la
NASA, le
FBI ou la
BNS).
C'est un vrai crack. Si une
faille existe dans le système, il la trouve. C'est lui que l'entreprise
victime engagera comme responsable de la sécurité par la suite. Il
utilise des programmes élaborés tels que "
SAINT",
ainsi que des utilitaires appliquant le "password guessing" et la
"brute force". Une fois le système pénétré, il s'empressera de publier
ses résultats. Il ne fait en général pas de déguats mais prélève un
élément prouvant son exploit (comme par exemple des listes de numéros de
cartes de crédits).
Il existe également des clubs de hackers qui fourmillent d'étudiants, comme par exemple le "
Chaos Computer Club" en Allemagne.
Moyens à disposition du hacker: < 10'000$
Niveau de danger: moyen.
L'organisation
L'organisation peut être
criminelle ou étatique. Les moyens à disposition sont énormes. Le but
est de pénétrer un système déterminé afin d'y soustraire des
informations. Il s'agit par exemple d'espionnage industriel,
d'espionnage tout court ou de terrorisme.
Toutes les méthodes connues
sont utilisées ainsi que d'autres moins connues comme par exemple
l'utilisation d'appareils capables de lire l'affichage d'un écran à
distance uniquement par le rayonnement électromagnétique émis (système
TEMPEST).
On ne se rend compte d'une
telle attaque en général que trop tard, le but étant de laisser un
minimum de traces. Bien que très puissantes, ces attaques ne sont pas
les plus dangereuses pour l'utilisateur "lambda" à moins d'être
complice. Le
terrorisme est une forme d'attaque organisée.
Moyens à disposition du hacker: >1'000'000$
Niveau de danger: haut.
Le haineux ou le jaloux, ou encore le vengeur
C'est quelqu'un qui vous veut
du mal et est prêt à tout pour vous nuire. Tous les moyens sont bons
pour s'introduire dans votre système. Cette personne vous connaît, est à
même de percer vos secrets et sait ce qui vous blesse. Elle trompe
votre confiance, installe des micro-caméras, soudoie votre secrétaire ou
peut avoir recours à des professionels du piratage. Une fois dans le
système, elle utilisera les informations contre vous. (Ne regardez pas
comme ça votre collègue, je suis sûr qu'il est tout à fait correct...
:-)
Les moyens à disposition du
hacker sont cependant moins importants que lorsqu'il s'agit
d'organisations, il est donc plus facile de s'en protéger.
Moyens à disposition du hacker: de 0 à 100'000$
Niveau de danger: maximum.
Le professionel
Le professionel sait qu'il
peut vivre de ses talants de hacker. Il vole des informations afin de
les revendre, il crée des outils de piratage qu'il revend également. Il
loue enfin ses services contre rémunération.
Il n'a rien contre vous
personnellement, mais vous êtes un des éléments qu'il attaquera sans
état d'âme afin d'honorer son contrat. Peu importe pour lui les dégâts
qu'il peut vous occasionner. Par contre il aura tendance à rechercher le
maillon faible et est donc relativement facile à décourager si vous
offrez un peu de résistance.
Comme le professionel loue
ses services il n'est pas considérer comme un hacker dans la suite de ce
document, mais uniquement comme un outil à la disposition des hackers
cités plus haut, qui eux cherchent à atteindre un but.
Moyens à disposition du hacker: selon contrat
Niveau de danger: moyen.
2. Les algorithmes de cryptageA quoi sert un "bon" mot de passe si le système
est violable quelque soit le mot de passe choisi? L'efficacité du mot de
passe dépend en premier lieu de la non vulnérabilité de l'algorithme de
cryptage utilisé par le système. Nous n'allons pas mentionner quels
sont ces algorithmes, il vous suffit de savoir qu'il y en a de bons et
de moins bons.
Il est possible de grouper les systèmes en 2 catégories:
- Les mauvais systèmes sont ceux qui peuvent être violés relativement facilement quelque soit le mot de passe utilisé.
- Les bons systèmes sont ceux
qui utilisent des algorithmes pratiquement impossibles à violer
lorsqu'on utilise un bon mot de passe.
Le site
http://www.lostpassword.com/ offre par exemple des logiciels de recouvrement de mots de passe et
vous donne une idée sur la fiabillité de votre système. A noter que ces
logiciels utilisent la force brute sur des systèmes récents et que le
recouvrement du mot de passe n'est pas garanti. Par contre, les systèmes
moins récents possèdent certaines failles exploitées avec succès par
ces logiciels. Notez également qu'on trouve sur internet des logiciels
non commerciaux remplissant les même fonctions!
Le tableau 1 ci-dessous donne
une estimation (libre) de l'efficacité en pourcent d'un bon mot de
passe utilisé sur un bon ou mauvais système:
HackerBon systèmeMauvais système
accidentel | 100% | 50% |
étudiant | 99% | 0% |
organisation | 80% | 0% |
haineux | 50% | 0% |
Tableau 1: Efficacité des mots de passe sur de bons et mauvais systèmes
Un mauvais système est
vulnérable en peu de temps sans grand investissement quel que soit le
mot de passe. Le mot de passe ne peut protéger que d'une attaque
accidentelle si le hacker n'a pas encore vu que les outils de piratage
sont disponibles sur le net!
Un bon système permet une
protection quasiment parfaite contre les attaques algorithmiques. Par
contre il est toujours possible de découvrir le mot de passe utilisé
grâce à des caméras cachées ou des logiciels particuliers (cheval de
Troie).
Remarquez le 99% d'efficacité
contre l'étudiant. Le 1% restant est en fait la faille du système que
personne ne connaît actuellement. Vous êtes bien protégés contre une
organisation, car celle-ci se désintéresse de vous si vous offrez trop
de résistance, il y a d'autres éléments plus faibles dans
l'entreprise...
Par contre le haineux
s'acharne contre vous et va vous dérober le mot de passe par un moyen
détourné (en effet, comment lutter contre un abus de confiance par
exemple?).
2.1. La clé de codageTous les systèmes de cryptage utilisent une séquence initiale que l'on nomme clé.
En introduisant la même clé
on obtient le même résultat codé. Il est possible que la clé de décodage
ne soit pas la même que celle utilisée pour le codage, on parle alors
de système à clés asymétriques.
Si on cherche la clé de
codage, on essaie toutes les clés jusqu'à ce qu'on obtienne le même
message chiffré. Si on cherche la clé de décodage, on essaie toutes les
clés jusqu'à ce qu'on obtienne un message en clair.
Quel que soit le but, la
longueur de la clé utilisée est importante. Il est communément admis
qu'une clé (symétrique) de moins de 64 bit n'est pas infaillible (cf.
par exemple le "
DES-Challenge"
dont le message crypté avec une clé de 56 bit a été découvert en moins
de 23 heures en 1999 déjà). Un bon système ne devrait actuellement pas
utiliser de clé de moins de 128 bit, la plupart utilisent déjà des clés
de 256 bit. Au delà on touche déjà à la paranoïa (cf. plus bas).
Il est possible de traduire
directement la longueur de clé en nombre de combinaisons possibles. Par
exemple une clé de 4 bit revient à tester 16 combinaisons possibles
(2^4). Voici ce que ça donne pour quelques longueurs de clé:
Conversions de longueurs de clé en nombre de combinaisons
#bits | # combinaisons |
8 bit | 256 combinaisons |
12 bit | 4096 combinaisons |
16 bit | 65536 combinaisons |
24 bit | 16.8 millions de combinaisons |
32 bit | 4.29 milliards de combinaisons |
48 bit | 280'000 milliards de combinaisons |
56 bit | 72 millions de milliards de combinaisons |
64 bit | 18 milliards de milliards de combinaisons |
128 bit | 340 milliards de milliards de milliards de milliards de combinaisons (340 suivi de 36 zéros) |
256 bit | est-ce bien utile de le dire? Ca doit faire quelque chose comme 115'579 suivi de 72 zéros ;-) |
Bien entendu, le fait de
connaître la longueur du mot de passe est une information utile pour
pénétrer un système. Mais le hacker ne connaît à priori pas cette
longueur. Cela revient pour lui à tester toutes les combinaisons pour 1,
puis 2, puis 3, puis 4, etc... caractères.
3. La composition des mots de passePlusieurs éléments ont une influence directe sur l'efficacité du mot de passe:
- le nombre de caractères différents utilisés
- le nombre de caratères composant le mot de passe
- la durée de vie du mot de passe
- le nombre de systèmes pour lesquels le même mot de passe est utilisé
On peut chiffrer l'influence de chacun de ces éléments.
3.1. Nombre de caractères différents utilisés Un mot de passe peut comporter les caractères suivants, donnés dans le tableau 2 (ceci dépend du système!):
CaractèresNombre
alphabet minuscule (a..z) | 26 |
alphabet majuscule (A..Z) | 26 |
chiffres (0..9) | 10 |
caractères spéciaux | 30 (peut varier) |
maximum (tous les caractères ASCII) | 256 |
Tableau 2: nombre de caractères différents composant le mot de passe
Il est possible de calculer la longueur de clé
équivalente suivant les types de caractères utilisés. Cela revient à
déterminer le nombre de bit nécessaires au codage du nombre total de
caractères différents (on peut coder par exemple 4 caractères différents
en utilisant 2 bit: 00, 01, 10 et 11). En utilisant tous les caractères
du code ASCII, c'est-à-dire 256, nous savons que nous pouvons coder
cela sur 8 bit (2^8=256).
Le tableau 3 ci-dessous donne la longueur de clé
équivalente par rapport au nombre de caractères différents (arrondi à un
chiffre après la virgule). La formule utilisée est:
Longueur de clé équivalente = log(nbr de caractères)/log(2) |
Caractères choisis parmiNombre total de caractèresLongueur de clé équivalente pour un seul caractère
Chiffres | 10 | 3.3 bit |
Lettres maj. ou min. | 26 | 4.7 bit |
Lettres maj. ou min. et chiffres | 36 | 5.2 bit |
Lettres maj. et min. | 52 | 5.7 bit |
Lettres maj. et min. et chiffres | 62 | 5.9 bit |
Lettres maj. et min., chiffres et caractères spéciaux | 92 | 6.5 bit |
Tous les codes ASCII | 256 | 8 bit |
Tableau 3: Longueur de clé équivalente pour un seul caractère
3.2. Nombre de caractères composant le mot de passe Bien sûr nos mots de passe ne sont pas composés
d'un seul caractère. Le tableau 4 donne la longueur de clé équivalente
(en bit) suivant les caractères choisis du tableau précédent et pour des
mots de passe de 2, 4, 6, 8, 10, 12, 15 et 20 caractères.
Le calcul se fait en multipliant la longueur de clé
trouvée précédemment par le nombre de caractères (en effet, cela revient
à placer côte à côte les séquences de bit à tester):
246810121520
Chiffres | 6.6 | 9.9 | 19.8 | 26.4 | 33 | 39.9 | 49.5 | 66 |
Lettres maj. ou min. | 9.4 | 18.8 | 28.2 | 37.6 | 47 | 56.4 | 70.5 | 94 |
Lettres maj. ou min. et chiffres | 10.4 | 20.8 | 31.2 | 41.6 | 52 | 62 | 78 | 104 |
lettres maj. et min. | 11.4 | 22.8 | 34.2 | 45.6 | 57 | 68.4 | 85.5 | 114 |
Lettres maj. et min. et chiffres | 11.8 | 23.6 | 35.4 | 47.2 | 59 | 71.5 | 88.5 | 118 |
Lettres maj. et min., chiffres et caractères spéciaux | 13 | 26 | 39 | 52 | 65 | 78.3 | 97.5 | 130 |
Tous les codes ASCII | 16 | 32 | 48 | 64 | 80 | 96 | 120 | 160 |
Tableau 4: Longueur de clé équivalente selon le nombre et le type de caractères utilisés
Le tableau 4 montre en outre quelles sont les longueurs
de clés considérées comme mauvaises en rouge (de 0 à 44 bit), en jaune
sont les clés offrant une certaine sécurité mais n'étant pas
infaillibles (de 45 à 63 bit) et en vert les clés que l'on peut
considérer comme efficaces actuellement (de 64 bit et plus). A noter que
l'efficacité dépend également de la durée de vie du mot de passe!
Il est également possible de chercher le nombre de
caractères nécessaires pour obtenir une longueur de clé déterminée pour
chaque cas. Le tableau 5 donne le nombre de caractères nécessaires pour
obtenir une longueur de clé équivalente de 48, 56, 64, 128 et 256 bit
(arrondi au nombre entier supérieur):
48 bit56 bit64 bit128 bit256 bit
Chiffres | 15 | 17 | 20 | 39 | 78 |
Lettres maj. ou min. | 11 | 12 | 14 | 28 | 55 |
Lettres maj. ou min.et chiffres | 10 | 11 | 13 | 25 | 50 |
Lettres maj. et min. | 9 | 10 | 12 | 23 | 45 |
Lettres maj. et min. et chiffres | 9 | 10 | 11 | 22 | 43 |
Lettres maj. et min., chiffres et caractères spéciaux | 8 | 9 | 10 | 20 | 40 |
Tous les codes ASCII | 6 | 7 | 8 | 16 | 32 |
Tableau 5: nombre de caractères nécessaires pour atteindre une longueur de clé déterminée
Les colonnes en jaune indiquent des longueurs de clé
offrant une certaine sécurité mais non infaillibles, en vert les
longueurs offrant une bonne sécurité (il faut cependant toujours tenir
compte de la durée de vie du mot de passe!). En convertissant la longeur
de clé en nombre de combinaisons vous avez peut-être une meilleure idée
de ce que ces valeures peuvent signifier.
3.3. Durée de vie du mot de passeFixer la fréquence à laquelle on change les mots de
passe permet d'augmenter considérablement leur efficacité. Imaginez que
vous changiez chaque jour de mot de passe, il faudrait une machine de
piratage drôlement puissante pour tester toutes les combinaisons
possibles en 24 heures!
Actuellement, des logiciels de piratage standards sont
capables de tester environ 1'000'000 de combinaisons à la seconde
suivant le type d'algorithme et la puissance de la machine. Les systèmes
basés sur le hardware (puces dédiées au décryptage) permettent quant à
eux de tester plusieurs millions de combinaisons à la seconde.
Le tableau suivant donne des ordres de grandeur de puissances de calcul pour différents types d'attaques.
Type d'attaque | Description | Combinaisons par seconde
|
Standard | Attaque effectuée sans connaisances particulières et sans matériel spécifique, uniquement avec des outils libres | 1 million
|
Concentrée | Utilisation de processeurs graphiques (GPU) et tables pré-caculées (Rainbow Tables) | 500 millions
|
Distribuée | Attaque distribuée sur Internet avec la mise en parallèle de 1'000'000 d'ordinateurs | 1'000 milliards
|
Top500 | Puissance de calcul du plus puissant ordinateur de la planète (http://www.top500.org, statistique novembre 2010). | 2'570'000 milliards
|
Tableau 6: puissances de calcul pour différents types d'attaques
3.4. Nombre de systèmes pour lesquels le même mot de passe est utilisé Qui ne le fait pas? Il existe tellement de systèmes
pour lesquels un mot de passe est exigé qu'il est pratiquement
impossible de choisir pour chacun un mot de passe différent. Mais en
utilisant le même mot de passe pour plusieurs systèmes on se trouve
confronté au principe de la chaîne:
Une chaîne est aussi solide que son maillon le plus faible |
Et il en va de même avec les mots de passe. Admettons
que vous utilisiez le même mot de passe pour votre accès au réseau de
l'entreprise, pour accéder à gmail et pour votre bancomat. Admettons que
le système du réseau soit un bon système, de même que celui du
bancomat.
Par contre lorsque vous vous connectez à gmail, le
traffic non sécurisé http laisse passer votre mot de passe en clair.
N'importe qui interceptant le traffic découvre le mot de passe. Cette
personne est dès lors en possession du mot de passe d'accès au réseau de
votre entreprise ainsi que du code de votre carte bancaire! On peut
donc chiffrer très simplement l'efficacité d'un mot de passe utilisé sur
plusieurs systèmes:
Efficacité du mot de passe utilisé sur plusieurs systèmes = efficacité du mot de passe utilisé sur le moins bon système |
3.5. Efficacité réelleL'efficacité réelle se trouve en multipliant
l'efficacité propre du mot de passe par l'efficacité du moins bon des
systèmes pour lesquels le mot de passe est utilisé.
Vous pouvez calculer vous même les longueurs
nécessaires et la résistance des mots de passe avec notre calculateur de
mots de passe:
4. Le bon mot de passePffffoouuuiiii! Vous vous en sortez? C'est bien joli
toutes ces formules, mais en langage clair, c'est quoi un bon mot de
passe? Voici quelques règles pour choisir de bons mots de passe:
- Utilisez des mots de passe comprenant des caractères choisis de manière aléatoire, qu'on ne peut déduire en utilisant les mots du dictionnaire.
- Adaptez la complexité du mot de passe à la qualité du
système utilisé. Il est inutile d'utiliser des mots de passe de 10
caractères si le système est mauvais.
- Utilisez des mots de passe différents pour chaque bon système.
Vous pouvez utiliser éventuellement le même mot de passe pour tous les
autres systèmes, bien que si c'est possible mieux vaut utiliser partout
un mot de passe différent. Attention: évitez absolument d'utiliser le même mot de passe pour un bon et un mauvais système!!!
Choisissez ce qui vous est le plus confortable: soit
des mots de passe longs que vous changez rarement, soit des mots de
passe courts que vous changez fréquement. Dans tous les cas, vérifiez la
véritable efficacité en utilisant les formules ci-dessus.
Oui, mais comment? Pour ma part j'utilise la
carte PaTHword depuis 10 ans. Je ne peux que vous la conseiller!