Les codes PIN Bitwarden peuvent être forcés brutalement

Abstrait

Si un attaquant peut accéder aux données chiffrées du coffre-fort stockées localement sur votre appareil et que vous avez configuré un code PIN Bitwarden comme dans l’image ci-dessous, l’attaquant peut forcer brutalement le code PIN et accéder à la clé principale de votre coffre-fort.

En effet, Bitwarden peut tout aussi bien stocker les données en texte brut sur disque.

Bitwarden ne met pas en garde contre ce risque.

Le client de bureau Bitwarden et les extensions de navigateur permettent à l’utilisateur de déverrouiller Bitwarden avec un code PIN. Ce code PIN peut être configuré par appareil après la connexion à un compte à l’aide du mot de passe principal. Toutes les informations relatives au code PIN sont stockées localement sur l’appareil. Il ne peut pas être utilisé pour se connecter à un compte (lire : s’authentifier auprès du serveur principal Bitwarden), mais il peut être utilisé pour obtenir l’accès aux données du coffre-fort, qui ont été synchronisées et stockées localement sous forme cryptée.

Supposons maintenant que l’utilisateur active le déverrouillage par code PIN et configure Bitwarden afin qu’il ne nécessite pas le mot de passe principal au redémarrage.

Ensuite, un secret dérivé uniquement de l’e-mail et du code PIN de l’utilisateur sera utilisé pour chiffrer la clé de coffre principale. Il stocke à peu près

[c = mathrm{Encrypt}_{mathcal{K}(mathrm{email}, mathrm{PIN})}(text{master key})]

sur le disque, où (mathcal{K}) est une fonction de dérivation de clé. Cela signifie que si un attaquant peut à tout moment accéder aux données chiffrées du coffre-fort stockées sur l’appareil, il peut forcer brutalement le code PIN : l’attaquant peut vérifier si le déchiffrement de (c) réussit à l’aide du code PIN deviné. Cette force brute réussira très probablement, car les codes PIN sont généralement à très faible entropie. Maintenant, d’accord, la fonction de dérivation de clé est PBKDF2 avec 100 000 itérations (+ HKDF), mais cela n’aidera pas avec une broche à 4 chiffres.

Bitwarden semble être conscient que les codes PIN sont à faible entropie et que de nombreuses tentatives de code PIN posent problème : le client n’autorise que 5 tentatives de déverrouillage par code PIN. Cependant, cette limite de 5 suppositions est appliquée complètement dans la logique du client : elle repose sur l’attaquant utilisant le client Bitwarden officiel. Au lieu de cela, un attaquant peut attaquer directement le texte chiffré (c) ci-dessus, en essayant différents codes PIN jusqu’à ce que le texte chiffré soit déchiffré avec succès.

Un exploit de preuve de concept pour Linux uniquement peut être trouvé ici. Il utilise le fait que le cryptage est authentifié et vérifie si le MAC vérifie à l’aide de la clé dérivée du code PIN deviné. Il ne teste que les codes PIN 0000 à 9999, vous devrez donc en utiliser un si vous voulez qu’il réussisse. Assurez-vous de décocher l’option “Verrouiller avec le mot de passe principal au redémarrage” (sinon les informations requises devraient être lues à partir de la mémoire de l’application Bitwarden (scénario d’attaque assez différent)).

Il trouve n’importe quel code PIN à 4 chiffres en moins de 4 secondes :

$ time ./target/release/bitwarden-pin
Testing 4 digit pins from 0000 to 9999
Pin found: 9999
./bitwarden-pin  81.73s user 0.03s system 2384% cpu 3.429 total

La réponse de Bitwarden

J’ai déjà signalé le problème à Bitwarden, mais il a été marqué hors de portée car il appartient à l’une de ces catégories :

Attaques nécessitant un accès physique à l’appareil d’un utilisateur

ou

Scénarios extrêmement complexes, difficiles ou peu probables lors de l’utilisation de comptes administratifs déjà compromis, d’un serveur auto-hébergé, de réseaux ou d’appareils physiques qui rendraient beaucoup plus faciles et alternatifs les moyens de compromettre les données contenues dans Bitwarden

Ce n’est cependant pas tout à fait vrai : seules les données de coffre-fort chiffrées localement sur l’appareil doivent être accessibles.
Si l’accès aux données locales de l’appareil est en dehors du modèle de menace, pourquoi chiffrer ces données ? Nous pourrions aussi bien les stocker en texte brut.

1. Mieux informer sur le risque

Le risque de cette attaque est relativement faible (selon votre modèle de menace) : l’attaquant doit accéder aux données chiffrées du coffre-fort stockées sur l’appareil, et l’utilisateur doit configurer Bitwarden d’une manière spécifique pour que l’attaque soit possible. La plongée dans les poubelles pourrait donner accès à ces données lorsque le disque n’a pas été effacé et qu’aucune mesure supplémentaire telle que le cryptage complet du disque n’a été prise. Cependant, si quelqu’un accède aux données de l’appareil (par exemple par la coercition), il peut lancer une attaque par force brute et ne vous oblige pas à saisir le code PIN/à faire confiance à l’appareil.

Avantages :

Désavantage:

  • Le code PIN est forceable lorsque les données de l’appareil sont obtenues

2. Faites confiance à un tiers pour appliquer une limite de tentative de déverrouillage

Partagez secrètement la clé principale avec un backend qui applique une limite de tentatives de déverrouillage.

Avantages :

Désavantages:

  • Le client doit être en ligne
  • L’accès à la base de données et à l’appareil backend permet un déchiffrement immédiat (sans attaque par force brute), le backend peut également être contraint de libérer le texte chiffré

3. Faites confiance à la magie de la sécurité matérielle

Faites ce qui précède (n° 2) dans un environnement d’exécution sécurisé, Intel SGX ou quelque chose de similaire.

Avantages :

  • Fonctionnerait probablement hors ligne

Désavantages:

  • Toutes les plates-formes ne prennent pas en charge la magie de la sécurité matérielle

L’utilisation d’une longue phrase de passe comme code PIN dans bitwarden est sûre aujourd’hui. Cependant, Bitwarden fait peu d’efforts pour communiquer les risques liés au choix d’un code PIN court à faible entropie. Actuellement, il existe très peu d’informations sur le code PIN dans la documentation de Bitwarden, et il n’est pas mentionné dans le livre blanc sur la sécurité. Un attaquant motivé (par exemple, un plongeur de benne à ordures) peut aujourd’hui récupérer des coffres-forts Bitwarden entiers, à moins que des mesures supplémentaires telles que le chiffrement intégral du disque n’aient été prises.

Leave a Reply

Your email address will not be published. Required fields are marked *

Most Popular

Get The Latest Updates

Subscribe To Our Weekly Newsletter

No spam, notifications only about new products, updates.

Tag

Lire

Articles Similaires