Question:
Les caractères non clavier rendent mon mot de passe moins sensible au forçage brutal?
jnm2
2011-06-19 03:58:37 UTC
view on stackexchange narkive permalink

Je peux mettre des caractères dans mon mot de passe pour lesquels il n'y a pas de touches sur un clavier. Sous Windows, Alt + #### (avec le pavé numérique) insère le caractère du code que vous saisissez.

Lorsque je mets cela dans un mot de passe, cela garantit-il à peu près qu'il ne sera jamais forcé brutalement ? Je ne suis probablement pas le premier à y penser, mais ai-je raison de deviner que les attaquants ne jugeront jamais utile de vérifier les caractères non clavier? Est-ce même quelque chose dont ils sont conscients?

Si tel est le cas, avec un seul caractère non clavier quelque part dans votre mot de passe, vous n'aurez jamais à vous soucier de garder le reste du mot de passe fort.

N'oubliez pas que le jeu de caractères * que vous * avez sur votre clavier n'est pas le même que celui que * j'ai * sur mon clavier ... ce qui n'est pas le même que ce que les Européens ont sur * leurs * claviers ... et les Britanniques sont encore plus différents des autres. Pourtant, c'est une idée intéressante, d'autant plus qu'il y a * des * caractères qui ne sont sur aucun clavier - il y a même des caractères "non imprimables".
C'est un truc mignon, mais ne le laissez pas vous rendre trop sûr de votre sécurité globale. Votre compte est-il le seul moyen d'accéder à vos données? Existe-t-il un autre compte administratif sur votre ordinateur? Comment le protocole Remote Destop est-il protégé?
@this.josh, je pense qu'il est clair que cela ne concerne que la force du mot de passe, et non la sécurité globale. Pourtant, c'est une mise en garde correcte, bien qu'elle s'applique à la plupart des questions ici ...
@AviD Les réponses actuelles ne prennent en compte que les tables arc-en-ciel, où le véritable forçage brutal essaie toutes les entrées possibles. L'utilisation d'un caractère non clavier ne présente aucun avantage contre une véritable attaque par force brute. Donc, je voudrais répondre non, mais je pense que la probabilité d'une véritable attaque par force brute par rapport à la probabilité d'une attaque de table arc-en-ciel est faible. Donc mon compromis était de dire une belle astuce, mais attention.
@this.josh: Ce que je demande, c'est si quelqu'un inclurait un caractère non clavier dans sa force brute?
@jnm2 - si vous étiez une cible qu'ils voulaient, et qu'ils pensaient que vous utilisiez des caractères non clavier, ou que vous aviez déjà utilisé d'autres caractères, alors oui. Mais de manière réaliste - vous devez être une cible très souhaitable, car cela augmentera beaucoup le temps :-)
Auraient-ils jamais soupçonné que j'utilisais des caractères non clavier? Quelqu'un d'autre?
@jnm2 - ils le font maintenant;)
Ils le seront, cependant, il y en a un nombre limité disponible si vous considérez que c'est une très mauvaise idée d '«échapper» les caractères du mot de passe, et les implémentations SSO peuvent avoir des règles concernant les plages de jeux de caractères. Les mots de passe plus longs aident, la casse mixte aide. Tout cela est assez futile maintenant, nous pouvons louer des milliers de noyaux à l'heure ou à la minute. La réponse n'est pas nécessairement de ne pas être le "fruit de la pêche", mais de trouver un autre moyen en dehors des mots de passe.
Sûr - non, moins sensible - définitivement! Si j'étais un pirate informatique, je ne gaspillerais pas de puissance de traitement pour craquer des mots de passe dont les signatures sont probablement utilisées par moins de 1% des utilisateurs.
Utilisez-vous Windows? Si c'est le cas, je peux brancher un lecteur flash en cours d'exécution: pogostick.net/~pnh/ntpasswd/ et me connecter sans avoir à forcer brutalement votre mot de passe. Cryptez vos données séparément de Windows (n'utilisez pas le cryptage intégré). Passez à un système d'exploitation plus sécurisé pour une sécurité réelle (et ne dites pas que j'ai besoin de Windows) si vous avez vraiment besoin de Windows, exécutez-le dans VirtualBox ou VMWare ou quelque chose de similaire (vous pouvez couper complètement Windows et utiliser Wine), ne doublez pas le démarrage et détruisez votre sécurité nouvellement trouvée.
Neuf réponses:
#1
+29
this.josh
2011-06-20 10:48:52 UTC
view on stackexchange narkive permalink

Quand je mets ceci dans un mot de passe, est-ce que cela garantit quasiment qu'il ne sera jamais forcé brutalement?

Une attaque par force brute sur un mot de passe a tendance à se produire de deux manières: soit un attaquant obtient une base de données de mots de passe hachés, soit un attaquant tente de se connecter à un système en direct avec un nom d'utilisateur (ou un autre identifiant de compte) et un mot de passe. Une méthode courante d'attaque des bases de données de mots de passe hachés consiste à utiliser un ensemble précalculé de valeurs et de hachages appelé table arc-en-ciel. Voir Que sont les tables arc-en-ciel et comment sont-elles utilisées? Une table arc-en-ciel n'est pas une attaque par force brute pure car elle utilise moins que le domaine complet des entrées possibles. Puisqu'une véritable force brute utilise une attaque toutes les entrées possibles, qu'il s'agisse d'une attaque sur une base de données de mots de passe hachés ou d'une connexion système en direct, aucune sélection de jeu de caractères ou combinaison de différents ensembles ne fera aucune différence dans une attaque par force brute. Les véritables attaques par force brute sont rares. Les attaques de table arc-en-ciel sont plus courantes et l'utilisation d'une valeur d'un ensemble inhabituel sera une défense efficace contre de nombreuses attaques de table arc-en-ciel.

Ai-je raison de penser que les attaquants ne jugeront jamais utile de vérifier les caractères non clavier? Est-ce même quelque chose dont ils sont conscients?

Il y a des attaquants qui utiliseront des ensembles d'entrées inhabituels pour essayer d'attaquer des mots de passe, mais je soupçonne qu'ils sont rares. Tout attaquant raisonnablement sophistiqué a pensé à des choses comme les caractères non clavier, et la plupart prennent la décision économique de s'attaquer aux cibles les plus faciles. Il existe de nombreuses cibles avec des mots de passe médiocres et faibles, donc les attaquants conçoivent des attaques pour ces mots de passe faibles. Donc, oui, de nombreux attaquants (mais pas tous) considèrent que les mots de passe forts ne «valent pas leur temps».

avec un seul caractère non clavier quelque part dans votre mot de passe, vous n'aurez jamais à vous soucier garder le reste du mot de passe fort.

Non. La force est une mesure ou une résistance aux attaques. Si votre mot de passe est un seul caractère non clavier, il est plus faible qu'un mot de passe de 33 caractères minuscules. La longueur en bits est une mesure importante de la force du mot de passe. Bits au lieu de caractères, car les calculs cryptographiques comme les hachages sont effectués en bits et non en caractères. Un jeu de caractères, comme le jeu de caractères non clavier, n'est qu'un élément dans la création de mots de passe forts, il n'est pas fort en soi.

L'élégance d'une réponse courte et concise est montrée ici, bien dit tj.
Bonne réponse. Aussi, @jnm2 wrt force des jeux de caractères vs longueur (et brutforcability), voir ma réponse sur [Quelle est la fiabilité d'un vérificateur de force de mot de passe?] (Http://security.stackexchange.com/q/2687/33)
Qu'en est-il de [~ 200 000] (https://stackoverflow.com/a/3770541/1397555) caractères?Ou `/ 1000` pour [~ 2000] (https://gist.githubusercontent.com/ivandrofly/0fe20773bd712b303f78/raw/9e68c4067c886dc2428820c09fd2e36df16bf69d/Unicode%2520table),` / 2` (temps moyen avant la force brute)encore (supposons d'autres restrictions arbitraires) = espace de 500 caractères? 12 caractères dans cet espace ont [~ 244 nonillion] (http://www.wolframalpha.com/input/?i=500%5E12) permutations.Beaucoup irréalisable (en supposant qu'une distribution de caractères suffisamment aléatoire dans une chaîne vainc l'heuristique et force une force brute)?Ou qu'est-ce que je manque?
Si cela aide, j'ai vu une grande variété de caractères non clavier dans certaines grandes listes de mots de passe, ainsi que presque toutes les listes de mots de passe non anglais.De plus, [Hashcat mask attack] (https://hashcat.net/wiki/doku.php?id=mask_attack) prend en charge --hex-charset, permettant à tout attaquant d'utiliser n'importe quelle valeur hexadécimale pour son masque / force brute / markov /etc.tentatives.
#2
+19
Ori
2011-06-19 05:02:22 UTC
view on stackexchange narkive permalink

Donc, parce que je devais savoir, j'ai généré une table arc-en-ciel NTLM en utilisant le caractère non imprimé alt 0160 (et non représenté par le clavier) 0161-0164. Le tableau a reconnu le caractère non imprimable en hexadécimal.

enter image description here

La table a pu reconnaître le caractère non imprimé après avoir vidé le hachage. (C'était un compte factice avec un mot de passe de 4 caractères à des fins de démonstration)

Cela ressemble à quelque chose comme:

enter image description here

Donc, même si ce n'est pas impossible, je n'avais rien dans ma boîte à outils qui allait reconnaître cela. La plupart des gens avec des tables arc-en-ciel sont soit de la source communautaire, soit ont une raison spécifique de les créer.

J'ai rarement vu des gens utiliser ces caractères, mais il est parfaitement logique de créer quelques tableaux supplémentaires à inclure en fonction de l'engagement: £ ¥ ¡et quelques autres signes de ponctuation qui ne sont utilisés que dans non langues anglaises. La recherche sur les claviers du monde entier pour les personnages les plus courants et la recherche de personnages qui ne sont pas représentés dans l'US-104 va me donner un bon départ. Mais encore une fois, ce jeu de tables lorsqu'il est fait est basé sur 1 chose: l'utilisation courante. Si ce n'est pas souvent fait, il est probablement plus facile de trouver un autre moyen de contourner le contrôle.

Pour parler d'une force brute basée sur une entrée directe, la même chose s'applique. Quiconque l'inclut dans le jeu de caractères pour l'entrée peut le faire. Ce n'est tout simplement pas normal de le faire.

Donc, d'une manière détournée, ce que je dis, c'est que oui, cela le rend moins sensible au forçage brutal, mais pas impossible.

- Modifier -

Pour une perspective de nombres réels sur la génération de table:

Le jeu de caractères de base que j'ai empilé pour NTLM tient dans un lecteur de 750 Go les nombres I ' Je l'ai fait si je voulais en créer un nouveau: (supérieur + inférieur + nombre + caractères d'impression = environ 96 caractères)
Durée de génération 9 j 22 h (si trop élevé, augmenter le nombre de tables)
Chaîne unique count 6,094,373,862
Taille de la table 90,81 Gio (97,509,981,789 Bytes)
Taille totale 726,51 Gio (780 079 854 310 octets)

Ce n'est pas optimal, mais à titre de comparaison, les mêmes paramètres (en fait un peu plus de paramètres 8 tables au lieu de 4 en utilisant rtc) sur l'impression complète + non impression + ensemble ascii sans clavier (191 caractères) équivaut à (avec compression)
Temps de génération 395 y (si le nombre de tables est trop élevé)
Nombre de chaînes uniques 4,823,766,839,375
Taille de la table 57,03 Tio (62 708 968 911 909 octets) Taille totale 14,20 PiB (15 990 787 072 536 668 octets

Essentiellement 2 ordres de grandeur de plus si vous utilisez tout l'espace de caractères ascii que les fenêtres accepteront comme entrée de mot de passe. Je devrai attendre un peu pour ces 20 pétaoctets Seagate avant de s'engager sur la voie de cette table. Et les processeurs doivent accélérer si je veux que la table se termine avant que 8 générations d'entre moi aient vécu et moururent.

£ est très certainement utilisé en anglais, ce qui est le symbole de la livre sterling, la monnaie en, eh bien, en Angleterre.
Cela est-il également vrai pour les caractères qui n'ont généralement aucune représentation sur _aucun_ clavier, tels que U + 202E (remplacement RTL) ou U + 1F34C ()?
#3
+16
john
2011-06-19 06:18:50 UTC
view on stackexchange narkive permalink

Un attaquant n'a qu'à étendre le jeu de caractères qu'il utilise pour forcer brutalement n'importe quel mot de passe, quels que soient les caractères qu'il contient. Cela dit, plus ce paramètre est grand, plus il a besoin de temps à passer.

La recommandation habituelle est que si vous ajoutez des lettres minuscules, des majuscules, des chiffres et des symboles, le tout en ascii, le jeu de caractères que vous utilisez est suffisamment grand pour empêcher suffisamment le bruteforcing. Si vous allez au-delà de l'ensemble ascii, vous pouvez également regarder des caractères grecs ou russes - la chose unicode non imprimable et aléatoire est un peu trop loin à mon avis.

Vous pouvez le faire bien sûr, mais il y a un risque: sinon: toutes les applications, et en particulier les sites et les bases de données, ne sont pas compatibles avec l'encodage UTF, ou des choses différentes de l'iso-8859-1. Cela signifie que votre mot de passe peut ne pas être accepté par une application / un site, ou pire encore, être accepté mais être gâché sur le chemin de la base de données, de sorte que vous ne puissiez pas le vérifier. Malheureusement, toutes sortes de bizarreries peuvent survenir lorsque vous fournissez une entrée non-ascii à une application qui ne l'attend pas, en particulier dans les champs de nom d'utilisateur et de mot de passe.

Droit dessus. Et l'application peut changer au fil du temps - mettre à niveau une bibliothèque ou une base de données ou autre - et casser votre mot de passe. De nombreuses applications ont déjà des restrictions sur les jeux de caractères, et par exemple n'autorisez pas '=' et d'autres restrictions stupides indiquant une mauvaise programmation. Il n'est pas trop difficile d'obtenir un mot de passe résistant à la force brute, même avec des caractères imprimables simples, mais il doit être relativement long, comme indiqué dans d'autres questions ici.
#4
+10
Thomas Pornin
2012-11-25 09:45:00 UTC
view on stackexchange narkive permalink

Utiliser Alt + #### (quatre chiffres) équivaut (pour la résistance aux attaques) à avoir les quatre chiffres comme caractères de mot de passe, là où vous ajoutez votre "caractère spécial". Les chiffres dans les mots de passe ne sont pas une chose totalement nouvelle.

"Les attaquants ne le considéreront jamais" est la base de toutes les faiblesses. Les attaquants le prendront en considération; ils y ont même pensé avant vous. Si vous comptez sur la stupidité des attaquants, vous ne vaincrez que des attaquants stupides - ceux qui sont les moins dangereux de toute façon.

Sur une note plus pratique, les caractères spéciaux vous rendront la vie plus difficile lorsque vous essayez pour utiliser un appareil qui n'offre pas la saisie de caractères Alt (par exemple un mot de passe sur un site Web, auquel vous souhaitez accéder depuis votre smartphone).

#5
+8
Piskvor left the building
2011-06-23 19:44:17 UTC
view on stackexchange narkive permalink

Comme cela a été dit dans d'autres réponses, la force du mot de passe réside dans sa taille. Vous pouvez appuyer sur les touches Alt + 0 + 1 + 6 + 0 pour obtenir un caractère inhabituel, mais vous n'obtenez alors qu'un caractère sur 5 frappes. En prenant ceci comme une estimation approximative, vous pouvez obtenir 12, peut-être 13 bits d'entropie à partir d'un caractère spécial; vous auriez pu en obtenir plus (au-dessus de 20) si vous aviez utilisé ces 5 frappes sur des caractères alphanumériques.

En bref, il est plus utile d'utiliser 5 caractères sur le clavier à la place - vous en avez beaucoup plus pour votre argent , si vous pardonnez le jeu de mots.

#6
+2
wbg
2016-01-01 23:20:16 UTC
view on stackexchange narkive permalink

En supposant un support UTF-8 solide (éliminant ainsi d'autres problèmes d'encodage), un écueil potentiel des mots de passe non-ASCII est la normalisation Unicode.

Les caractères comme ö peuvent être représentés de plusieurs manières, c'est-à-dire comme un seul ö caractère ou comme deux points de code: o+¨

En général, les ordinateurs ne les considèrent pas comme égaux, même s'ils le sont vraiment.

En conséquence, une implémentation naïve qui ne normalise pas la saisie du mot de passe avant la vérification peut ne pas accepter le mot de passe pässwørd si vous parvenez à le saisir sous une forme normalisée différemment lorsque vous définissez le mot de passe .

#7
+1
Vladislavs Dovgalecs
2015-06-24 01:37:53 UTC
view on stackexchange narkive permalink

Si la sécurité est basée uniquement sur une croyance / hypothèse qu'un attaquant n'utilisera pas la technique X, c'est une sécurité assez faible. Il faut supposer qu'un attaquant le sait.

Comme aux échecs, faites le coup le plus fort comme si votre adversaire connaissait vos intentions.

#8
+1
Dmitry Grigoryev
2015-06-29 19:58:36 UTC
view on stackexchange narkive permalink

Si l'extension du jeu de caractères utilisé dans votre mot de passe le rend plus fort, il rend également la saisie difficile et ne garantit pas à 100% contre les attaques.

Plus important encore, l'utilisation de caractères rares vous expose situations où vous connaissez le mot de passe mais ne pouvez pas l'utiliser. Imaginez ne pas pouvoir utiliser un outil de récupération car il n'est pas compatible avec votre mot de passe, ou ne pas pouvoir consulter votre boîte aux lettres depuis l'ordinateur ou le smartphone de quelqu'un d'autre.

#9
  0
Jason
2016-10-31 22:37:18 UTC
view on stackexchange narkive permalink

En résumé: contre une attaque de style dictionnaire / arc-en-ciel, ils ont tendance à être TRÈS sûrs car un seul personnage non typable vous fera sortir de tous les schémas courants, mais contre une véritable attaque par force brute, ils peuvent être beaucoup plus faible que d'utiliser vos 2 à 5 autres frappes de manière normale. Donc, la stratégie optimale à mon avis est de les combiner. Faites en sorte que votre mot de passe ait trop de caractères pour être découvert par une véritable attaque par force brute dans un délai humain raisonnable, et incluez un caractère Alt-% pour laisser tomber la «popularité» de votre mot de passe au-delà de ce qui est considéré comme une supposition éclairée valable. Cela peut rendre votre mot de passe aussi sûr qu'une chaîne réellement générée de manière aléatoire, mais plus facile à mémoriser. Assurez-vous simplement que le caractère aléatoire que vous utilisez n'est pas susceptible d'avoir une signification dans un langage de programmation ou un ensemble de clavier étranger tel que ces caractères amusants vraiment bas sur la table alternative: ☺, ☻, ♥, ♦, ♣, ♠, ◘, ↕, etc.

* "Assurez-vous simplement que le caractère aléatoire que vous utilisez n'est pas susceptible d'avoir une signification dans aucun langage de programmation" * Il n'y a aucune raison technique moderne de s'inquiéter à ce sujet.
Cela dépend de l'endroit où vous utilisez ce mot de passe.Par exemple, un mot de passe de base de données peut fonctionner lorsque vous le saisissez dans votre portail utilisateur attendu, mais ensuite être interrompu lorsque vous décidez ultérieurement de le transmettre via une chaîne de connexion.
Pouvez-vous clarifier la signification de * "chaîne de connexion" *?


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...