Continuons notre tour d'horizon des conférences sécurité des Microsoft TechDays. A côté des présentations de la suite Forefront de Microsoft, qui étaient plutôt "commerciales" (les conférenciers Vincent Martin et Christophe Vallée étant des avant-vente Microsoft France), nous avons eu droit à une conférence un peu plus technique sur BitLocker Drive Encryption.

BitLocker Deep Dive

La conférence était présentée par Pascal Saulière, consultant sécurité chez Microsoft France. Pour ceux qui ne connaissent pas ce produit, BitLocker Drive Encryption est une fonctionnalité disponible dans certaines versions avancées de Windows Vista (Entreprise et Ultimate), permettant à la fois de chiffrer le contenu d'un volume de disque dur, et de vérifier l'intégrité de la séquence de boot. Elle utilise idéalement un chipset cryptographique TPM (Trusted Platform Module) 1.2, bien que cela ne soit pas obligatoire.

Le fonctionnement de BitLocker est transparent pour l'utilisateur, du fait de la position du pilote "FVE Filter Driver" (fvevol.sys) dans la chaîne d'entrée/sortie du disque. En effet, ce dernier se situe entre le NTFS et le "Volume Manager".

Le démarrage du système

Après avoir décrit la structure d'un disque et le processus de démarrage, M. Saulière s'est attardé sur ce qu'il appelle le "Secure Startup". Afin de contrôler l'intégrité de la séquence de démarrage avant le lancement de Windows, chaque étape du démarrage calcule un condensé de l'étape suivante, qu'elle stocke dans un registre du PCR (Platform Configuration Registers), et lui passe la main. Une fois arrivé à l'étape du bootmgr, celui-ci va procéder de même (calcul du condensé) sur /Boot/BCD, va lire les clés chiffrées (les Metadata) et ensuite demander au TPM de déchiffrer ces clés. Le TPM ne les déchiffrera qu'à la condition que les différents condensés stockés dans les registres du PCR correspondent bien à ceux calculés lors de l'installation de BitLocker. Dans le cas où tout s'est bien passé, winload.exe est exécuté, et le TPM lui passe les clés déchiffrées qui lui permettront dé déchiffrer le volume.

A noter que si vous démarrez votre machine avec un DVD bootable dans le lecteur, même si vous n'appuyez sur aucune touche lorsqu'il vous demande "Appuyez sur une touche pour démarrer depuis le CD", la séquence de démarrage aura été modifiée, et le TPM n'acceptera pas de déchiffrer les clés.

Le chiffrement et les protecteurs de clé

L'algorithme de chiffrement de BitLocker est de l'AES en mode CBC sur lequel a été ajouté un diffuseur appelé "Elephant Diffuser". Pour ceux que cela intéresse, un papier a été rédigé par Niels Ferguson de Microsoft, qui explique les points techniques de cet algorithme, couplé au diffuseur "Elephant" (AES-CBC + Elephant diffuser).

Plusieurs clés de chiffrement sont mises en jeu. Voici ci-dessous ce qui est contenu dans les "Metadata" :

  • identifiant du volume chiffré,
  • une FVEK (Full Volume Encryption Key), qui est en fait la clé de chiffrement du volume, et qui est chiffrée elle-même en AES-CCM par la VMK,
  • une VMK (Volume Master Key) par protecteur utilisé. C'est la VMK qui est déchiffrée par le TPM pour bootmgr.

Un protecteur de clé, qui sert à protéger la VMK, est typé au choix parmi les possibilités suivantes :

  • TPM seul,
  • TPM + code PIN,
  • TPM + clé USB,
  • TPM + code PIN + clé USB (uniquement disponible à partir de Windows Vista SP1 et Server 2008).

Dans le cas où le TPM est inutilisable, il faut cependant pouvoir récupérer la clé VMK, ce qui peut être fait en la sauvegardant sur une clé externe (un fichier .bek sur une clé USB), ou par un système de mot de passe de récupération (48 chiffres).

On peut rajouter autant de protecteurs de clé qu'on veut, et on peut aussi vérifier l'intégrité des Metadata (par MAC, Message Authentication Code).

Récupération

Pour permettre la récupération des données sur un disque endommagé, les Metadata sont copiées en 3 emplacements différents sur le disque, toutes liées entre elles. Ainsi, si l'une d'elles se situe sur un secteur de disque défectueux, il sera toujours possible d'en utiliser une autre grâce notamment à l'outil "BitLocker Repair Tool" qui analyse le disque pour trouver les Metadata.

Préconisations

Il est évident que les mises à jour du BIOS risqueraient d'empêcher le démarrage du système si BitLocker est activé. C'est pourquoi, pour effectuer une mise à jour du BIOS, il faut tout d'abord prendre soin de désactiver BitLocker (ce qui ne signifie pas déchiffrer le disque), puis mettre à jour le BIOS, et enfin réactiver BitLocker. Une dernière recommandation formulée par M. Saulière est de partitionner avant l'installation de Windows Vista.