Un mot de passe sécurisé est très vite compliqué à retenir...





0x01. MOT DE PASSE v1.0 (1990-2005)



Initialement le mot de passe n'était pas tant là pour protéger un secret, mais plus pour éviter des reconfiguration par des utilisateurs non autorisés. Il me semble que c'est pour cette raison que les mots de passe de cette génération était relativement simples :


admin
minda
toor
password
2017
123456

Cela fait un alphabet essentiellement composés de chiffres et de lettres minuscules, soit 36 octets : 26 (alphabet en minuscule) + 10 (chiffres).
Le nombre total de combinaises à tester est donc de :


($nombre_de_combinaisons) puissance ($longueur_totale_du_mot_de_passe) 

Soit :


(26+10) ** (8) = 2821109907456

Sachant qu'une attaque hors ligne sur un hash, peut générer jusqu'à 300 000 mot de passe par secondes





0x02. MOT DE PASSE v2.0 (2005-2017)



Le critère communément rencontré est “un mot de passe sera composé d'au moins une majuscule, une minuscule, un chiffre et un symbole et d'au moins 8 caractères”.


P@ssw0rd
Mot2P@ss


On notera que l'effet psychologique de tels critères dans l'usage courant, implique un raisonnement simple et schéma prédictifs :
- Un nom, un prénom, un surnom : généralement une information facile à (re)trouver en lien
- date de naissance : autrement dit un nombre de 4 à 6 chiffres
- symbole : souvent une ponctuation trouvée dans la langue française courrante : ,?;.:"'-


Canigou1999:)
Nicolas2312!
Paris75012*

Si on décompose un mot de passe par une majusucule (26 symboles) + jusqu'à 9 minuscules + jusqu'à 6 chiffres + un symbole. Sachant que dans ces cas là, les symboles sont souvent limités à la ponctuation courante : ,?;.:-=+*! ... il ne reste plus que


26 ** 1 + 26 ** 9 + 10 ** 6 + 14 = 5429504679016 combinaisons

Ce qui n'est que 2 fois plus que le nombre de combinaisons de sa version précédente...

Tandis que lorsque la politique de sécurité s'applique sur les serveurs, il n'est pas rare d'y trouver des phrases relativement simples. Si retrouver le mot de passe est bien plus complexe, la réflexion associé ralentit considérablement la vitesse de frappe ... favorisant ainsi le shoulder hacking (voir par dessus l'épaule), l'oubli et donc l'écriture sur un post-it, ou pire l'envoie par mail. Malgré ces légers défauts, cette méthode est parmi les plus sécurisée :


- Vive le printemps : V!veLpr1temp$
- C'est plus facile ainsi : C'e+f@c!le16

Ainsi pour un mot de passe de cette complexité avec une longueur de 12 caractères, on a comme nombre de possibilité, ce qui est


(62+10+22) ** 12 = 475920314814253376475136 combinaisons possibles
./files/password/password_classic.png




0x03. MOT DE PASSE V3.0 (2017-)



Une phrase faisant office de mot de passe est plus sécurisée qu'un mot de passe complexe, car la longueur est déterminante dans le nombre de combinaisons plus que la longueur du mot de passe. Ainsi un mot de passe rien qu'avec des lettres de 20 caractères est plus robuste qu'un mot de passe avec uniquement des lettres, des chiffres et des symboles sur 9 caractères :


(26+26)**20        = 20896178655943101411324274803736576
(26+26+10+22) ** 9 = 475920314814253376475136
Les passphrases sont donc la meilleur réponse, sans compter que leur ponctuation fait office de symboles, et peut contenir des majuscules (prénom, non propre, début de phrase).
personne ne saura mon mot de passe!
Mes donnees sont a moi et rien qu'a moi
J'ai la flème
Je ne dirai à personne que mon code PIN est 1234!

Les lettres accentuées peuvent ne pas être intégrées, mais cela est bien plus efficace contre les bruteforces traditionnels. Les lettres accentuées accessibles facilement étant "éèàçà"


# Python

>> print len("é")
2

>> nb_lettres_accentuees = len("éàçèà")

>> L = len("Mes données sont à moi et rien qu'à moi")-1-1-1  # -1 à chaque lettre accentuée

>> print L
39

>> (26+26 + nb_lettres_accentuees) ** L
301383430010359672764335507198862359588547763580119919935583003957193L
./files/password/password_passphrase.png




0x04. ACCENTS ET ALT (2016)



Un script générateur de mot de passe présent sur ce site permet des mots de passe très complexes sur l'article Générateur de mot de passe
Pour ce qui est des accents, sous macOS, voici sa liste :


ãõ ñ âêîôû äëÿüïö àèàìò ç
ÃÕ Ñ ÂÊÎÔ,Û ÄËŸÜÏÖ ÀÈÙÌÒ Ç


Pour déterminer le nombre de caractères uniques parmi ces accents, utilisons l'outil xxd :


$ printf "ãõñâêîôûäëÿüïöàèàìòç"|xxd
00000000: c3a3 c3b5 c3b1 c3a2 c3aa c3ae c3b4 c3bb  ................
00000010: c3a4 c3ab c3bf c3bc c3af c3b6 c3a0 c3a8  ................
00000020: c3b9 c3ac c3b2 c3a7                      ........                                  ..

$ printf "ÃÕÑÂÊÎÔ,ÛÄËŸÜÏÖÀÈÙÌÒÇ"|xxd
00000000: c383 c395 c391 c382 c38a c38e c394 c39b  ................
00000010: c384 c38b c5b8 c39c c38f c396 c380 c388  ................
00000020: c399 c38c c392 c387                      ........                                   ..

# Soit un total de 1 (c3) + 20 (lettres accentuées minuscules) + 20 (lettres accentuées majuscules)
# = 41 octets


De plus, il existe des caractères issus de l'alphabet mathématique, via la touche "alt". Ainsi le classique "P@ssw0rd", deviendrait sous GNU/Linux ou macOS :


P  (alt+à)  (alt+shift+s)  (alt+shift+s)  w  0  (zéro)  r  (alt+d)

Pø∑∑w0rd


Sous Windows, il n'y a pas ces symboles accessible directement depuis le clavier, par contre avec des touches spécifiques aux PC français, il est tout de même possible de bien compliquer le mot de passe :


P  à  s  §  w  (alt+$)  r  ²
Pàssw¤r²


Cet méthode requiert des caractères étendus codés sur plusieurs octets, en ISO-8859-1 ou Windows-1252 (encodage par défaut de Windows version française) :


# Windows:

¤ = "\xa4\xc2"
² = "\xb2\xc2"
§ = "\xa7\xc2"


Pour les caractères alternatifs sous macOS & GNU/Linux (potentiellement sous *BSD, et OpenIndiana)


# macOS:

ø = "\xc3\xb8"
∑ = "\xe2\x88\x91"



0x05. PERIMETRES D'ATTAQUE


Voici donc les alphabets :


26 lettres majuscules ................: ABCDEFGHIJKLMNOPQRSTUVWXYZ
26 lettres minuscules ................: abcdefghijklmnopqrstuvwxyz
52 lettres ...........................: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
10 chiffres ..........................: 1234567890
12 symboles de ponctuation ...........: ,?;.:!*-+/
34 symboles au total .................: ,?;.:/=+%£$€*-_)°!§'"&@#()){}[]\<>
4 caractères accentués simple d'accès : èàçà
40 caractères accentués ..............: ãõñâêîôûäëÿüïöàèàìòçÃÕÑÂÊÎÔ,ÛÄËŸÜÏÖÀÈÙÌÒÇ
96 caractères alternatifs ............: •ë“‘{¶«¡Çø}—æÂê®?? Úºîœπô€‡Ò∂ƒfiÌÏȬµÙ@≤‹≈©◊ß~∞…÷?? Ÿ´„”’[å»ÛÁØ]–ÆÅÊ‚™ŸªïŒ∏Ô,¥Ω∑∆·flÎÍË|Ó‰#≥›⁄¢√∫ı¿•\±

Et les regex associés aux mot de passe :



Mot de passe  |  Regex de l'alphabet                                 |  Longueur de l'alphabet
--------------+------------------------------------------------------+--------------------------
     v1.0     |  [a-zA-Z0-9]{4,8}                                    |  62 = 26 + 26 + 10 
     v2.0     |  [a-zA-Z0-9@$\.\-_:=,;\?!\|\(\)"\']{8,14}            |  78 = 26 + 26 + 10 + 16
     v3.0     |  [a-zA-Z0-9,?;.:!*+/\-]{8,52}                        |  69 = 26 + 26 + 10 + 12
     ALT+     |  (\xc3)?[a-zA-Z0-9[:punct:]\xa3-\xa7\x83-\x87]       |  232 = 52 + 10 + 34 + 40 + 96

Un mot de passe efficace ressemblaire donc à :


À mes 23 j'ai commencé le hackinfi! 

Et sous Windows :


C'est avec 5€ que j'ai commencé le hacking² 



0x06. UN MOT SUR LA BIOMETRIE



À l'heure oà les services et la communication est omniprésente les mots de passe deviennent une vraie tare. L'identification avec un vecteur biologique, interne et unique à chacun, devient alors une alternative, car moins sujet au vol ou à la perte. Si je suis sceptique dans le devenir de ce type d'authentification à cause des extrêmes que cela peut engendrer elle est néanmoins une bonne alternative aux mots de passe.
Bien qu'Apple y ait mis un pas de plus avec la reconnaissance faciale et la reconnaissance digitale, elle n'est pas encore bien démocratisée. Au jour d'aujourd'hui, l'authentification double facteurs reste la plus populaires enfin surtout pour les grand services sur Internet.





0x07. POUR RESUMER



Le site de la CNIL résume très bien et en image, les conseils pour un bon mot de passe :
https://www.cnil.fr/fr/les-conseils-de-la-cnil-pour-un-bon-mot-de-passe

Je me permet d'y ajouter comme recommendation, d'utiliser un trousseau, Keepass, (ou autres) et d'y mettre un mot de passe, facile à retenir mais avec des symboles non usuels (accents, symboles mathématique, ...).

Cet article pourrait se résumer tout simplement ainsi : rien que les lettres accentués augmentent considérablement la complexité des mots de passe, et un trousseau sécurisé évite oubli et réflexion lors d'authentifications fréquentes.




   =>   Écrit par : Nicolas, le 30 août 2017


 
Mots clés :  
  security 
  
  password 
    >   Articles connexes :

/tmp et /var/log en noexec sur macOS



Durcissement de Windows



Générateur de mot de passe



4385336