Question:
Est-ce que "frapper mot de passe" est une bonne idée?
gronostaj
2015-02-19 13:39:58 UTC
view on stackexchange narkive permalink

Avec la frappe de port, vous devez "frapper" sur des ports spécifiques dans un ordre défini pour exposer un port sur lequel le service est en cours d'exécution.

Que diriez-vous de frappe de mot de passe ? Par exemple, vous avez trois mots de passe: A , B et C . Aucun d'entre eux n'est correct en soi, mais saisis un par un dans cet ordre, ils vous accorderont l'accès.

Quelques scénarios pour rendre cette idée plus claire:

Scénario 1.

  • Vous: Mot de passe A.
    • Serveur: Mot de passe non valide.
  • Vous: Mot de passe B.
    • Serveur: Mot de passe non valide.
  • Vous: Mot de passe C .
    • Serveur: Mot de passe accepté .

Scénario 2.

  • Vous: Mot de passe A.
    • Serveur: Mot de passe non valide.
  • Vous : Mot de passe C.
    • Serveur: Mot de passe non valide.
  • Vous: Mot de passe B .
    • Serveur: mot de passe non valide.

Scénario 3.

  • Vous : Mot de passe A.
    • Serveur: Mot de passe non valide.
  • Vous: Mot de passe B .
    • Serveur: mot de passe non valide.
  • Vous: Mot de passe B.
    • Serveur: non valide mot de passe.
  • Vous: Mot de passe C.
    • Serveur: Mot de passe non valide.

Scénario 4.

  • Vous: Mot de passe A.
    • Serveur: Non valide mot de passe.
  • Vous: Mot de passe A.
    • Serveur: Mot de passe non valide.
  • Vous: Mot de passe B.
    • Serveur: Mot de passe non valide.
  • Vous: Mot de passe C .
    • Serveur: Mot de passe accepté .

Je ne vois aucun inconvénient de cette méthode sur une connexion régulière par mot de passe unique. De plus, cela rend les attaques par dictionnaire exponentiellement plus difficiles avec chaque mot de passe ajouté.

Je me rends compte que c'est la sécurité par l'obscurité et n'abolit pas le besoin de mots de passe forts. La séquence de mots de passe elle-même est aussi forte qu'une concaténation de mots de passe utilisés. La sécurité supplémentaire dans cette méthode provient d'une procédure étonnamment complexe.

Est-ce une bonne idée? Est-ce une meilleure idée que le mot de passe classique?

Du point de vue des utilisateurs, c'est très frustrant. si vous dites que vous avez mal orthographié l'un des mots de passe. Il sera difficile de savoir ce qui a mal tourné A, B ou C.
Qu'est-ce que cette méthode obscurcit que les mots de passe traditionnels ne font pas, et pourquoi pensez-vous qu'elle est plus sûre? Il me semble que ce n'est pas plus sûr que si vous n'aviez qu'un seul mot de passe qui était la concaténation de «A», «B» et «C». En même temps, je ne vois pas pourquoi ce serait moins sûr.
@Justin à moins que l'attaquant ne sache que j'utilise ce type de protection supplémentaire, il n'essaiera chaque mot de passe qu'une seule fois et ne trouvera probablement jamais la séquence de mots de passe correcte.
les commentaires ne sont pas destinés à une communication étendue.
@RoryAlsop Je suis un utilisateur régulier de StackOverflow, mais nouveau sur ce site. Je suis confus par votre réponse et je me demande si elle s'applique à tous les sites SE ou uniquement à celui-ci. D'après ce que je peux voir, votre commentaire a suivi exactement 3 commentaires qui semblent (à mes yeux) être sur le sujet et contribuer à la discussion. Cela semble différent de ce qui est attendu sur SO. Est-ce que je manque quelque chose? (Remarque: pas du tout une question sarcastique.)
@mbm29414 Je suis également confus, et un utilisateur normal de SA. Le mieux que je puisse comprendre, c'est que certains commentaires ont été supprimés et Rory Alsop a laissé un commentaire expliquant pourquoi. Quant à savoir si c'est une bonne idée ou non par rapport à un mot de passe classique, cela dépendrait probablement de votre système de «frappe». Est-il cumulatif jusqu'à ce qu'il passe ou est-il réinitialisé à chaque fois? Fondamentalement, cela ne vous laissera pas entrer tant que vous n'aurez pas A, B et C dans cet ordre, et A, B, B, C ne devraient pas fonctionner. Je ne sais pas comment vous implémenteriez cela, mais si vous allez le faire, cela semble la voie la plus sûre.
@gronostaj il ne faut pas s'appuyer sur [la sécurité par l'obscurité] (https://en.wikipedia.org/wiki/Security_through_obscurity)
Si votre objectif est d'empêcher les attaques par dictionnaire, ce qui ne va pas avec une politique de mot de passe - http://security.stackexchange.com/questions/3248/recommended-policy-on-password-complexity De plus, si vous avez déjà * une politique de mot de passe appropriée résistant aux attaques de dictionnaire (c'est tout le but de la politique) alors pourquoi la nécessité d'ajouter cette procédure extra obscure de "frappe de mot de passe".
Comme @tar l'a observé, vous ne devriez pas vous fier à la sécurité par l'obscurité. Et en passant, ce ne serait pas très obscurci; comment votre utilisateur saura-t-il continuer à insérer des mots de passe? Parce que vous leur dites. Maintenant cela ne semble pas une information très difficile à obtenir après tout! :)
Un mot de passe normal consiste simplement à «frapper un personnage». Il faut mettre certains personnages dans le bon ordre ...
mbm - de nombreux commentaires ont été supprimés.
Si vous recherchez une sécurité renforcée, il serait préférable d'utiliser une méthode d'authentification en deux étapes, par exemple envoyer un code d'autorisation à l'appareil mobile ou à l'adresse e-mail d'un utilisateur.
Copie possible de [Port Knocking est-ce une bonne idée?] (Https://security.stackexchange.com/questions/1194/port-knocking-is-it-a-good-idea)
Dix-sept réponses:
Mark
2015-02-20 06:41:23 UTC
view on stackexchange narkive permalink

Le système décrit dans la question est en fait plus faible que de simplement exiger un seul mot de passe de longueur A + B + C, car il permet une classe d'attaques qui ne peuvent pas être utilisées contre des mots de passe uniques:

Dites que votre combinaison de trois mots de passe est EFG . Un attaquant peut envoyer les mots de passe ABCDEFG , en effectuant cinq attaques ( ABC , BCD , CDE , DEF et EFG ) pour le prix de deux. Le terme général pour cela est une séquence de Bruijn, et il vous permet d'attaquer n'importe quel système basé sur un état (comme une serrure numérique) en utilisant beaucoup moins d'essais qu'il n'y a de combinaisons possibles.

+1, aucune des autres réponses ne souligne que ce schéma est plus faible qu'un mot de passe normal de même longueur (totale).
Le schéma de l'OP n'a pas de faille de sécurité par définition car il n'a pas mentionné la mise en œuvre, bien que je parie que la plupart des gens l'oublieraient. +1 pour avoir noté cela. Cependant, si vous l'implémentez pour réinitialiser les variables des trois derniers mots de passe tous les trois mots de passe (donc mot de passe1, mot de passe2, mot de passe3, évaluer, effacer, répéter), cela pourrait être plus sécurisé (du point de vue de l'obscurité).
Le message mentionne que `A A B C` fonctionne, ce qui signifie qu'il y a une fenêtre déroulante des" trois derniers mots de passe "plutôt que de se réinitialiser après un groupe de trois. Ceci est suffisant pour le rendre vulnérable aux devinettes basées sur des séquences.
Je ne suis pas d'accord pour dire que le régime est plus faible. La séquence De Bruijn donne une accélération 3x, mais l'ajout de deux divisions dans le mot de passe nous donne un ralentissement `(| A + B + C | over 2)`. (Soit 28 pour un mot de passe de 6 caractères)
tylerl
2015-02-19 14:31:24 UTC
view on stackexchange narkive permalink

Du point de vue de la sécurité brute, votre mot de passe est simplement "A B C", et la force relative du mot de passe est calculée en conséquence.

Du point de vue de l'utilisateur, c'est sans doute trop difficile à utiliser. Le serveur ne donne aucune indication sur l'état actuel (cherche-t-il encore le deuxième mot de passe?) Et donc l'utilisateur ne peut pas dire quel mot de passe fournir.

Du point de vue de la défense, il y a une petite quantité de valeur ici. Les attaques par mot de passe deviennent un peu plus compliquées à réaliser et les outils d'attaque existants devront être réécrits pour s'adapter à ce schéma étrange. Cela peut suffire à convaincre un attaquant de passer à autre chose, mais si vous êtes une cible importante, cela n'aidera pas du tout.

Je suis d'accord. La sécurité doit être équilibrée avec la convivialité. Votre idée peut frustrer les utilisateurs légitimes (les personnes que vous cherchez à protéger), car il leur rend plus difficile d'accéder aux services derrière le mot de passe.
Notez également que si le serveur DONNE un statut intermédiaire "jusqu'à présent", alors les mots de passe sont en fait plus faibles que simplement "A B C". N'est-ce pas ce qui est arrivé à WPS, ou était-ce un autre protocole?
'Du point de vue de la sécurité brute, votre mot de passe est simplement "A B C" -> Je ne suis pas du tout d'accord. Comme vous n'avez aucune idée de celui que vous avez échoué, et si vous l'avez fait, vous aurez peut-être besoin de 10 octets pour stocker le premier mot de passe. Et vous n'atteindrez pas le point de le trouver. Si vous le limitez à 30 caractères, le mot de passe peut contenir 31 caractères. Et vous avez perdu votre temps. Ou l'un peut être 10, le suivant 50 et le suivant 1. Mais vous ne le saurez pas.
@kutschkem qui est exactement correct.
@IsmaelMiguel C'est exactement la même situation que d'essayer de deviner un seul mot de passe "ABC" et de ne pas savoir quel caractère individuel était erroné, ou si tous étaient faux, ou .. Il est tentant de penser que cela aide, mais ce n'est pas le cas 't.
@IsmaelMiguel Non, l'attaquant essaiera simplement ["A", "A", "A"], ["A", "A", "B"], etc. "," C "]. Il n'a pas besoin d'essayer toutes les combinaisons sur le premier champ avant de passer au second. Si je vous disais que mon mot de passe contenait trois espaces, vous ne seriez pas paralysé en essayant de comprendre ce qui précède le premier espace. Vous essayez d'abord les possibilités les plus courtes.
C'est vrai, mais tu ne le sais pas. Le mot de passe «A» pourrait très probablement être «pommes de terre frites au maïs de base», ce qui vous prendrait un ** TRÈS ** long de temps à deviner.
@IsmaelMiguel en d'autres termes, les mots de passe longs prennent plus de temps à deviner.
En fait, cela équivaut à quelque chose comme A + "[ENTER] + B +" [ENTER] "+ C, car le simple fait de taper ABC dans la première invite ne fonctionnera probablement pas. Le nombre de suppositions possibles serait le même que ABC * (LengthOfABC-1) * (LengthOfABC-2) si le schéma interdit les mots de passe de longueur nulle à n'importe quelle étape.
Pourtant, vous avez quelques caractères avant «A» (65, si je ne me trompe pas). Chacun de ceux-ci peut faire partie du mot de passe.
@IsmaelMiguel Vous pouvez continuer à être en désaccord tant que vous voulez, mais comme les membres de la communauté ont tenté de vous expliquer à travers * plusieurs * approches différentes, la force du schéma proposé est pratiquement impossible à distinguer de la concaténation des mots de passe individuels.
@StephenTouset J'accepte cela. Pour moi, dans mon état d'esprit, vu d'un autre point, c'est plus fort que de concaténer les mots de passe et d'essayer d'en trouver un seul. En fait, je dirais qu'il est presque impossible de trouver les 3 mots de passe, en fonction de leur sécurité individuellement.
Mais c'est exactement mathématiquement équivalent à concaténer ces trois mots de passe. Si votre "premier" mot de passe est "123", votre deuxième mot de passe est "456" et votre "troisième" mot de passe est "789", un attaquant doit dépenser le même effort que s'il tentait de deviner le * single * mot de passe "123456789". Avec l'argument qu'ils pourraient ne pas savoir que c'est votre schéma, cela est vrai du mot de passe lui-même; l'attaquant ne sait pas qu'il s'agit d'un mot de passe de neuf caractères (ou, de manière équivalente, de trois mots de passe de trois caractères). Ils doivent essayer toutes les combinaisons jusqu'à ce qu'ils trouvent la bonne.
Pour être plus clair, si vous envisagez de saisir ce mot de passe, votre mot de passe effectif est * littéralement * `123 456 789`. Vous pourriez affirmer qu'un attaquant ne saurait pas appuyer sur Entrée à ces emplacements précis, mais cet argument pourrait être fait pour * n'importe quel * caractère qui pourrait y être tapé. Ce ne serait pas différent si votre mot de passe était à la place "123 | 456 | 789". Demandez-vous, lorsque vous considérez l'acte littéral de s'asseoir sur un clavier et de taper ce mot de passe, ce qui confère d'une manière ou d'une autre à la touche Entrée une sécurité supplémentaire sur la touche `|`.
@StephenTouset Je suis partiellement d'accord avec vous, en théorie `123 456 789` équivaut à` 123 | 456 | 789`, mais en pratique le premier schéma nécessite 3 requêtes au serveur, tandis que le second une seule, même si tout est super rapide, la première option prend plus de temps, ce qui ajoute une sécurité supplémentaire (bien sûr, je ne l'utiliserais pas non plus)
Quelque chose comme `bcrypt` est un bien meilleur moyen de ralentir un attaquant, car cela aide également même si l'attaquant a vos mots de passe hachés. Quoi qu'il en soit, la latence de deux requêtes supplémentaires au serveur pourrait être simulée de manière triviale en appelant «sleep».
@StephenTouset J'ai également déclaré que ce n'était pas une bonne approche, en disant simplement que vous ne pouvez pas comparer une étape de demande / validation à un caractère sur le mot de passe, où serait le `sleep`?
Justin
2015-02-19 14:55:49 UTC
view on stackexchange narkive permalink

Je vais aborder quelques points ici.

Tout d'abord, supposer que l'attaquant ne connaît pas le schéma de mot de passe est une mauvaise supposition, et vous ' re correct que c'est la sécurité par l'obscurité. Si chaque utilisateur peut apprendre ce schéma de connexion, l'attaquant le peut aussi. Pour cette raison, le coup ne vaut pas mieux que s'il n'y avait qu'un seul mot de passe ABC. devine de façon exponentielle? " La réponse est non. Considérons un alphabet de longueur z et trois mots de passe de longueur a , b et c . Le nombre de mots de passe possibles pour chacun est, respectivement, za , zb et z c . Si vous voulez essayer toutes les valeurs possibles pour chaque mot de passe dans tous les ordres possibles, vous aurez besoin de za * z b * zc devine, qui est égal à z (a + b + c) . Il se trouve que la longueur du mot de passe unique ABC est a + b + c , donc le nombre des suppositions requises est également z (a + b + c) .

Il y a aussi le souci de conception que les utilisateurs seront confus et / ou frustrés par ce système, surtout s'ils ont du mal à se souvenir de leurs mots de passe. Les gens ont suffisamment de mal à se souvenir de un mot de passe pour chaque site qu'ils visitent (et c'est pourquoi de nombreuses personnes réutilisent les mots de passe). Trois mots de passe seraient encore plus difficiles à retenir, et je ne serais pas surpris que certains de vos utilisateurs utilisent la même chaîne pour les trois.

Nécessite trois soumissions de formulaire pour se connecter ralentira certainement une attaque par force brute, mais vous pouvez tout aussi bien y parvenir en ajoutant un délai dans la vérification du mot de passe côté serveur.

D'accord avec vos autres points, sauf qu'il est plus probable que l'attaquant rate la séquence en utilisant la force brute s'il ne connaît pas le schéma.
Une attaque par dictionnaire normale n'entrera probablement jamais dans A B C. La raison en est que si A ou B ou C sont essayés une fois sans succès, ils ne seront plus jamais essayés!
Vous avez raison de dire que je me suis trompé sur le scénario où l'attaquant ne connaît pas le schéma. J'ai supprimé cette phrase.
Je suis d'accord avec votre mise à jour, mais je suis presque sûr qu'en raison de la complexité, vous devrez passer de «!» à '~' (caractères ASCII) à AU MOINS trouver une combinaison possible. L'échec d'un mot de passe reviendra au mot de passe «A». Et vous échouerez trop souvent et vous ne saurez pas exactement lequel a échoué. Pour chaque caractère, vous devez passer par "!" à «~» un milliard de fois. Doublé pour chaque mot de passe. Vous avez 3 points d'entrée, chacun peut être différent et reviendra si vous en échouez un. Soit vous connaissez les mots de passe, soit vous serez verrouillé pour toujours. Jusqu'à 4 quadrillions d'années se sont écoulées (ou bien plus).
Je n'ai pas envie de faire le calcul pour savoir exactement combien d'essais ou combien de temps cela prendrait, je ne peux pas parce que je n'ai pas vraiment de nombres avec lesquels jouer, et ce n'est pas pertinent de toute façon. Je quitte cet exercice dans l'espoir de vous convaincre que ce n'est pas aussi difficile que vous le pensez: parmi toutes les valeurs possibles de _ABC_, combien d'entre elles ont la valeur correcte pour _A_ comme préfixe?
Tu n'as pas à me convaincre. Je n'arrête pas de réfléchir pour essayer de trouver un raccourci, mais tout ce que j'ai pu trouver était un mal de tête majeur. Je pense que vous frappez le bon arbre. Je ne suis pas en désaccord avec vous car il n'y a rien à redire, sauf la difficulté à deviner les mots de passe.
Vous pouvez penser que les sous-chaînes de mot de passe proviennent d'un alphabet de longueur «z» et que le mot de passe «concaténé» provient d'un sur-ensemble de cet alphabet, en particulier l'alphabet entier plus un seul délimiteur (qui représente l'envoi de la sous-chaîne).
@corsiKa: Plus la contrainte supplémentaire que le mot de passe "concaténé" doit avoir exactement deux instances du délimiteur, plus peut-être des contraintes du type "chaque sous-mot de passe doit contenir au moins un caractère spécial". . . le résultat final pourrait être que vous vous retrouvez avec * moins * trios possibles de mots de passe que s'il s'agissait simplement d'un mot de passe long.
Mike Scott
2015-02-19 14:02:30 UTC
view on stackexchange narkive permalink

C'est la sécurité par l'obscurité - si elle est largement adoptée, les attaquants essaieront trois fois. À ce stade, vous pouvez tout aussi bien n'avoir qu'un seul mot de passe, mais définir une longueur minimale de mot de passe plus longue pour vous assurer qu'il est aussi long que trois mots de passe distincts concaténés.

+1 même si l'OP déclare «Je réalise que c'est la sécurité par l'obscurité». Il vaut la peine d'ajouter qu'il s'agit de _seulement_ de sécurité par l'obscurité, sans aucun avantage par rapport à toute autre méthode. Vous pouvez permuter les champs de nom d'utilisateur et de mot de passe et garder les étiquettes identiques, ou renommer le champ de mot de passe «anniversaire», il y a un million d'options qui dérouteront les utilisateurs au nom de «sécurité». Il est clair que l'OP, tout en comprenant que cette _is_ sécurité par l'obscurité, ne comprend pas pourquoi c'est mauvais.
Quant à _why_ c'est mauvais. Si j'étais obligé d'utiliser un tel système, la première chose que je ferais serait d'écrire un script de saisie de mot de passe pour automatiser l'interface ennuyeuse. Ensuite, je vérifierais probablement le script dans mon référentiel github public.
Stephen Touset
2015-02-19 14:09:41 UTC
view on stackexchange narkive permalink

Ceci est indiscernable de votre mot de passe qui est simplement A || B || C .

Si l'attaquant ne sait pas que j'utilise le "triple mot de passe", il essaiera chaque mot de passe une seule fois et ne trouvera probablement jamais la séquence correcte. Ce n'est pas le cas pour `A || B || C`.
Si un attaquant ne connaît pas votre mot de passe, c'est `A || B || C`, il devra essayer chaque mot de passe possible une fois et ne trouvera probablement jamais la séquence correcte. Alors oui, c'est le cas. Si un attaquant a «A», «B» et «C», vous avez quand même perdu.
@Stephen votre réponse n'est pas très claire pour ceux qui ne le savent pas déjà, pouvez-vous s'il vous plaît élaborer un peu pour en faire une bonne réponse?
Même si les attaquants connaissent le schéma, il doit essayer tous les mots de passe possibles 3 fois. Si le mot de passe «A» est «123», le mot de passe «B» est «123» et le mot de passe «C» est «1234», pour atteindre ce mot de passe, vous devez essayer «0 | 0 | 0», «0 | 0 | 1 »,« 0 | 0 | 2 ». Et cela est aggravé car le serveur ne dira pas lequel est faux! Le mot de passe pourrait être «0 | 1 | 0» et vous prendriez un temps stupidement gigantesque pour le trouver.
@IsmaelMiguel La partie que vous prétendez être aggravée est tout simplement la même que l'utilisation d'une chaîne beaucoup plus longue. Exemple: supposons que A, B, C peuvent chacun être un nombre à un chiffre, 0-9. Ensuite, il y a 1000 possibilités pour A, B, C. La même chose que pour un mot de passe à 3 chiffres.
@Jean-BernardPellerin Il y a aussi l'ajout des caractères séparateurs. C'est A B C . Donc à proprement parler injecte 2 caractères séparateurs dans la séquence. La concaténation ne simule pas la * fin * de A et le * début * de B etc.
@AviD Je pense que ce résultat doit être manifestement évident. Votre mot de passe est * littéralement * maintenant `A B C`. Ils sont maintenant simplement concaténés à l'aide de la touche Retour.
@StephenTouset Je ne suis pas en désaccord, mais le fait que cela soit demandé - et quelques commentaires - prouve le contraire ... FWIW je vous avais déjà +1 ... :-)
Si j'ai les mots de passe 3 mots de passe "AB" "BC" "CD", le mot de passe concaténé est ABBCCD. Ce n’est sans doute pas équivalent, donc cette réponse est incorrecte. "A" puis "BBCC" puis "D" est un mauvais mot de passe différent dans ce schéma par exemple, mais la concaténation est la même. Les séparateurs sont la différence cruciale qui rend l'équivalence fausse.
Ce n'est pas, en ce sens A \ n || B \ n || C \ n se distingue en fait de A || B || C
Arc
2015-02-20 04:34:50 UTC
view on stackexchange narkive permalink

L'authentification à deux facteurs est plus conviviale mais plus sûre.

Sans, un Le mot de passe est encore à peine moins sûr que la frappe de mot de passe.

Un attaquant qui peut trouver votre mot de passe est susceptible de découvrir également votre système de frappe.

Choisir de frapper, c'est comme choisir un algorithme. Considérez-le comme public

Bien que les mots de passe soient sécurisés par l'obscurité, ils peuvent être remplacés par des mots complètement différents très facilement .

Cela dit, il existe des schémas qui sont quelque peu similaires à votre "frapper" mais un peu plus utiles:

  • Aléatoire demander un parmi plusieurs secrets (mots de passe, phrases, iTANs...).
    C'est beaucoup plus rapide que d'entrer tous les secrets, et est plus sécurisé car l'attaquant ne connaît que un secret à la fois (qui peut être invalidé après utilisation).
    Les chances de l'attaquant étant capable de s'authentifier est en corrélation avec le nombre relatif de secrets qu'il connaît. Pourtant, il faut que l'utilisateur connaisse tous les secrets et leurs order .
  • Input Timing , c'est-à-dire analyser les temps entre et pour tous les mots de passe caractères pendant que l'utilisateur tape.
    Ceci est plus difficile à découvrir et à simuler que de frapper et a fait l'objet de recherches à plusieurs reprises par l'IIRC. Inconvénients:

    • La durée varie légèrement à chaque fois qu'un utilisateur saisit le mot de passe, même si cela peut encore être suffisant pour distinguer les utilisateurs
    • Le timing peut même changer complètement lorsque l'utilisateur choisit de le saisir différemment, par ex. pendant la phase initiale après avoir choisi le mot de passe (l'utilisateur apprend toujours à saisir le mot de passe), ou lorsqu'il ne peut pas le saisir comme il le fait habituellement (blessures, sandwich dans une main ...)

La sécurité par l'obscurité est bonne lorsque vous pouvez modifier rapidement votre schéma d'obscurité , c'est-à-dire " changer le labyrinthe "avec peu d'effort , plutôt que le béton dont ses murs sont faits (assurez-vous que le labyrinthe ne peut pas être contourné ).

Mec, la surutilisation d'audacieux rend cela presque illisible.
Je ne dirais pas que les mots de passe sont la sécurité par l'obscurité. Chaque système sécurisé a besoin de quelque chose dont vous avez besoin pour accéder - quelque chose que vous savez, que vous possédez ou que vous êtes. Pour classer quelque chose comme sécurité par obscurité, vous devez regarder l'algorithme et non la "clé".
Je ne définis pas les mots. De [Wiktionary] (https://en.wiktionary.org/wiki/obscurity): 2. _L'état d'être inconnu; une chose qui est inconnue._ 3. _La qualité d'être difficile à comprendre; ce qui est difficile à comprendre. C'est ce à quoi les gens se réfèrent généralement de manière désobligeante lorsqu'ils parlent de "sécurité par l'obscurité", mais tout ce qui est difficile à "saisir" peut être considéré comme obscur.
fooot
2015-02-19 21:39:39 UTC
view on stackexchange narkive permalink

Le concept de port knocking ne s'applique pas vraiment directement à la connexion à des sites Web. Du moins pas dans le sens que vous avez suggéré. Avec la frappe de port, vous vous connectez à différents ports dans un certain ordre pour ouvrir le port souhaité. Dans votre exemple, vous mettez tous les mots de passe sur un seul site. Comme d'autres l'ont souligné, ce n'est pas vraiment différent de rassembler tous les mots de passe. À moins que tous les mots de passe que vous utilisez soient très longs, vous pouvez tout aussi bien les concaténer et utiliser un seul mot de passe. L'obscurité de cette méthode n'est pas non plus si utile, car quelqu'un devra la construire et quelqu'un devra savoir comment l'utiliser, ce qui suffit à un attaquant pour découvrir comment cela fonctionne. De plus, vous venez de l'expliquer au monde entier.

Au lieu de cela, vous pourriez peut-être utiliser différents sites Web pour représenter différents ports. Disons que vous essayez de vous connecter au site Web D. Lorsque vous vous connectez au site Web D, il n'affichera même pas de page à moins qu'il ne puisse voir que vous vous êtes connecté aux sites Web A, B et C, correctement et dans cet ordre. De cette façon, l'attaquant devrait non seulement déchiffrer les différents mots de passe, mais ils devraient être faits sur 3 sites différents, et utilisés dans le bon ordre pour accéder même au site D, où un autre mot de passe serait nécessaire.

Cela repose toujours sur un certain degré d'obscurité, mais cela se distingue davantage du simple partage d'un mot de passe sur un site.

+1 pour aborder le cœur du problème: le schéma proposé pour la frappe de mot de passe * ne * reproduit pas * le schéma utilisé pour la frappe de port, donc les avantages présumés ne sont pas transférés.
PiTheNumber
2015-02-19 18:12:47 UTC
view on stackexchange narkive permalink

  • Cela tromperait les attaques par force brute standard. Les attaques automatisées à partir de botnets ou d'outils simples ne fonctionneraient pas immédiatement.
  • Il pourrait être possible de tromper un keylogger de cette façon. Dans les journaux, il semblerait que l'utilisateur se soit souvenu du mot de passe au troisième essai. Si l'attaquant utilise ce mot de passe, cela ne fonctionnera pas. Mais seulement s'il ne sait pas ou ne devine pas ce qui se passe. Mais il vous possède quand même dans ce cas.
  • L'utilisateur est obligé d'utiliser plusieurs mots => mot de passe plus long.

Négatif

  • Trop compliqué pour un utilisateur normal.
  • Comme le claquement de port, c'est en partie la sécurité par l'obscurité. Si l'attaquant sait qu'il peut adapter l'attaque.

Total

Comme le port de frappe, cela n'ajoute qu'un petit avantage contre les attaques simples. Le principal avantage serait un mot de passe plus long et qui peut être appliqué plus facilement par des règles de mot de passe.

Quoi qu'il en soit, si vos utilisateurs le souhaitent, c'est quelque chose que vous pouvez faire. En fin de compte, chaque fonction de sécurité compte. Mais je ne conseillerais pas de le faire.

Eh bien, les attaques par force brute qu'il tromperait sont quelque peu inutiles de toute façon. Étant donné une limite de taux de connexion raisonnable (comme 1 par seconde), la force brute est assez futile. Une attaque hors ligne sur une base de données volée, en revanche, ne sera pas retenue car il est évident que trois mots de passe doivent être utilisés, et quels sont leurs hachages, la différence est donc négligeable.
Ogre Psalm33
2015-02-19 22:26:42 UTC
view on stackexchange narkive permalink

Juste une remarque: cette méthodologie est déjà utilisée dans les schémas de récupération de mot de passe dans certaines parties de l'industrie. Si vous oubliez votre mot de passe, vous pouvez utiliser votre adresse e-mail pour lancer une séquence de questions personnelles afin de récupérer votre mot de passe (bien que ce ne soit souvent qu'une seule question). Il est rendu plus acceptable pour l'utilisateur, en limitant généralement le contexte à une séquence de questions bien choisies qui offrent à l'utilisateur la possibilité d'utiliser (espérons-le) des réponses secrètes mais bien connues.

De plus, certaines des meilleures banques fournissent un ensemble supplémentaire de questions de sécurité si elles ne reconnaissent pas l'ordinateur à partir duquel vous vous connectez (dans le même esprit que le schéma de récupération de mot de passe susmentionné).

Par exemple:

  Entrez votre mot de passe: ***** Votre ordinateur n'est pas reconnu, veuillez répondre aux questions supplémentaires suivantes: Dans quelle ville votre mère a-t-elle grandi? *********Quel est ton film préféré? *************  

Cela peut permettre aux utilisateurs avertis de fournir des réponses assez obscures à une gamme de questions qu'ils choisissent, tout en permettant une à retenir séquence de «mots de passe». Bien sûr, les utilisateurs typiques peuvent toujours utiliser des réponses faciles à deviner pour les questions sur les "ordinateurs non reconnus", mais il incombe toujours à l'utilisateur de fournir de bons mots de passe, de toute façon.

enter image description here

Bien sûr, l'ajout de questions de sécurité, dont les réponses sont essentiellement des mots de passe dont le seul but est d'être facilement devinable par l'utilisateur, rend tout votre système plus faible que si vous n'aviez qu'un seul mot de passe. (En supposant qu'un utilisateur typique suit les instructions de l'interface utilisateur et ne choisisse pas de réponses aléatoires.) Le fardeau est partagé entre l'utilisateur et le concepteur - si votre système n'est sécurisé qu'avec un bon mot de passe de sauvegarde, informez au moins l'utilisateur d'en choisir un!
Toute banque qui utilise encore des questions de sécurité comme seule sauvegarde pourrait être «meilleure» qu'une autre banque, mais en termes de sécurité, c'est terrible. Le mien m'a en fait impressionné en faisant progressivement passer tout le monde à la nécessité d'authentifier et de prendre des empreintes vocales pour l'assistance téléphonique.
L'authentification multifacteur est certainement une meilleure option, mais malheureusement, la majorité des banques ne sont pas encore là, du moins pour ce que j'ai échantillonné. Mais même ma femme, qui n'est en aucun cas une personne technique, en savait assez (sans même que je lui dise) que lorsqu'elle a choisi la question de sécurité "Animal préféré?", Qu'elle ne devrait * PAS * mettre notre chien Fido comme réponse (elle utilise une réponse différente, plus difficile à deviner, non liée aux animaux de compagnie, dont elle se souvient facilement). Beaucoup de gens sont plus intelligents que ce que nous leur attribuons, mais malheureusement, je dois l'admettre, beaucoup ne le sont pas.
Je dois également souligner, une différence subtile dans les "mots de passe de sauvegarde", pour ainsi dire. Leur but est de rendre les réponses facilement devinables par un utilisateur * particulier *, mais difficiles à deviner par les autres (malheureusement, tout le monde ne les met pas en œuvre de cette façon: "Couleur préférée?" * VRAIMENT ??? *)
Personnellement, je déteste ce genre de système, tout d'abord je ne me souviens jamais de QUELLE question j'ai choisi. À moins que je ne les écrive ou que je ne les choisisse toujours de la même manière. En fin de compte, je mets des données aléatoires, et cela ne fait qu'augmenter le vecteur d'attaque.
@OgrePsalm33 Eh bien, une fois que vous modifiez la conception pour qu'elle soit plus sûre, vous ne parlez pas vraiment de la question de sécurité à juste titre décriée. (C'est-à-dire le type qui demande activement des informations qui pourraient probablement être trouvées en regardant leur page Facebook.) Et mon argument était que la conception d'une fonctionnalité de sécurité ne devrait pas impliquer que l'utilisateur doive faire le contraire de ce qu'on lui dit. (Par exemple, votre femme.) Jusqu'à présent, mon préféré est l'indice de mot de passe OS X, où j'utilise des synonymes des mots de ma phrase secrète, ce qui devrait suffire à me rafraîchir la mémoire; cependant cela pourrait ne pas convenir à une banque
Dewi Morgan
2015-02-21 10:33:20 UTC
view on stackexchange narkive permalink

AVANTAGES : ce système partage certains avantages avec l'authentification à deux facteurs.

1) La plupart des navigateurs et des systèmes d'enregistrement de mots de passe ne le prennent pas en charge , donc retiendra un seul des mots de passe au maximum. Donc, au moins, il ne sera pas stocké en texte clair quelque part.

2) Les personnes qui utilisent le même mot de passe partout devront utiliser au moins deux mots de passe qui ne sont pas partagés avec d'autres sites.

INCONVÉNIENTS : Le système, cependant, est globalement défectueux, et je dirais qu'il est pire que l'authentification par mot de passe unique.

1) Parce que leur préféré, protégé par mot de passe Le système de stockage de mots de passe qu'ils utilisent pour les mots de passe les plus importants ne peut pas être utilisé, il y a de fortes chances qu'ils utilisent quelque chose de moins bon pour ce mot de passe. Post-it, fichier texte, peu importe.

2) D'autres ont prétendu que c'était aussi fort que le mot de passe "ABC". Ce n'est pas. Je dirais que dans le pire des cas, il est aussi fort que le mot de passe "A".

C'est parce que moi (et l'utilisateur typique) utiliserais les mots de passe "password1", "password2", "password3" Ce système de génération de mot de passe me donne l'avantage que je peux ctrl-c, ctrl-v le mot de passe, puis tapez simplement le numéro.

Si je ne peux pas utiliser de mots de passe similaires, alors vous avez réduit la portée de mots de passe possibles que je peux avoir: plutôt que aussi sûr qu'ABC, vous n'avez plus que la même sécurité que ABD où A! = B! = C: vous avez facilité le travail du pirate en réduisant son domaine de recherche.

Et je choisirais toujours la séquence prévisible autorisée par le script de saisie du mot de passe: "Jan", "Feb", "Mar" peut-être.

Et puisque j'utiliserais une séquence naturelle , c'est probablement l'ordre qu'un pirate de mot de passe aurait dans le dictionnaire, donc une machine de craquage de mot de passe essaiera naturellement ces mots de passe dans le bon ordre et entrera directement. Tout pirate connaissant votre système absolument ordonnerait leur dictionnaire de cette manière.

3) L'autre facteur qui réduit la sécurité est que pour changer le mot de passe, vous devez maintenant changer trois champs différents. Cela découragerait beaucoup de changer leur mot de passe.

4) C'est une expérience utilisateur terrible, terrible , comme d'autres l'ont noté. À moins que vous n'ayez un public captif (employés, étudiants, etc.), vous perdrez la coutume grâce à cette approche hostile aux utilisateurs.

fluffy
2015-02-20 03:29:05 UTC
view on stackexchange narkive permalink

Comme d'autres l'ont indiqué, cela équivaut à avoir simplement un mot de passe équivalent à A \ nB \ nC ou autre. Cependant, il y a un avantage auquel je peux penser à ce système: il aide à réduire les choses de type phishing; si un système accepte le premier mot de passe au lieu d'accepter les autres, alors vous savez que le système est compromis et enregistrez simplement votre nom d'utilisateur et votre mot de passe.

Cependant, dans ce cas, il est préférable de simplement tenter de vous connecter avec un mot de passe aléatoire avant de tenter de vous connecter avec votre mot de passe réel; sinon vous venez de compromettre une bonne partie de votre mot de passe puisque maintenant le premier tiers (à peu près) a été enregistré par le système compromis.

Peter
2015-02-19 16:34:13 UTC
view on stackexchange narkive permalink

Je ne pense pas que ce soit même la sécurité par l'obscurité comme certains l'ont dit - la connexion à trois mots de passe est présentée publiquement, non? Bien sûr, il faudra du travail pour peaufiner quelques outils, mais rien de trop difficile.

Quant à la complexité de la force brute. Le nombre de possibilités est le même que d'avoir un seul mot de passe de longueur A + B + C . Donc, pour cette raison, la seule défensive que vous obtenez avec ce plan est de frustrer un peu l'attaquant au début. De plus, si le schéma devenait commun, les outils standards s'adapteraient rapidement.

La connexion à 3 mots de passe n'est pas présentée publiquement. Cela ressemble à un identifiant d'utilisateur standard, un mot de passe. Sauf à la place des identifiants {userid, password}, ​​vous disposez des identifiants {userid1, password1, userid2, password2, ...}. Vous entrez userid1, password1 et le système vous «rejette», mais enregistre secrètement que vous avez franchi l'obstacle 1. Vous entrez userid2, password2 et le système vous «rejette», mais enregistre secrètement que vous avez franchi l'obstacle 2. Lorsque vous franchissez le dernier obstacle, le système vous laisse entrer. Cela dit, je ne suis pas enthousiasmé.
@emory,, bien sûr, mais ce que je veux dire, c'est que les utilisateurs du système sont clairement conscients du schéma - donc les attaquants le seront aussi.
Si la base d'utilisateurs est petite (par exemple, juste moi), la frappe de mot de passe est obscurcie mais n'est toujours pas recommandée. Si la base d'utilisateurs est grande, alors la frappe de mot de passe est horrible. J'ai implicitement supposé que la base d'utilisateurs était petite.
Cort Ammon
2015-02-20 01:06:05 UTC
view on stackexchange narkive permalink

Comme beaucoup l'ont mentionné, à des fins d'attaque dédiée, il n'est ni plus fort ni plus facile / plus difficile à retenir qu'une concaténation de mots de passe. Cependant, il existe une valeur de sécurité des opérations (OPSEC) qui est indépendante de la force du mot de passe. Pas beaucoup de valeur, remarquez, mais en tant que personne qui passe beaucoup de temps sur le site Worldbuilding Stack Exchange, mon imagination s'est déchaînée.

Réfléchissez si vous voulez un service non être limité uniquement aux utilisateurs autorisés, mais vous voulez empêcher quelqu'un de trébucher accidentellement sur son existence. Ce n'est plus un simple problème d'entropie, mais plutôt un problème de théorie de l'information espion-espion. Votre travail consiste maintenant à minimiser le rapport signal / bruit (SNR) de toute personne qui regarde votre mot de passe. Ceci n'a plus aucun rapport avec la force du mot de passe.

Une approche serait de mettre en place un comportement factice. Donnez-lui l'impression qu'il s'agit d'une connexion pour un système différent. Seuls les comptes disposant des privilèges appropriés sont redirigés vers le contenu significatif. Vous pouvez même laisser d'autres personnes s'inscrire à votre projet factice pour permettre aux gens de fouiller et de satisfaire leur curiosité.

Cependant, nous parlons d'espionnage contre espion maintenant. Quelqu'un va se rendre compte que James Bond n'est vraiment pas du tout intéressé par un forum discutant des dernières tendances en matière de canards en caoutchouc, et commencer à indisposer. James Bond est doué pour ne pas révéler d'informations, mais à un moment donné, avec une arme à feu sur la tête de sa [dernière] petite amie, il va être suspect s'il ne révèle pas son mot de passe de forum de canard en caoutchouc au Dr NoGood. Le Dr NoGood n'est pas un imbécile; il le découvrira.

Nous avons donc configuré James avec deux mots de passe. L'un le laisse entrer dans son forum normal de canard en caoutchouc, l'autre dans le simulateur de missile nucléaire top secret. Nous ne pouvons pas ignorer la sécurité réelle des mots de passe ici. Son mot de passe de simulateur de missile nucléaire va devoir être long: aussi longtemps que la concaténation de vos trois mots de passe. Son mot de passe canard est probablement plus court. Bonne chose aussi, car quelqu'un l'a déjà vu se connecter à son compte canard. Ils savent combien de caractères commencer à forcer. Nous ne voulons pas qu'ils trouvent accidentellement le mot de passe sécurisé avant de trouver le ducky.

Donc, étant donné qu'il est toujours secret que le simulateur de missile existe, renvoyer un "mot de passe invalide" à mi-chemin découragera brute-forcers de continuer. De plus, vous pouvez faire une énorme révélation décisive lorsque James "saisit son mot de passe incorrect deux fois", avant que le mur à côté de lui ne s'ouvre soudainement pour révéler la voûte au-delà.

Pour info, le dernier système Truecrypt vous permet de créer une partition cachée où un mot de passe décrypte le lecteur pour produire des fichiers d'aspect important dont vous ne vous souciez pas réellement et un deuxième mot de passe pour décrypter une partition cachée pour les données que vous devez vraiment conserver secret. Ceci est fait pour que vous puissiez avoir un déni plausible.
Vynce
2015-02-20 03:58:12 UTC
view on stackexchange narkive permalink

"Moins il y a de pièces mobiles, moins il y a de problèmes."

En plus de ne pas apporter d'avantage notable, cette idée est plus complexe à mettre en œuvre qu'un seul mot de passe. En tant que tel, il y a plus de points de défaillance potentielle. Par exemple ...

En fonction de la façon dont il a été implémenté, cela peut permettre une attaque par refus dans laquelle Malcolm envoie le mot de passe X à intervalles réguliers. S'il chronomètre correctement de sorte qu'il interrompt une tentative légitime, le système reçoit A X B C et vous refuse l'entrée. De même, s'il envoie le mot de passe C juste après que vous ayez envoyé A B, le système le laisse entrer et pas vous.

Une attaque de temps de réponse pourrait être en mesure de comprendre que A était le premier mot de passe correct dans A B C où il ne remarquerait pas que D était le préfixe de DEF à mot de passe unique.

PressingOnAlways
2015-02-21 04:08:42 UTC
view on stackexchange narkive permalink

Pour ajouter à toutes les autres bonnes réponses, ce type de système de protection par mot de passe ne fournirait aucune protection contre les keyloggers ou les attaques man in the middle. Comme vous mettriez toujours votre mot de passe dans une séquence, le keylogger peut rejouer vos actions et toujours obtenir une autorisation. L'authentification à 2 facteurs suggérée par @Archimedix serait le moyen le plus efficace d'atténuer ce problème.

Le keylogger serait confus à cause de la soumission du mot de passe. Le keylogger devrait connaître le schéma pour ne pas se laisser berner par lui. Donc, tant que "Obscurity" était maintenu, cela fonctionnerait.
Rappelez-vous, un keylogger qui signale les mêmes triplets de mots de passe soumis encore et encore travaillerait pour dissiper l'obscurité.
Kinjal Dixit
2015-02-25 16:12:53 UTC
view on stackexchange narkive permalink

Comme d'autres l'ont mentionné, fonctionnellement, c'est la même chose qu'un mot de passe long. Pour rendre la mise en œuvre moins déroutante, elle pourrait être mise en œuvre en demandant les trois mots de passe dans le même écran.

Quelque chose de ce genre est fait par mon courtier en ligne où il demande le mot de passe du membre et le mot de passe de trading lors de la connexion. Nous devons obtenir les deux mots de passe corrects pour nous connecter. De plus, je dois changer mon mot de passe de membre tous les 10 jours environ et il y a des règles pour ne pas répéter les trois mots de passe précédents, etc.

Ma banque ( ICICI Bank) a déjà été implémentée deux mots de passe, un pour la visualisation à saisir pour se connecter et accéder aux informations, et un autre pour la transaction à saisir à chaque fois qu'une action qui entraînerait une transaction financière a été effectuée. Ma carte de débit Visa est également sécurisée par un système qu'ils appellent 3-D Secure où, quelle que soit la passerelle de paiement, ils m'emmènent sur leur propre site pour saisir un mot de passe pour finaliser la transaction. Je sais que c'est le véritable site Visa, car ils me permettent de personnaliser le message à afficher.

L'idée n'est donc pas sans précédent, bien qu'elle ne soit pas mise en œuvre exactement de la même manière que vous le dites. L'ajout de plusieurs mots de passe est au moins une chose dont les banquiers et les courtiers semblent convaincus.

«Plusieurs mots de passe» n'est pas la même chose que «plusieurs mots de passe dont vous ne reconnaissez pas l'exactitude tant qu'ils n'ont pas tous été entrés dans le bon ordre». C'est encore plus faible, car un attaquant peut les poursuivre un par un - la force est à peu près la même que celle du mot de passe unique le plus long (voir: WPS).
F. Hauri
2015-02-28 02:00:34 UTC
view on stackexchange narkive permalink

Arrêtez la complexité technique inutile

Selon une réponse précédemment correcte,

  A \ nB \ nC  

est approximativement le identique à

  ABC  

(ou peut-être plus léger, en ce qui concerne la réponse de @ Mark, à propos de la séquence de Bruijn ).

À partir de là, si vous avez vraiment besoin de garder votre secret:

  1. Utilisez des outils standards fortement testés depuis un moment. (Si vous n'êtes pas sûr, préférez partager et poser des questions, plutôt que d'utiliser toute sorte d'obscurité.)

  2. Tenez-les à jour.

  3. Apprenez à vos utilisateurs les phrases de passe (voir xkcd: Force du mot de passe et discuter du SI)

  4. Gardez à l'esprit que l ' ingénierie sociale (sur Wikipédia) est le premier moyen de contourner les failles de sécurité. (Un autre célèbre xkcd: Security).

  5. Surveillez votre système et vérifiez vos journaux.



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...