Question:
Pourquoi ne puis-je pas partager un code à usage unique avec quelqu'un d'autre?
Henry WH Hack v2.1.3
2019-05-13 21:11:49 UTC
view on stackexchange narkive permalink

J'ai remarqué que dans certains cas, lorsque je reçois un code de vérification de Google, il peut dire quelque chose du genre:

"Vous ne devriez pas partager ce code avec quelqu'un d'autre et personne de Google demandera jamais ce code. "

OK, cela semble être pour des raisons de sécurité, mais le code n'est qu'un code à usage unique, donc si vous le donnez à quelqu'un après son utilisation, il ne fonctionnera pas. (Peut ne pas s'appliquer à donner le code à quelqu'un avant utilisation, mais même si quelqu'un connaît votre nom d'utilisateur et votre mot de passe et a pu obtenir un code inutilisé et que cette personne devait se connecter, un nouveau code devrait être généré pour la nouvelle session. N'est-ce pas?)

Suis-je en train de manquer quelque chose, y a-t-il une raison de ne pas partager le code temporel unique, en particulier la partie concernant l'appel et la demande d'un inconnu au hasard? De plus, il devrait avoir expiré depuis longtemps avant que quelqu'un n'ait la chance de vous appeler et de le demander à l'avenir.

Pourquoi pensez-vous qu'ils disent «ne regardez pas le canon d'une arme à feu» au lieu de «ne regardez pas le canon d'une arme à feu à moins qu'il ne soit vide»?Ou «n'essayez pas de mettre vos doigts dans la prise de courant» au lieu de «n'essayez pas de mettre vos doigts dans la prise de courant à moins qu'ils ne soient trop gros pour entrer ou à moins que vous ayez coupé l'alimentation»?etc.
@Mehrdad Vous connaissez le dicton "Mieux vaut prévenir que guérir", non?Ils vous disent que pour vous assurer que vous faites toujours attention à tout ce qui pourrait être risqué.
Il est temps de poster une réponse à votre propre question!
Je ne suis pas un expert, donc je ne vais pas en faire une réponse.Imaginez si quelqu'un parvient d'une manière ou d'une autre à copier le contenu sur les bons serveurs au bon moment.Ils pourraient alors utiliser l'ancien code pour accéder à vos données privées.Au moins, c'est l'une des raisons pour lesquelles vous ne devriez pas partager d'anciens mots de passe.(Corrige moi si je me trompe.)
Les gens qui sont ce littéralement me rendent fou.Veuillez vous détendre, OP.
Pourquoi voudrais-tu?
Si vous obtenez suffisamment de codes, vous pourriez également comprendre comment ils calculent le suivant.
Les codes ne sont pas à usage unique!Ils peuvent absolument être utilisés plusieurs fois.Pouvez-vous imaginer l'inconvénient, s'ils devaient stocker le code utilisé pour atteindre dans une base de données?
Ils ne sont _nécessairement_ pas à usage unique, en ce sens qu'il n'y a que 1 000 000 de codes possibles dans l'espace habituel à 6 chiffres.La rapidité est ici un facteur crucial.
@Snake, s'ils utilisent le standard TOTP, alors ils n'ont rien à stocker sauf le secret partagé, et toute clé n'est valide que pendant 30 secondes.S'ils utilisent des jetons générés (c'est-à-dire des jetons de réinitialisation de mot de passe), ils n'ont pas à partager ceux qui ont été utilisés, ils n'ont qu'à stocker ceux qui ont été générés, qui ne sont généralement qu'un à la fois, et ilssont généralement bons pendant une heure ou moins.
Six réponses:
Ghedipunk
2019-05-13 21:31:15 UTC
view on stackexchange narkive permalink

Ils ne sont pas précis car ils ne sont pas obligés de le faire, et un langage précis peut dérouter certains utilisateurs.

Ils pourraient dire, par exemple, "Vous ne devriez pas partager des codes inutilisés inférieurs à une heure avec quelqu'un d'autre et personne de Google ne demandera jamais ce code. "

Vous et moi saurions ce qu'ils signifient. Mon beau-père et mon grand-père ne sauront cependant pas pourquoi. Mon beau-père est un exemple spécifique d'une personne qui verrait qu'il y a des moments où elle peut partager des codes, et quelqu'un qui lui fait escroquer son chèque de sécurité sociale aura également accès à son courrier électronique. (Oui, la plupart de sa boîte de réception concerne les produits chimiques de contrôle de l'esprit ajoutés aux traînées et la façon dont les éruptions solaires provoquent des tremblements de terre, mais cela pourrait aussi donner à quelqu'un accès à son compte bancaire.)

Comme cela a été souligné dans les commentaires, il existe d'autres exemples de situations conditionnellement dangereuses, mais les gens n'incluent tout simplement pas les exceptions. Par exemple: "Ne regardez jamais le canon d'une arme à feu [sauf si vous avez dégagé la chambre]," ou "ne mettez jamais votre doigt dans une douille de lumière [sauf si vous avez coupé l'alimentation de cette prise]."

Puisqu'un jeton utilisé ou expiré est inutile pour tout le monde, il ne sert à rien de le conserver, de le partager, de le protéger, de le supprimer ou d'ajouter des exceptions aux conseils de sécurité généraux.

Je peux le dire personnellement Découvrez qu'il y a des utilisateurs qui feront des choses stupides lorsque vous leur faites savoir qu'il existe des cas extrêmes et des nuances en matière de sécurité. Sachant que, si je devais écrire un tel avertissement à mes utilisateurs, je ferais ma déclaration aussi large et générale que possible.

Aussi simple.Les règles simples sont faciles à retenir.Les conditions imbriquées augmentent la complexité cyclomatique.
* (...) un exemple spécifique d'une personne qui verrait qu'il y a des moments où elle peut partager des codes *.C'est un très bon point.Donner trop de détails signifie que l'on peut (tout à fait logiquement) assumer quelque chose d'inattendu.
Notez que l'étui de l'arme est un exemple de la même approche - tout le monde vous dira de traiter chaque arme comme chargée et sur le point de faire des ratés à tout moment * même si * vous venez de la nettoyer et êtes absolument sûr qu'elle n'est pas chargée (cela économiserala prochaine fois que votre mémoire musculaire insère également la cartouche alors que votre esprit ne le remarque pas).Parce que si vous n'avez pas besoin de faire l'exception, il vaut mieux ne pas le faire.
Chemtrails?Waft 'em de cette façon, mec - j'aime * ces choses !!!:-)
Et gardez à l'esprit que, ne sachant pas comment les codes sont générés, nous ne pouvons pas savoir avec certitude qu'ils ne contiennent pas d'informations sensibles qu'une personne ayant les bonnes connaissances et l'intérêt ne peut pas extraire et utiliser pour nuire.Par exemple.J'ai vu des algorithmes pour de tels codes contenant un nom d'utilisateur encodé, qui à lui seul donnerait à un intrus potentiel des informations qu'il n'avait pas auparavant.
Une grosse éruption pourrait provoquer un tremblement de terre, en théorie ...;)
dr jimbob
2019-05-13 22:15:13 UTC
view on stackexchange narkive permalink

Il s'agit d'empêcher les attaques d'ingénierie sociale contre vous. Imaginez, par exemple, vous vous êtes connecté à votre compte gmail à deux facteurs sur un ordinateur public louche où un keylogger a enregistré votre adresse e-mail et votre mot de passe (mais que vous n'avez pas pu l'utiliser pendant que vous étiez connecté), mais vous avez activé l'authentification à deux facteurs et rappelé de vous déconnecter à la fin de votre session. Votre compte est toujours en sécurité (bien qu'une fois de plus, il est préférable de ne pas vous connecter à vos systèmes à l'aide d'ordinateurs publics fragmentaires; car même avec une authentification à deux facteurs, une personne sophistiquée pourrait encore potentiellement faire des choses malveillantes sur votre compte dans la fenêtre pendant que vous étiez connecté) .

Les attaquants ont maintenant votre adresse e-mail et votre mot de passe. Pour accéder à votre compte (par exemple, utiliser votre adresse e-mail pour réinitialiser les mots de passe pour d'autres systèmes, comme commander des éléments en ligne, accéder à des comptes bancaires, envoyer du spam ou d'autres ravages), ils doivent passer le système d'authentification à deux facteurs. Alors ils vous contactent, se font passer pour Google et essaient de vous tromper pour leur répondre avec le code d'authentification réel, afin qu'ils puissent se connecter entièrement à votre compte. Peut-être qu'ils vous appellent au téléphone (numéro usurpé qui ressemble à quelque chose associé à Google Inc.) et vous disent "nous voyons que vous avez une configuration d'authentification à 2 facteurs, avant que nous puissions continuer, je dois nous dire le code qui vient de vous être envoyé", etc.

Les jetons expirés ou déjà utilisés n'ont pas d'importance, mais ils veulent juste vous donner l'habitude de ne pas divulguer ces informations à des tiers.

Une personne disposant du nom d'utilisateur, de la ligne fixe et des numéros de téléphone portable de la cible pourrait également appeler la ligne fixe, prétendant vérifier l'exactitude des informations relatives à son numéro de téléphone, utiliser la fonction "mot de passe perdu" du compte et demander le code à la cible.leur mobile devrait recevoir.Dans de telles circonstances, de nombreuses victimes pourraient ne pas prendre la peine de lire le message contenant le code pour voir pourquoi il a été envoyé.
Je pense que le PO comprend déjà les points des paragraphes 1 et 2. Le paragraphe 3 est vraiment la partie qui répond à sa question.
@JonBentley: Je ne suis pas d'accord.Les paragraphes 1 et 2 soulèvent un point auquel je ne pense pas que le PO ait pensé.(La prémisse de la question est "J'ai légitimement demandé ce code et je suis sur le point de l'utiliser - pourquoi ne pas le partager par la suite?"; Cette réponse indique "Cette même notification est également ce qui est envoyé lorsque vous n'avez pas légitimement demandé ce code. Ne le partagez pas avec la personne qui vous a amené à être notifié. ")
@ruakh: Une autre façon de voir les choses: la seule raison pour laquelle quelqu'un voudrait un tel code serait s'il espérait l'utiliser pour vous faire passer pour vous * avant * de l'utiliser, donc la seule raison pour laquelle vous devriez donner à quelqu'un un tel code serait sivous vouliez qu'ils puissent se faire passer pour vous.Étant donné le manque de support de nombreux sites pour les comptes proxy, on peut parfois * vouloir * aider une personne * de confiance * avec une telle usurpation d'identité (par exemple, une personne dans un endroit avec un service de téléphonie vocale peut souhaiter qu'une personne de confiance vérifie son courrier électronique)mais pas un faux employé de Google.
AndrolGenhald
2019-05-13 21:32:07 UTC
view on stackexchange narkive permalink

Peut ne pas s'appliquer à donner le code à quelqu'un avant utilisation, mais même si quelqu'un connaît votre nom d'utilisateur et votre mot de passe et a pu obtenir un code inutilisé et que cette personne où se connecter, un nouveau code doit être généré pour la nouvelle session . non?

Faux. Je suppose que vous parlez d'un code TOTP généré par exemple par l'application Google Authenticator. TOTP fonctionne en stockant un secret partagé sur le client et le serveur (votre téléphone et les serveurs de Google). Pour s'authentifier, le client et le serveur utilisent le secret comme clé HMAC pour hacher l'heure actuelle, puis la tronquer à une valeur de n chiffres (souvent 6 chiffres, parfois plus ).

TOTP n'est en aucun cas lié à une session, il est entièrement basé sur un secret partagé et l'heure actuelle.

Suis-je en train de manquer quelque chose, est-ce là une raison de ne pas partager le code temporel unique, en particulier la partie concernant un inconnu au hasard appelant et le demandant? De plus, il devrait expirer depuis longtemps avant que quelqu'un ait la chance de vous appeler et de le demander à l'avenir.

J'imagine qu'ils essaient d'empêcher les gens de tomber dans les escroqueries lorsque quelqu'un vous le demande pour leur envoyer le code actuel . Une fois le code utilisé, ou après un temps suffisant pour qu'il ne soit plus valide, le code est inutile.

Plusieurs anciens codes peuvent contenir suffisamment d'informations pour permettre le forçage brutal du secret partagé, mais qui nécessite au moins une attaque de pré-image sur SHA-1, ce qui est encore tout à fait irréalisable (c'est-à-dire que les codes leur permettront de dire si une estimation particulière du secret partagé est correcte, mais ils pourraient passer plusieurs vies deviner et ne jamais le trouver).

https://it.slashdot.org/story/19/05/13/2255229/academics-improve-sha-1-collision-attack-make-it-actually-dangerous
@ivanivan C'est toujours une attaque par collision.Une attaque pré-image est beaucoup plus difficile.Il n'y a même pas encore d'attaques de préimage pratiques contre MD5.
Je ne suis pas sûr qu'une attaque de pré-image sur le hachage [casserait le HMAC] (https://crypto.stackexchange.com/a/44785), bien que comme le dit fgrieu, il est probablement préférable de supposer qu'il est cassé à ce stade.
ANone
2019-05-15 18:39:54 UTC
view on stackexchange narkive permalink

Cela s'applique à de nombreux conseils de la communauté de la sécurité.

La ligne qui sépare les «bonnes pratiques» et les «mauvaises pratiques» devrait être cohérente, mais ce n'est souvent pas le cas. Soit vous pouvez le casser et c'est mauvais, soit vous ne pouvez pas et c'est bien non?

Malheureusement, ce n'est pas ainsi que cela a tendance à fonctionner. En particulier, le côté offensif et le côté défensif tracent des lignes dans le sable différemment. Bien que la même question cassée ou non soit au cœur du problème dans la pratique, elle ignore beaucoup de zones grises entre le `` bon '' et le `` mauvais '' qu'aucune des parties ne veut traiter, ce qui conduit à de nombreuses questions délicates comme mon favori "À quel point MD5 est-il mauvais?".

Malheureusement, il n'y a pas de solution facile. Il y a beaucoup de zones grises dans la cryptographie en ce qui concerne ce que les gens ne peuvent pas faire, ce qui est pratiquement impossible à prouver ou à éviter. Même quand il n'y a aucune ambiguïté, combien de temps faudrait-il, et avec quel kit, pour que quelque chose soit de la force brute avant d'être sûr? Ses minutes claires sur un ordinateur de bureau moyen ne sont pas bonnes et des milliards d'années sur tous les ordinateurs actuels de l'humanité sont probablement assez bonnes pour la plupart des choses, mais où se trouve la ligne entre les deux. Il n'y a pas de réponse à cela. La seule façon d'être en sécurité est si le côté défensif insiste toujours sur des conditions plus strictes que le côté offensif accepterait comme cassable .

Le résultat pour vous est:

Vous ne devriez pas vous attendre à ce que les conseils défensifs s'alignent exactement sur des attaques viables, ce n'est pas leur travail et c'est invariablement une ligne floue complexe qui est presque impossible à corriger et les erreurs peuvent être problématiques pour dire le moins.

Par conséquent, faites preuve de prudence. Surtout si cela fait peu de mal.

Honnêtement, cette dernière ligne devrait être l'en-tête 1, en haut de votre réponse.En matière de sécurité, c'est le conseil parfaitement correct.
Philip Tinney
2019-05-16 08:31:12 UTC
view on stackexchange narkive permalink

dr jimbob a tout à fait raison. Ingénierie sociale. Plus précisément, une attaque d'ingénierie sociale lorsque l'attaquant a votre mot de passe. Je peux imaginer un scénario où une base de données d'utilisateurs non sécurisée est forcée brutalement. J'imagine qu'un bon nombre d'utilisateurs pourraient être associés à un numéro de téléphone, voire figurer dans la base de données. Lorsque les mots de passe sont piratés et qu'un numéro de téléphone est associé, envoyez-le à un Twilio IVR. S'ils répondent, l'IVR leur dit que leur compte a peut-être été compromis et sera désactivé à moins qu'ils n'entrent le code de confirmation qu'ils devraient recevoir. Ensuite, déclenchez une connexion et s'ils répondent avec le code, vous y êtes. C'est exactement pourquoi il est dit que personne ne le demandera jamais. Comme mentionné, ceux qui ne sont pas utilisés ne valent rien, mais vous obliger à en abandonner un qui n'est pas utilisé est de l'or.

Tony
2019-05-15 21:30:58 UTC
view on stackexchange narkive permalink

Ma réponse est fausse.

Ces codes sont générés par "un algorithme". Même si quelqu'un connaît cet algorithme, il ne connaît pas le point de départ ou la position actuelle dans la séquence de codes calculables à laquelle l'algorithme se trouve actuellement.

Si quelqu'un avait suffisamment de codes ET connaît l'algorithme, il pourrait, en théorie, déterminer où se trouve l'algorithme dans la séquence et commencer à calculer de nouveaux codes.

Bien que, je pense que ceci pourraient s'appliquer uniquement aux jetons matériels que vous obtenez, par exemple, en vous connectant à votre MMORPG préféré

Il est fort peu probable que quelqu'un puisse trouver les deux informations nécessaires pour briser le système.

Le simple fait d'avoir suffisamment de codes et de savoir quel algorithme a été utilisé ne suffit pas pour le casser, si c'était le cas, cela serait considéré comme non sécurisé.Les algorithmes 2FA les plus courants sont standards et publics.
J'ai réalisé une fois que j'ai lu mon propre commentaire après avoir posté que c'était faux lol.Je l'ai édité mais il est toujours faux et je peux le «supprimer».
L'attaquant peut facilement se chanter et obtenir tous les codes qu'il souhaite.Pas besoin de tromper un tiers pour qu'il partage un code.


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 4.0 sous laquelle il est distribué.
Loading...