web-dev-qa-db-fra.com

Est-il sûr de stocker des jetons 2FA avec des mots de passe dans 1password?

J'utilise 1password et j'ai vu que 1password vous permet de stocker des jetons 2FA au même endroit où vous stockez le mot de passe.

Je n'aime pas l'idée d'avoir tout au même endroit que si quelqu'un volait mon mot de passe 1password, il pouvait accéder à mon compte et obtenir à la fois le mot de passe et les jetons de sécurité. En fait, j'utilise Google Auth pour le 2FA et 1password pour les mots de passe.

Est-ce une bonne idée de les garder séparés pour augmenter la sécurité? Celà a-t-il un sens?

18
Pau Chorro

Je travaille pour 1Password, et je a écrit exactement à propos de cette question lorsque nous avons introduit la fonctionnalité.

La réponse dépend des propriétés de sécurité que vous voulez réellement des mots de passe à utilisation unique (TOTP). La "seconde réalité" de TOTP est l'une des nombreuses propriétés de sécurité qu'elle offre, et elle peut être la moins importante dans de nombreux cas. Ne vous laissez pas induire en erreur par le fait que tout cela se fait sous le terme "2FA", comme si c'était le seul avantage de sécurité que vous obtenez de ces régimes.

Avantages de la sécurité de TOTP (contrairement à l'utilisation d'un mot de passe typique)

Je vais donc énumérer quelques-unes des propriétés de sécurité que vous obtenez avec TOTP et les comparer avec l'utilisation de mot de passe typique .

  1. Le secret à long terme n'est pas transmis pendant l'authentification. Avec TOTP, obtenez un secret à long terme qui n'est transmis (généralement le code QR) que lorsque vous vous inscrivez. Le secret à long terme n'est pas transmis lorsqu'il est effectivement utilisé. (Ceci est différent de l'utilisation de mot de passe typique où le mot de passe est transmis sur le net et dépend donc d'autres protections, telles que TLS). Cela signifie également que le secret à long terme ne peut pas être hameçonné (bien que les codes numériques puissent l'être.)

  2. Le secret à long terme est impossible à deviner . Le secret à long terme est généré par le serveur lors de votre première inscription, et il est donc généré conformément aux normes d'aléatoire du service. Encore une fois, cela ne ressemble pas à l'utilisation de mot de passe typique avec des mots de passe créés par l'homme.

  3. Le secret à long terme est unique. Vous ne finirez pas par réutiliser le même secret à long terme TOTP sur divers services. Encore une fois, cela ne ressemble pas à l'utilisation de mot de passe typique, où les gens réutilisent les mots de passe.

  4. Oh oui. Et vous mettez le secret à long terme sur "quelque chose que vous avez", si pour une raison qui vous tient à cœur.

Dans la plupart des cas où TOTP est déployé, cela se fait en raison des propriétés # 2 (non devinabilité) et # 3 (unicité). En effet, lorsque Dropbox a introduit TOTP pour la première fois sur ses services, ils ont expliqué leurs raisons comme aidant à protéger les utilisateurs qui réutilisaient les mots de passe.

Après l'unicité et l'impraticabilité des secrets à long terme, l'avantage suivant le plus important (pour la plupart des gens) est que le secret à long terme n'est pas transmis. Cela rend plus difficile la capture sur un réseau compromis.

Probablement la moins importante des propriétés de sécurité que TOTP nous donne est le deuxième fait. Je ne dis pas qu'il n'y a aucun avantage à cela, mais pour les cas où la plupart des gens utilisent TOTP, c'est probablement le moins important.

Contrairement à l'utilisation d'un gestionnaire de mots de passe bien.

Dans ce qui précède, j'ai répertorié quatre propriétés de sécurité de TOTP et les ai contrastées avec l'utilisation d'un mot de passe typique. Mais maintenant, considérons quelqu'un qui utilise un gestionnaire de mots de passe à son plein potentiel. Si vous utilisez bien un gestionnaire de mots de passe pour un site ou un service4, vous aurez un mot de passe généré aléatoirement (et donc impossible à deviner) pour ce site et vous aurez un mot de passe unique pour ce site. Et donc l'utilisation de TOTP n'ajoute pas vraiment grand-chose en termes de ces deux propriétés de sécurité.

Si nous regardons la propriété # 1 (secret à long terme non transmis), TOTP offre toujours une sécurité supplémentaire, même si vous utilisez un gestionnaire de mots de passe. Cependant, l'utilisation d'un gestionnaire de mots de passe réduit les risques de phishing, et donc le gain de TOTP, bien que réel, n'est pas aussi important qu'il le serait pour quelqu'un qui n'utilise pas de gestionnaire de mots de passe.

La seule chose qui reste est # 4. Si les deux facteurs sont vraiment la raison pour laquelle vous appréciez TOTP, ne gardez pas le secret à long terme dans 1Password. Mais pour la plupart des gens, la valeur de TOTP vient du fait d'avoir un secret à long terme fort et unique qui n'est jamais transmis.

Regardez les propriétés de sécurité réelles

Je vous recommande d'évaluer ce que vous retirez vraiment du TOTP (au lieu de vous laisser entraîner dans toute la rhétorique 2FA), puis de considérer les compromis. Je parie que si des choses comme TOTP étaient appelées "Authentification secrète unique" au lieu de "Authentification à deux facteurs", la question n'aurait jamais été posée.

16
Jeffrey Goldberg

L'intérêt d'avoir un deuxième facteur d'authentification est de vous protéger dans les cas où le premier facteur (mots de passe) a déjà échoué. Par conséquent, le stockage de vos jetons 2FA au même endroit où vous stockez vos mots de passe les rend significativement moins efficaces.

Combinez cela avec le fait que les gestionnaires de mots de passe (utilisés correctement, avec des mots de passe générés aléatoirement pour chaque compte) vous protègent déjà de la plupart des mêmes menaces que les jetons 2FA (comme les attaques par force brute et bourrage d'informations d'identification) et je commence à me demander pourquoi vous vous embêteriez avec 2FA si vous stockez les jetons de cette façon.

Cela dit, il existe certains scénarios où une personne malveillante pourrait voler un seul mot de passe à votre gestionnaire de mots de passe sans compromettre la base de données de mots de passe entière:

  1. Vous n'utilisez pas la saisie automatique et saisissez votre mot de passe sur un site de phishing (bien que les jetons HOTP/TOTP n'aideront ici qu'en limitant la durée du compromis; contrairement aux jetons U2F/WebAuthn, ils ne peuvent pas réellement empêcher le phishing)
  2. Votre connexion est compromise par un MITM (encore une fois, 2FA ne vous sauvera pas vraiment ici; je trouve également peu probable qu'un site qui se soucie suffisamment de la sécurité pour prendre en charge 2FA n'implémente pas HTTPS)
  3. Pirates paresseux/auteurs de programmes malveillants qui ne se soucient que de voler des mots de passe, pas des sessions de connexion ou des bases de données de mots de passe
  4. L'attaquant compromet votre compte de messagerie d'une manière ou d'une autre et l'utilise pour réinitialiser vos mots de passe (souvent, les jetons 2FA ne peuvent pas être réinitialisés par e-mail)

Si vous n'êtes pas préoccupé par la possibilité que votre base de données de mots de passe soit compromise et que les vecteurs de menace que j'ai énumérés ci-dessus vous semblent suffisamment plausibles et sérieux pour mériter l'étape supplémentaire d'avoir à entrer un code 2FA chaque fois que vous vous connectez, alors allez-y pour ça. Sinon, vous souhaiterez peut-être stocker vos codes 2FA séparément de votre base de données de mots de passe, ou renoncer à l'utilisation de jetons 2FA basés sur HOTP/TOTP entièrement en faveur des jetons U2F ou WebAuthn qui offrent une meilleure protection.

11
Ajedi32

Je recommanderais de garder les codes 2FA sur 1Password, car l'application Google Auth n'a pas de sauvegarde de données (sauf si vous avez root et un outil de sauvegarde externe, tel que Titanium Backup). Dans votre cas, perdre votre téléphone signifie perdre tous les codes d'authentification 2FA que vous aviez. Si vous ne souhaitez pas stocker le 2FA sur 1Password, stockez-le sur une autre application qui prend en charge la sauvegarde dans le cloud.

Vous augmenterez un peu la sécurité, car tout attaquant devra compromettre 2 applications, mais vous créerez un autre point d'échec. Dans le cas de l'application GoogleAuth, la perte de votre téléphone peut potentiellement vous bloquer sur certains comptes.

Je créerais un mot de passe sécurisé, long et unique et n'utiliserais qu'un seul gestionnaire de mots de passe.

4
ThoriumBR

En supposant que vous parlez des codes d'urgence et/ou de la possibilité de récupérer vos deux facteurs sur un nouvel appareil, je trouve personnellement assez déconcertant que ces codes soient disponibles partout en ligne. C'est un cas parfait pour les sauvegardes hors ligne.

Garder une copie du code qr/clé de récupération/etc hors ligne (soit sur papier, soit sur une clé USB) est ma préférence. Un favori personnel (en supposant un PC Windows) est une clé USB verrouillée, conservée dans un coffre-fort.

1
Tim Brigham

Idéalement

Dans un monde idéal, vous devriez avoir vos clés de deuxième facteur sur exactement UN appareil. De cette façon, cela peut vraiment être quelque chose que vous avez (en plus de ce que vous connaissez comme votre mot de passe). En ayant vos clés sur votre téléphone qui est protégé par un PIN ou autre sécurité, lorsque vous perdez votre téléphone, vous pouvez essuyer le téléphone à distance et être certain que les codes ne se sont pas échappés.

Mais c'est loin d'être réaliste ...

Dans le monde réel, nous avons besoin de sauvegardes. Oui, vous pouvez stocker vos informations dans 1Password (ou tout autre gestionnaire de mots de passe) et vous seriez toujours plus sûr que la personne moyenne (ce qui fait de vous une cible beaucoup moins probable). Donc, si la décision n'est pas de sauvegarder ou de stocker dans 1Password, stockez-la dans 1Password.

Cependant, comme vous le mentionnez, il s'agit de mettre tous vos œufs dans le même panier. Si votre coffre-fort 1Password est violé d'une manière ou d'une autre, vous êtes foutu.

Donc ce que je suggère (que Tim a mentionné ici également) est de stocker vos deuxièmes codes de facteur sur quelque chose ENTIÈREMENT DIFFÉRENT que votre 1Password. Que ce soit en les imprimant, en les chargeant sur un téléphone secondaire, en utilisant un service comme Authy (qui a des sauvegardes), ou autre chose. Vous avez alors deux points d'échec. Quelqu'un peut accéder à votre 1Password et n'a toujours pas accès à nos comptes multi-facteurs.

J'adore personnellement la suggestion d'impression ici. En imprimant le code, vous le supprimez entièrement de votre vie numérique afin qu'aucun pirate ne puisse y accéder. Enfermez-les dans un coffre-fort, mettez-les dans un coffre-fort. N'importe quoi. Et puis, il est facile de charger un nouveau téléphone avec des codes lorsque vous perdez inévitablement votre téléphone ou devez mettre à niveau.

TL; DR: En ayant un deuxième facteur, vous êtes déjà en avance sur le peloton. Les sécuriser dans 1Password peut donc être considéré comme un risque calculé et, bien qu'il ne soit pas parfait, il est encore raisonnablement sûr. Cependant, à la recherche d'un modèle de sécurité plus parfait, stockez-les séparément et de préférence à distance d'air d'Internet afin qu'une tentative de piratage ne puisse pas obtenir votre mot de passe 1 ET vos codes de sécurité à la fois.

1
Vidia

Eh bien, la réponse simple est oui. Malgré toute la confiance que nous avons dans les gestionnaires de mots de passe, c'est une bonne idée de pratiquer la décence en profondeur. La raison pour laquelle vous avez 2FA est d'ajouter cette couche de sécurité supplémentaire pour augmenter le mot de passe. Il va à l'encontre de l'objectif si ce même mot de passe est stocké avec le deuxième facteur. La sécurité est plus basée sur des principes qu'autre chose.

0
Katlego M