web-dev-qa-db-fra.com

L'ajout d'une authentification à deux facteurs par OTP rend-il vraiment KeePass plus sûr

KeePass est une application qui conserve tous vos mots de passe pour vous dans une base de données. Il est principalement protégé par un mot de passe principal et/ou un fichier de clés. Si la base de données est correctement cryptée avec ce mot de passe, cela peut être assez sécurisé.

Il existe un plugin OtpKeyProv qui augmente soi-disant la sécurité en ajoutant un deuxième facteur d'authentification. Après avoir protégé votre base de données à l'aide de ce plugin, vous devez générer et saisir des mots de passe à usage unique afin d'ouvrir votre base de données.

Ma question: cela augmente-t-il vraiment la sécurité? Je ne vois pas comment le mécanisme OTP peut être utilisé pour crypter davantage la base de données. Un pirate qui s'empare de la base de données ne peut-il pas simplement compiler une version de KeePass (c'est open source) qui ne demande pas la valeur OTP?

Pour autant que je puisse voir, le plugin ne vous ennuie que lorsque vous souhaitez accéder à l'application, ce qui entraîne un faux sentiment de sécurité supplémentaire.

Ou suis-je en train d'oublier quelque chose.

21
Jeff

Non. La sécurité reste la même + une surcharge cognitive supplémentaire.

Vraisemblablement, le plugin utilise OATH HOTP où le fichier KeePass ou la clé principale est recypté après chaque accès avec le mot de passe à usage unique suivant.

Cependant, pour générer le prochain mot de passe sur l'appareil, le plug-in nécessiterait soit un secret stocké sur l'appareil, soit le mot de passe normal pour le fichier KeePass.

La sécurité d'un mot de passe à usage unique vient de deux parties connaissant la même clé et le même compteur - HOTP(Key,Counter) - alors qu'un attaquant ne connaît pas la clé. Si l'attaquant a accès au périphérique stockant l'installation et les fichiers KeePass, la sécurité se replie de nouveau sur la sécurité du mot de passe normal. Si le fichier KeePass est toujours interopérable avec d'autres programmes KeePass, vous ne gagnez rien à utiliser un mot de passe à usage unique de cette manière.

Les mots de passe uniques fonctionnent bien pour l'authentification du serveur car les points de terminaison client et serveur sont considérés comme sécurisés et l'attaquant a besoin de ' quelque chose que vous possédez' ainsi que de ' quelque chose que vous savez '. Si l'attaquant a votre ordinateur, il a maintenant ' ce que vous possédez'.

15
LateralFractal

À la lecture de la source, il semble que le secret soit stocké sur le Yubikey et stocké crypté plusieurs fois avec différentes clés dans le fichier otp.xml. Les clés de chiffrement sont dérivées des n prochains OTP (dérivés du secret) à partir de OTP i..i + m où i est le compteur actuel et m est la valeur d'anticipation. Lorsque l'utilisateur entre ses valeurs OTP, le plug-in crée une clé à partir de ces valeurs et essaie de décrypter l'une des copies cryptées du secret à l'aide de cette clé. En cas de succès, le secret est utilisé pour dériver les n + m prochains OTP et générer les m clés utilisées pour crypter le secret pour la prochaine fois avant de déverrouiller la base de données. Cela signifie que la protection ne peut pas être contournée sans avoir une copie du secret, qui n'est pas stocké en texte brut à côté de la base de données.

Bien qu'apparemment sécurisé, je n'aime pas ce plugin en raison de la possibilité pour les compteurs de se désynchroniser. Assurez-vous d'avoir une copie du secret dans un endroit sûr.

11
mdonoughe

KeePass possède une clé principale qui est cryptée avec votre mot de passe normalement. Si cette clé est chiffrée avec quelque chose généré par l'OTP et votre mot de passe, les deux mécanismes seraient nécessaires pour déchiffrer la clé principale qui crypte le magasin de données. Cela dit, je ne sais pas comment ils ont pu implémenter une configuration OTP sécurisée, car normalement un OTP est une méthode d'authentification plutôt que de stockage de clés (c'est-à-dire, je ne sais pas comment vous auriez pu déverrouiller la clé par OTP) .

Il est également suspect qu'ils pourraient empêcher efficacement la relecture puisque la base de données est contrôlée par un attaquant dans la plupart des scénarios d'attaque, mais pas nécessairement de la manière que vous attendiez. Ils peuvent avoir un moyen de contourner ce problème, mais je ne peux pas penser à un.

2
AJ Henderson