web-dev-qa-db-fra.com

Générateur de mot de passe combinant des mots réels

Je me suis inspiré de ce webcomic xkcd:

Le sujet est également abordé ici: https://www.ted.com/talks/lorrie_faith_cranor_what_s_wrong_with_your_pa_w0rd

Maintenant je me demande:
Comment créer un mot de passe sur quatre mots de dictionnaire aléatoires sans en utilisant le l'Internet?

5
dessert

L'aspect informatique

Utilisez une méthode fournissant suffisamment d'entropie alias aléatoire, souvent mesurée en bits.

Acceptez le premier choix offert à partir du processus aléatoire. Sinon, l'entropie diminue (souvent plus que vous ne le pensez) et votre niveau de sécurité sera plus bas.

L'aspect humain

Considérant l'aspect humain, il est important que vous puissiez

  • acceptez

  • rappelles toi

  • épeler

les mots du mot de passe/phrase secrète.

Afin de préserver le caractère aléatoire, l’entropie, il est très important d’accepter le premier choix proposé et la liste de mots peut faire la différence.

L'utilisation d'une grande liste de mots donne plus d'entropie par mot, mais vous ou les utilisateurs du groupe, dont vous gérez la sécurité informatique, refusez d'utiliser le premier mot de passe/phrase secrète proposé. Votre nom, ville ou autres données personnelles peuvent être sélectionnés dans la liste de mots dans un cas extrêmement rare, mais le plus souvent vous pourriez être offensé par un mot politique, ethnique, religieux, sexuel ou généralement grossier. Bien sûr, si vous aimez de tels mots, vous pouvez les ajouter à votre propre liste Word ;-) mais ne les forcez pas sur d'autres personnes.

Cela facilitera l’acceptation, la mémorisation et l’orthographe du mot de passe/phrase secrète si vous utilisez une liste des mots les plus courants, où les mots sont sélectionnés pour cet usage particulier .

Créez vous-même une liste de mots

Vous pouvez créer une telle liste vous-même (et dans votre propre langue, et supprimer des mots avec des caractères spéciaux, car ils pourraient causer des problèmes avec certains logiciels).

Le shellscript suivant pruner pourrait vous aider. Vous n'obtenez que des mots en minuscules, ce qui facilite la frappe (les caractères spéciaux sont supprimés) et uniquement des mots dans l'intervalle [4,10] lettres (ni trop court, ni trop long). Mais il n'y a pas de tri de ces fichiers en fonction de leur facilité d'acceptation. Vous avez besoin d'autres informations pour supprimer les mots peu communs, difficiles et potentiellement offensants, ou vous pouvez le faire manuellement.

_#!/bin/bash

LANG=C

for wordlist in \
$(find /usr/share/dict/ /usr/lib/python3/dist-packages/xkcdpass/static -type f -size +10k) \
$(ls -1 Word-list.txt 2> /dev/null)
do
# prunedlist="${wordlist##*/}"
 prunedlist="${wordlist//\//_}"
 prunedlist="${prunedlist/.txt}-pruned.txt"

 echo "source:  $wordlist"
 echo -n "Total number of words in list:              "
 < "$wordlist" wc -l

 echo "target:  $prunedlist" 
 echo -n "Used lower case words ( 4 < length < 10 ):  "

 < "$wordlist"  tr -d '\015'| \
 grep '^[a-z]\{4,10\}$' | \
 tee "$prunedlist" | \
 wc -l
 echo "-------"
done
_

Le shellscript trouvera les listes de mots par défaut ainsi que les listes de mots pour xkcdpass et cracklib, si elles sont installées.

Maintenant, vous pouvez exécuter votre ligne de commande shuf pour tester les listes de mots élagués,

_$ for i in *pruned*; do echo "$i:";shuf -n4 "$i"| awk NF=NF RS= OFS=' ';echo "-----";done
_

mais je préférerais xkcdpass.

Télécharger une liste de mots

Vous pouvez télécharger une telle liste (vérifiez qu’elle se compose de mots uniques et qu’elle est suffisamment longue, au moins 2048 mots = 2 ^ 11 mots, ce qui correspond à 11 bits d’entropie).

Le téléchargement, la vérification et l'utilisation d'un tel fichier sur Internet devraient être sûrs. Comme d'habitude, vous ne devez utiliser que des sites Web fiables.

L'important pour la sécurité n'est pas les mots eux-mêmes, mais que vous laissiez laisser un processus aléatoire (par exemple un dé) ou un bon processus informatique pseudo-aléatoire sélectionnez les mots . Ne modifiez pas le processus aléatoire en sélectionnant ou en modifiant manuellement le mot de passe.

À ceci page wiki d'aide d'Ubuntu: La méthode XKCD - xkcdpass vous pouvez trouver un

Liste de mots personnalisée - 'Word-list.txt'

Lignes de commande utiles avec xkcdpass

Décidez ce qui fonctionne le mieux pour le niveau de sécurité dont vous avez besoin dans votre cas particulier,

  • nombre moins élevé de mots étranges et compliqués
  • plus grand nombre de mots communs et faciles

Cela peut varier selon les personnes (et les groupes de personnes, si vous envisagez de définir une stratégie ou un outil personnalisé pour une organisation).

Vous pouvez laisser xkcdpass calculer des bits de façon aléatoire alias entropie en ajoutant l'option de verbosité -V. Ces exemples utilisent la liste de mots par défaut et la liste de mots personnalisée de la page d’aide Ubuntu _Word-list.txt_,

_xkcdpass -V -n 3
xkcdpass -V -n 4 --min 4 --max 10 -d . -w Word-list.txt
_

Utilisation du fichier Word par défaut: nombre inférieur de mots étranges et compliqués

_# Normal security level at home, entropy = 45 bits;

$ xkcdpass -n 3
demeanour basely extrude

# Next security level, entropy = 60 bits:

$ xkcdpass -n 4
metal cottager advocacy soursop

# High security level, entropy = 76 bits:

$ xkcdpass -n 5
hostile impounder Caledonia ramie Goddard

# Very high security level, entropy = 91 bits:

$ xkcdpass
ambrosia Cossack vivify Barbudan royal Campinas
_

Veuillez noter qu'il s'agit du paramètre par défaut. Mais le niveau de sécurité n'est très élevé que si l'utilisateur

  • peut accepter le premier mot de passe/phrase secrète proposé,
  • peut s'en souvenir sans un autocollant Post-it sur le moniteur/ordinateur portable (ou autre "raccourci"),
  • peut l'épeler sans un autocollant post-it sur le moniteur/ordinateur portable (ou autre "raccourci").

Utilisation d'un fichier Word personnalisé: plus grand nombre de mots communs et faciles

_# Normal security level at home, entropy = 47 bits:

$ xkcdpass -n 4 --min 4 --max 10 -d . -w Word-list.txt
sharp.hockey.steal.backyard

# Next security level, entropy = 59 bits:

$ xkcdpass -n 5 --min 4 --max 10 -d . -w Word-list.txt
initially.assistant.barely.framework.regional

# Next security level, entropy = 71 bits:

$ xkcdpass -n 6 --min 4 --max 10 -d . -w Word-list.txt
snake.food.dress.perception.club.waste

# High security level, entropy = 83 bits:

$ xkcdpass -n 7 --min 4 --max 10 -d . -w Word-list.txt
stand.mentor.know.cream.automatic.treatment.effect
_
4
sudodus

Les dictionnaires installés localement sont stockés dans /usr/share/dict/, par exemple:

$ ls -1 /usr/share/dict/
american-english
british-english                                                                                                          
cracklib-small                                                                                                             
README.select-wordlist                                                                                                  
words                                                                                                                    
words.pre-dictionaries-common

Ici, les deux premiers sont intéressants, ces dictionnaires sont de simples listes de mots avec un mot par ligne. Nous pouvons utiliser shuf pour générer 4 lignes aléatoires à partir de l'une d'elles (et awk pour remplacer les nouvelles lignes par des espaces):

shuf -n4 /usr/share/dict/american-english | awk NF=NF RS= OFS=' '

Voici quelques exemples de résultats:

contributions autumn's catalepsy's hemline's
footlights Levi's awfuller rascals
fogies flavoring preregistering requital's
Coleman's cartel halfpennies Williamson
étude's maintainers reviler's dapperest
pizazz Galahads McDowell derby
corroborate bureaucracies anchovy meager
filet Tawney feudalistic backstabbing
Beatriz sitcom surpasses guttural's
warehouse's unfamiliarity's Ashlee's sanguinary
5
dessert

Il y a probablement beaucoup d'implémentations de générateur de mot de passe XKCD:

  • xkcdpass , disponible dans le package xkcdpass, Python (ne semble pas utiliser de code CSPRNG)

    _$ xkcdpass
    baroque viand blindfold hooch notion ravening
    $ xkcdpass -n4
    useless elated liveable overfly
    _
  • xkcd-password , module NodeJS
  • des dizaines de sites
  • diceware , qui suit un processus similaire, mais utilise des sites Web
  • ...

Choisissez votre poison.

Regarde aussi:

3
muru

S'il vous plaît ne faites pas ça.

  • Peut-être que certains outils ne font que deviner les mots de passe en utilisant des caractères, mais d’autres devineront bientôt plusieurs mots courants s’ils ne le font déjà.
  • Si vous vous souvenez de vos mots de passe, vous les réutilisez (peut-être avec des variantes) pour différents sites. Si vous avez 30 comptes sur Internet, je parie qu'au moins un de vos mots de passe est compromis chaque année. Quelqu'un avec votre mot de passe d'un site va l'essayer avec des variantes de vos autres comptes. Ainsi, votre mot de passe horseBatteryStapleLinkedIn permet à quelqu'un de deviner que votre mot de passe Gmail est horseBatteryStapleGoogle, horseBatteryStapleGmail, horseBatteryStapleLiamg (Gmail épelé à l'envers). Si vous pouvez y penser, quelqu'un d'autre peut aussi.

Je sais que c'est pénible, mais utilisez plutôt un gestionnaire de mots de passe. Faites-le générer des mots de passe uniques et aléatoires pour chaque site. Si vous êtes paranoïaque comme moi, vous pouvez changer quelques caractères dans le mot de passe suggéré au cas où l'algorithme (pseudo) aléatoire du générateur serait compromis. J'aime KeePassX avec la base de données sauvegardée dans DropBox, mais LastPass est plus facile à utiliser pour certaines personnes. Il existe également de nombreux gestionnaires de mots de passe payants.

Bonnes nouvelles

Le cerveau humain est doué pour imposer l'ordre, même lorsqu'il n'y en a pas. Vous pouvez vous souvenir de personnages aléatoires en les fixant jusqu'à ce que vous perceviez un ordre dans le chaos. Il n'y a pas d'ordre. C'est ce que votre cerveau fait. Par exemple:

bJbRpZ2S9

Signifie quelque chose pour vous. Si vous le tapez assez souvent, vous obtiendrez quelque chose comme ceci pour vous en souvenir:

black Jack beyond Re post Zaps 2 Surly 9's

Vous pouvez éventuellement vous souvenir de 2 ou 3 mots de passe principaux de cette façon. Un pour votre système d'exploitation et un pour votre gestionnaire de mots de passe. C'est tout ce dont vous avez besoin.

P.S. Lorsque vous utilisez un gestionnaire de mots de passe, imprimez régulièrement vos mots de passe et mettez-les dans une enveloppe inviolable, dans un coffre-fort, pour ne pas les perdre. Idéalement où vos proches peuvent les obtenir si quelque chose vous arrive, comme un coffre-fort.

2
GlenPeterson