J'ai actuellement un réseau configuré avec le cryptage WPA2 et AES, le mot de passe comporte 8 caractères mais a été généré de manière aléatoire et ne contient aucun mot du dictionnaire. Cependant, je suis préoccupé par l'augmentation de la puissance des ordinateurs et leur capacité à craquer les poignées de main, en tant que tel, j'envisageais d'augmenter la longueur.
Je suis conscient que je peux aller jusqu'à 63 caractères si j'étais extrêmement paranoïaque, mais malheureusement je dois taper ce mot de passe dans Android téléphones et autres appareils, donc je préfère le garder raisonnablement court pour lui permettre d'être facilement tapé.
Un mot de passe aléatoire de 16 caractères serait-il suffisant pour sécuriser un réseau crypté WPA2? Quelle est la recommandation actuelle pour les longueurs de mot de passe, en particulier pour les réseaux sans fil et quelle longueur de mot de passe serait suffisante pour protéger mon réseau contre une attaque standard?
Oui, 16 caractères est plus que suffisant , s'ils sont générés aléatoirement à l'aide d'un PRNG de puissance cryptographique. Si vous utilisez des minuscules, des majuscules et des chiffres, et si vous les générez de manière vraiment aléatoire, un mot de passe à 16 caractères a 95 bits d'entropie. C'est plus que suffisant. En fait, 12 caractères suffisent ; cela vous donne 71 bits d'entropie, ce qui est également plus que suffisant pour la sécurité contre toutes les attaques que les attaquants pourraient tenter d'attaquer votre mot de passe.
Une fois que votre mot de passe comporte 12 caractères ou plus, il est extrêmement peu probable qu'il soit le maillon le plus faible de votre système. Par conséquent, il est inutile de choisir un mot de passe plus long. Je vois des gens qui recommandent d'utiliser un mot de passe de 60 caractères, mais je ne pense pas qu'il y ait une base rationnelle pour le faire. À mon avis, l'utilisabilité est très importante: si vous rendez le mécanisme de sécurité trop difficile à utiliser, les gens seront ennuyés et pourraient être plus réticents à l'utiliser à l'avenir, ce qui n'est pas bon. Un mécanisme sécurisé qui n'est pas utilisé ne fait de bien à personne. C'est pourquoi je préfère choisir un mot de passe plus court, comme 12 caractères ou 16 caractères, car il est parfaitement adéquat et plus utilisable qu'une bête monstrueuse de 60 caractères.
Soyez prudent lorsque vous choisissez le mot de passe. Vous devez utiliser un PRNG cryptographiquement solide, comme /dev/urandom
. Par exemple, voici un script simple que j'utilise sous Linux:
#!/bin/sh
# Make a 72-bit password (12 characters, 6 bits per char)
dd if=/dev/urandom count=1 2>/dev/null | base64 | head -1 | cut -c4-15
N'essayez pas de choisir vous-même vos mots de passe. Les mots de passe choisis par l'homme sont généralement plus faciles à deviner qu'un mot de passe vraiment aléatoire.
Une mise en garde très importante: il existe également d'autres problèmes, au-delà de la longueur du mot de passe. Il est très important que vous désactivez WPS , car WPS a des trous de sécurité majeurs . De plus, je vous recommande d'utiliser WPA2; évitez WPA-TKIP et n'utilisez jamais WEP.
Cette question a été posée à plusieurs reprises auparavant, un mot de passe de 12 caractères comportant des chiffres, des signes, des lettres minuscules et majuscules prendra très longtemps à être forcé. Si votre mot de passe n'est pas présent dans un dictionnaire, vous devrez alors utiliser une attaque bruteforce. Nous pouvons faire une estimation de la quantité de mots de passe essayés:
Si vous avez 94 caractères possibles (ASCII) et votre mot de passe est de 12 caractères. Vous aurez alors:
94^12 = 475 920 314 814 253 376 475 136 possibilities
Avec un GPU moderne (je l'ai trouvé sur Tom's Hardware):
Vous pouvez obtenir environ 215 000 suppositions par seconde. Donc, si nous cherchons combien de temps cela prendra:
475920314814253376475136/215000/3600/24/365/1000= 70190000
Millenia pour deviner votre mot de passe (en fait la moitié de ce montant statistiquement).
Il n'y a vraiment pas de réponse unique à cela. Le court terme se résume à ceci: si vous voulez un bon équilibre entre sécurité et convivialité qui soit qui vous convient, rendez le mot de passe aussi long et complexe que vous le pouvez.
Pour moi personnellement, je n'ai aucun scrupule à définir un PSK de 63 caractères généré aléatoirement sur mes points d'accès. Oui, il peut être difficile d'entrer dans des appareils intelligents et autres. Mais la chose que je ne cesse de me rappeler est que je n'ai besoin que de l'entrer ne fois par appareil. L'ajout de nouveaux appareils à mon réseau est une occurrence relativement rare et insignifiante, par rapport à la durée d'utilisation réelle du réseau et à l'amélioration de la sécurité d'un mot de passe quasiment incassable.
Si vous ne pouvez pas vivre avec la saisie d'un mot de passe généré au hasard de 63 caractères une fois par appareil sur votre réseau, réduisez-le jusqu'à ce que vous arriviez à quelque chose de plus facile à digérer par vous-même. Peut-être trouver un moyen judicieux de créer un mot de passe long, apparemment aléatoire, qui vous convient réellement. Selon la distance que vous souhaitez parcourir pour sécuriser votre réseau, vous pouvez également envisager des ajouts de défense en profondeur tels que le filtrage des adresses MAC, le partitionnement du réseau (par exemple: pare-feu entre Wi-Fi et LAN) et VPN.
En ce qui concerne les recommandations générales de mot de passe (Wi-Fi et autres), voici ma suggestion:
J'ai écrit un petit script en Perl pour vous en bas. Vous devriez également pouvoir l'interpréter et obtenir votre réponse avec une calculatrice.
N'oubliez pas que si votre mot de passe est dans un dictionnaire ou suffisamment court pour produire des tableaux Rainbow, la force effective est beaucoup plus faible, ce qui serait calculé autrement. Benchmark PBKDF2 pour déterminer la vitesse à laquelle un mot de passe peut être testé (Lucas souligne 215 000 avec du matériel graphique lourd). Notez que les tableaux Rainbow seront un facteur si vous avez un nom SSID commun ("linksys"), mais pas si vous avez quelque chose de beaucoup plus obscur.
#!/usr/bin/Perl
#Number of possible ASCII characters.
#All lowercase letters is 26, upper and lower case is 52, numbers adds 10, etc.
#Assume equal weighting and distribution.
$charRange = 0;
$length = 0;
$entropy = log($charRange)/log(2);
#Operations per second -- how fast a password can be tested
#using the given algorithm
$opspersec = 0;
$strength = $entropy * $length / $opspersec / 2;
print "On average, it will take $strength seconds to crack your password."
Il y a un minimum de 2 à 3 façons de résoudre ce problème.
SI les données du réseau sont protégées par un certain type de réglementation (HIPAA, PCI, etc.), j'irais par dessus bord et ferais tout cela. Je suis sûr qu'il y a plus mais c'est tout ce à quoi je peux penser du fond de mon esprit.
Quelle est la marque/le modèle de votre routeur?
Obligatoire xkcd référence.
Ce qui compte vraiment, c'est la quantité d'entropie que contient votre mot de passe. Le problème est "l'entropie par rapport à quoi"? Si votre mot de passe se trouve dans le dictionnaire de 100 mots de l'attaquant, il contient moins de 8 bits d'entropie même s'il utilise un large éventail de types de caractères, par exemple Pa $$ w0rd. La règle générale que j'ai entendue est que l'anglais a environ 3 bits d'entropie par lettre, donc si vous ne faites pas quelque chose de stupide, alors vous devriez être d'accord avec ciel (64/3) = 22 lettres.
Quoi qu'il en soit, 8 caractères ne suffisent pas, car D.W. expliqué.