J'utilise un PC Windows 10 et un téléphone Android avec Keepass.
Je voudrais ajouter un deuxième facteur au-dessus de mon mot de passe principal qui fonctionne à la fois avec Windows 10 et mon Android.
Entre les deux méthodes de support de l'authentification, laquelle est la plus sécurisée?
Merci d'avance.
Une différence importante entre les OTP et les systèmes de défi/réponse est que le premier peut être usurpé, et le second ne peut pas. Supposons que quelqu'un configure une interface de phishing pour KeePass et que vous y entrez votre mot de passe sans vous rendre compte que ce n'est pas le légitime. L'attaquant se rend compte que le mot de passe ne suffit pas, vous avez activé MFA. Jusqu'ici tout va bien.
Si vous utilisez OTP, cependant, tout l'attaquant doit faire est de montrer la boîte de saisie OTP habituelle. Vous appuyez sur votre Yubikey, il envoie l'OTP à l'attaquant, l'attaquant le transmet à KeePass et boum, ils ont accès à votre coffre-fort KeePass. Si vous utilisez plutôt Challenge/Réponse, la réponse du Yubikey est basée sur le défi de l'application. L'attaquant ne connaît pas le défi correct à envoyer pour KeePass, il ne peut donc pas le falsifier.
Notez que cette distinction n'a probablement pas beaucoup d'importance pour une application locale à client lourd comme KeePass, mais elle est certainement importante pour tout ce qui fait l'authentification à distance. Par exemple, si vous vous connectez à une application Web comme Gmail, une page de phishing peut usurper l'interface utilisateur de connexion et l'interface utilisateur OTP. Cependant, une page de phishing ne peut pas usurper le flux de défi/réponse, car cela est basé sur le site réel visité, et votre navigateur (et donc le Yubikey) enverra un défi différent même s'il vous ressemble.
En fait, des systèmes de réponse aux défis comme celui-ci sont la seule méthode que je connaisse qui offre une sécurité assez forte contre les attaques de phishing. Tout le reste impliquant un véritable deuxième facteur - OTP, SMS, même les notifications Push - peut être usurpé, et vous prendrez l'approbation du contrôle d'authentification comme d'habitude car, pour autant que vous le sachiez, vous vous connectez comme d'habitude.
À mon avis, "Keepass 2 utilisant OTP" ne peut pas être "sécurisé". Pourquoi?
Keepass chiffre les données et le problème avec les données chiffrées est que vous chiffrez les données parce que vous voulez les protéger contre les attaques hors ligne. Donc. obtient l'accès aux données sous forme cryptée et vous voulez éviter que l'attaquant puisse les lire en texte clair. Mais si l'attaquant possède les données chiffrées, il peut exécuter des attaques par force brute hors ligne. Et HOTP, la création de numéros à 6 ou 8 chiffres n'ajoute vraiment rien à la protection contre les attaques hors ligne. Il peut simplement ajouter 6 chiffres à votre mot de passe! C'est très bien pour l'authentification en ligne , lorsque le compte est bloqué après un certain nombre d'échecs. Mais cela n'a aucun sens d'utiliser OTP pour dériver des clés de chiffrement.
Le problème avec OTP est qu'il est si court car il peut être facilement utilisé pour l'authentification, car tout le monde peut le taper partout. C'est cool - mais uniquement pour les cas d'utilisation prévus!
Je ne recommanderais pas d'utiliser OTP pour Keepass!
L'utilisation de la réponse de défi n'a pas cette limitation. Ne vous méprenez pas, OTP a raison d'exister! Et le problème avec la réponse au défi est: vous avez besoin de pilotes! Il existe donc des scénarios d'authentification où OTP est meilleur (pas plus sûr!) Que la réponse par défi.
Mais revenons à Keepass 2 et aux Dirvers. Eh bien, avec Keepass, ce n'est pas un problème, car vous les avez évidemment de toute façon. Le mode Challenge Response du Yubikey utilise une clé secrète symétrique. Vous pouvez envoyer un défi au yubikey, il créera un hmac à partir du défi et de la clé secrète et répondra avec une valeur de retour de 256 bits. Maintenant, vous avez besoin du même défi et du même clé secrète pour toujours créer le même valeur de retour. Et évidemment, la valeur de retour est utilisée comme clé de cryptage (enfin la clé secrète est utilisée comme clé de cryptage, mais elle est stockée cryptée avec la valeur de réponse) Mais en fin de compte, vous avez besoin du secret key pour décrypter les données. Comme nous parlons ici d'une longueur de clé différente (d'un nombre à 6 chiffres), la clé secrète est aussi difficile à forcer que la clé de chiffrement AES elle-même. Lisez ici: http://richardbenjaminrush.com/keechallenge/#using
Je recommanderais d'utiliser Challenge/Response!
Avertissement: Bien sûr, je n'ai fait aucune revue de code ni aucune analyse approfondie. Ceci est simplement une évaluation des concepts officiels de base des deux mécanismes!