J'essaie d'implémenter 2FA pour une application Web, à la fois du côté serveur et du client. Comme tout le monde le sait, un H/TOTP est destiné à prouver que je possède quelque chose, par exemple grâce à l'utilisation d'une application authenticatrice installée sur un téléphone mobile qui générera le OTP pour moi.
Je ne suis pas sûr de ce que "quelque chose" est propriétaire, c'est que ma première question est: "quelque chose" est-ce que mon téléphone ou est-ce le sel de la génération OTP que je charge dans l'application installée Mon téléphone? (Si c'est le sel, la possession de ne pas assimiler sa connaissance, que ce soit quelque peu compliqué avec un algorithme entre moi et le sel?)
Compte tenu du risque que je perds l'accès à mon téléphone portable sur lequel j'ai installé l'application, de nombreux sites m'ont proposé de télécharger des codes de sauvegarde. Ces codes doivent être stockés dans un gestionnaire de mots de passe, comme le mot de passe du premier facteur. En règle générale, il est possible, après avoir entré mon nom d'utilisateur et mon mot de passe, pour contourner le processus OTP et entrer un code de sauvegarde via un flux alternatif.
Ma deuxième question est la suivante: Mon assertion est-elle correcte que de cette façon, le deuxième facteur est réduit à quelque chose que je connais, un code de sauvegarde et donc en prolongeant le premier facteur? (et rendant ainsi tout le 2FA presque inutile , Seulement une sécurité croissante un peu en ajoutant une deuxième chose que j'ai besoin de savoir, tout en augmentant les inconvénients de la gestion de plus de mots de passe.)
L'existence d'un code de récupération rend-elle inutile 2FA?
NON, pour plusieurs raisons.
Tout d'abord, l'utilisation d'un code de récupération est très bruyante. L'utilisation d'un code de récupération n'est pas identique à l'utilisation d'un mot de passe avec un TOTP, un code de récupération ne doit donc pas être considéré comme "simplement une extension du premier facteur". Donc, si un attaquant utiliserait un code de récupération et modifierait votre numéro de téléphone à celui que l'attaquant contrôle, vous pouvez être sûr que vous obtiendriez divers avis (par exemple par courrier électronique, notification de l'application, etc.). De plus, si vous contacteriez immédiatement le support, indiquez qu'un attaquant a craqué votre code de récupération, vous auriez probablement de fortes chances d'avoir votre accès restauré.
Deuxièmement, il est recommandé de ne pas stocker de code de récupération au même endroit que vos mots de passe. Stocker vos mots de passe dans une base de données Keepsass est une bonne idée. Les codes de récupération ne doivent toutefois pas être stockés là-bas. Je vous recommanderais de les écrire sur une feuille de papier et je l'enlèverais dans un dossier avec d'autres documents importants (de préférence dans un coffre-fort ou similaire). De cette façon, un attaquant qui gagne l'accès à votre base de données Kee -ass et est capable de craquer le mot de passe de cette base de données, n'a pas accès au mot de passe et au code de récupération.
De cette façon, afin de voler votre code de récupération, un attaquant devrait soit le deviner (ce qui devrait être impossible avec un code de récupération comme Lining Everybody Frays Overpay Swinger Boogeyman Rise Anvil Pastel Quaking
) ou avoir accès à votre maison (à quel point la sécurité de votre compte Github est probablement secondaire).
Un code de sauvegarde est un mécanisme de récupération et je seconde que Mechmk1 a dit de ne pas les stocker au même endroit que les mots de passe. Je les ai également imprimés et stockés avec divers documents "importants" dans un tiroir à la maison.
En tant que tel, la manière dont il est utilisé, la façon dont il est censé être stocké à long terme, même si le site Web n'offre pas de conseils (ce qu'il devrait, idéalement, mais beaucoup ne le font pas) signifie que vous ne pouvez pas le regarder seulement de la "quelque chose que je connais [etc]" point de vue. C'est au-delà de ça.
Vous ne devez pas stocker les mots de passe et vos codes de sauvegarde dans votre gestionnaire de mots de passe en raison du problème de votre décrire. Je vous proposerais que vous le stockiez séparé. Par exemple, un lecteur USB dans un coffre-fort ou une feuille de papier stockée dans vos documents personnels serait un meilleur endroit pour vos codes de récupération. Ensuite, un attaquant doit également avoir accès à votre maison.