Les commentaires fusent sur l’attaque de BitLocker présentée par le Fraunhofer Institute for Secure Information Technology (SIT) ici :

2009-12-03 Attacking the BitLocker Boot Process (document PDF)

Quelle est cette attaque ? Il s’agit d’une attaque dite Evil Maid Attack, ou femme de ménage malveillante (ne cherchons pas une traduction littérale pour cette fois). Il faut reconnaître à Joanna Rutkowska l’antériorité sur l’expression Evil Maid Attack, puisqu’elle introduisit cette notion dans un article de janvier 2009 :

2009-01-21 Why do I miss Microsoft BitLocker?

Remarque : dans cet article Joanna Rutkowska écrivait que BitLocker n’était pas vulnérable à cette attaque, ce qui vient d’être infirmé par le papier du Fraunhofer SIT.

En octobre dernier, elle implémente cette attaque contre TrueCrypt :

2009-10-16 Evil Maid goes after TrueCrypt!

Ce qui est commenté par Bruce Schneier une semaine plus tard :

2009-10-23 "Evil Maid" Attacks on Encrypted Hard Drives

Et nous voici aujourd’hui avec cette attaque réussie sur BitLocker. De quoi s’agit-il donc ?

Le principe est assez simple, mais la mise en œuvre l’est moins : lorsque vous utilisez un système de chiffrement de disque, vous devez entrer au démarrage un mot de passe ou un code PIN pour débloquer la clé de chiffrement. L’attaquant, que nous appellerons EMily (EM comme Evil Maid…) doit avoir accès physique à votre PC deux fois.

(1) EMily accède au PC et injecte l’attaque sur la partition active (partition en clair). Le code de l’attaque consiste en un MBR et un fichier sur la partition en clair. Notez déjà que pour ce faire, le PC doit pouvoir démarrer sur la clé USB ou le CD d’EMily, ou EMily doit extraire le disque.

EMily replace le PC à sa place, éteint.

(2) le propriétaire, vous, démarrez le PC normalement. Lorsque BitLocker vous demande votre PIN, vous le saisissez normalement. Le PC redémarre sans prévenir, (tiens, c’est étrange mais bon…), vous entrez à nouveau votre PIN et le PC démarre normalement.

C’est le code d’EMily qui vous a demandé le PIN, en imitant l’écran de saisie de BitLocker (bootmgr). Il l’a ensuite enregistré quelque part sur la partition en clair, puis a rétabli le MBR d’origine, supprimé toute trace de code étranger, et a redémarré le PC. Au redémarrage, BitLocker fonctionne correctement et le code PIN permet de débloquer la clé, puisque rien n’a changé dans le code de boot. Seulement entre temps, le code PIN a été stocké en clair sur le disque.

(3) Enfin, EMily doit à nouveau mettre la main sur votre PC et récupérer le PIN sur le disque.

Que peut faire EMily une fois qu’elle a votre code PIN ? Elle peut démarrer le PC. Mais, comme BitLocker lie la clé de chiffrement au TPM du PC, elle aura besoin d’une autre attaque pour accéder au disque : attaque de la mémoire (cold boot, DMA) pour y trouver la clé FVEK de BitLocker, attaque réseau… L’attaque n’est pas terminée : la protection est simplement revenue au niveau de ce qu’elle est en mode “TPM seul”.

Au final, nous avons là une méthode caractéristique d’une attaque très ciblée : il y a nécessité de deux accès à la machine cible, donc d’une sérieuse préparation. BitLocker est conçu pour protéger les données lors du vol d’un ordinateur portable. Point. Le scénario Evil Maid est efficace quel que soit le système de chiffrement utilisé : il serait certes intéressant et pertinent de le prendre en compte dans Windows, pour couvrir les… 0,001% des cas non couverts par BitLocker (environ :)).

En attendant, je vous conseille vivement la lecture du Data Encryption Toolkit for Mobile PCs –et dormez tranquilles, vos données chiffrées avec BitLocker ne seront pas accessibles en cas de vol.

Pour une réponse “officielle” à ce sujet, voir l’article de Paul Cooke : Windows BitLocker Claims.