web-dev-qa-db-fra.com

Attaque hors ligne de Brute Force contre un PC Windows à verrouillage de bits

J'évalue actuellement la sécurité de Bitlocker du point de vue d'une attaque hors ligne contre un mot de passe stocké (utilisé pour sécuriser la clé Full Disk Encryption). Mon hypothèse est que le mot de passe utilisé pour déchiffrer/déterminer la clé FDE doit être stocké d'une manière ou d'une autre sur le disque, sinon il serait impossible de déterminer si la clé FDE est correcte ou non.

Ma question est, si, par exemple, un ordinateur portable a été volé et qu'il utilisait Bitlocker pour sécuriser le mot de passe utilisé pour déverrouiller le volume du système d'exploitation, à quel point serait-il résistant à une attaque hors ligne aux fins de récupération du mot de passe =? Quelles techniques/algorithmes utilise-t-il pour se protéger contre une attaque comme celle-ci?

Attention, je suis moins intéressé par la récupération des données sur le disque ou la clé FDE. Cela m'intéresse uniquement en raison de la résistance du mot de passe de l'utilisateur lui-même à une attaque hors ligne contre un attaquant qualifié en possession d'un ordinateur portable volé.

11
MattCotterellNZ

L'attaque que vous décrivez est un problème fondamental pour tous les types de cryptage: si vous souhaitez utiliser un mot de passe comme (source de) la clé de cryptage, le mot de passe doit avoir autant d'entropie que la force de cryptage souhaitée, sinon vous êtes vulnérable au hors ligne forçage brutal.

Donc oui, si Bitlocker utilisait simplement le mot de passe que vous avez entré comme (source de) la clé, il serait vulnérable à cette attaque.

Bitlocker fournit plusieurs mécanismes d'authentification, qui résolvent ce problème de différentes manières.

  • Le mécanisme recommandé (AFAIK) consiste à utiliser Trusted Platform Module (TPM) de l'ordinateur. Avec l'authentification TPM (appelée Mode de fonctionnement transparent avec Bitlocker), la puce TPM stocke la clé Bitlocker. Le module de plateforme sécurisée est spécifiquement conçu pour libérer cette clé uniquement si un certain mot de passe/PIN est fourni et pour limiter le nombre de tentatives d'authentification. Par conséquent, un mot de passe/PIN relativement faible est suffisant, car le mot de passe ne peut pas être attaqué hors ligne, car il est stocké dans le TPM.
  • Une autre solution consiste à utiliser le mode Clé USB . Dans ce mode, soit la clé est stockée sur une clé USB (éventuellement protégée par un mot de passe), soit un périphérique USB spécial est utilisé pour effectuer une authentification sécurisée (similaire à une puce TPM). Encore une fois, une attaque hors ligne n'est pas possible, car la clé est stockée sur le périphérique USB. Cependant, si le périphérique USB n'est qu'un simple périphérique de stockage, une attaque hors ligne contre lui est possible (il doit donc être stocké de manière très sécurisée).

Le mode clé USB et le TPM peuvent être combinés pour une sécurité encore meilleure.

Notez qu'il est possible d'utiliser Bitlocker sans puce TPM (bien que cela ne soit apparemment pas recommandé par Microsoft). Si vous faites cela, vous êtes en effet vulnérable aux attaques de renforcement brutal des mots de passe, vous avez donc besoin d'un mot de passe avec une entropie suffisante, c'est-à-dire au moins 128 bits, mieux 168 bits.


Pour une discussion approfondie des choix de conception, des compromis de sécurité et de la technologie de Bitlocker, consultez l'article AES-CBC + Elephant diffuseur, A Disk Encryption Algorithm for Windows Vista par Niels Ferguson, disponible à partir de - http://go.Microsoft.com/fwlink/?LinkId=80598 .

6
sleske

BitLocker crypte le lecteur à l'aide d'une "clé principale de volume", qui n'est jamais placée directement dans un stockage persistant. Un ou plusieurs "protecteurs de clés" sont présents dans les métadonnées de volume, chacun d'eux fournissant un moyen d'obtenir le VMK. Pour les protecteurs basés sur PIN/mot de passe, le mot de passe est transmis via une fonction de dérivation de clé très lente (quelque chose comme bcrypt, mais je ne suis pas vraiment sûr de la fonction ou des paramètres exacts). Les paramètres varient probablement selon le matériel, mais cela prend plus d'une demi-seconde sur ma machine de travail.

Je crois que cette clé dérivée est ensuite vérifiée par rapport à un hachage stocké et, si elle correspond, utilisée pour déchiffrer le VMK (c'est-à-dire que le protecteur PIN/Password contient une version du VMK, chiffrée à l'aide de la clé que le KDF recrache, et un hachage de la clé dérivée, utilisé pour vérifier l'exactitude de la clé dérivée).

Pour tenter de forcer brutalement le mot de passe, vous devrez comprendre l'algorithme et ses paramètres (sel, facteur de travail, etc.). À moins que vous n'ayez de sérieuses ressources informatiques disponibles, il faudra très longtemps pour qu'une recherche par force brute trouve quoi que ce soit en raison de la lenteur de KDF.

L'implémentation de BL la plus utilisable par le code que je connaisse est le dislocker git repo , dislocker étant une implémentation open-source (partielle) de BitLocker (écrite comme pilote de fusible). Je ne connais aucun outil de forçage brut prêt à l'emploi pour BitLocker, mais vous pourriez probablement en créer un au-dessus du code de dislocker. Cela prendra probablement un certain temps à courir!

5
CBHacking

Les outils de chiffrement complet du disque reposent sur AES qui est toujours considéré comme sécurisé aujourd'hui. La plupart des attaques ciblent donc le système d'exploitation lui-même au lieu du mécanisme de chiffrement utilisé par ces outils.

Les attaques auxquelles vous pourriez être confronté en cas de vol de votre machine dépendent de plusieurs facteurs. Tout d'abord, sur la façon dont vous l'avez configuré. Les configurations qui nécessitent une authentification avant de démarrer le système d'exploitation empêchent un pirate informatique d'attaquer immédiatement le système d'exploitation. Donc, tout d'abord, définissez Bitlocker avec l'option d'authentification de pré-démarrage.

Avant de crypter les disques, assurez-vous que votre machine est à l'abri des rootkits et bootkits de présence qui peuvent avoir les mêmes privilèges que votre système d'exploitation et peuvent même compromettre votre clé de chiffrement de volume complet car elle est chiffrée par la clé principale de volume et stockée dans le volume chiffré. Notez que l'UEFI est destiné à protéger à nouveau votre système contre la présence de rootkits et de bootkits, mais il n'est pas infaillible.

Une autre chose à considérer est les attaques de connexion par force brute qui peuvent être exécutées même contre l'authentificateur de pré-démarrage que nous avons mentionné ci-dessus.

Un attaquant peut également utiliser Thunderbolt pour connecter un autre appareil à votre ordinateur portable. Étant donné que les ports DMA (accès direct à la mémoire) ne fournissent pas d'authentification ou de contrôle d'accès pour protéger le contenu de la mémoire de l'ordinateur sur lequel le périphérique n'a qu'un accès en lecture, vous pouvez imaginer une attaque basée sur ces faits (appelés attaques DMA ). Notez que si vous exécutez Windows 8, vous savez peut-être que les appareils certifiés Windows 8 InstantGo ne disposent pas de ports DMA, éliminer le risque d'attaques DMA

Ainsi, en conjonction avec la configuration de l'authentification de pré-démarrage, vous pouvez également utiliser un périphérique USB (tel qu'un lecteur flash) pour stocker la clé de démarrage BitLocker et l'utiliser pour vous authentifier avec votre code PIN/mot de passe: c'est une autre couche de sécurité dans laquelle même si votre code PIN/mot de passe est forcé par la force, la clé de démarrage Bitlocker est toujours en sécurité (supposons que votre ordinateur portable et votre périphérique USB ne puissent pas être volés par le même attaquant)

2
user45139