BitLocker : le cryptage de Windows Vista

Aymeric Morilleau

La sécurité est aujourd'hui au cœur de l'informatique, Windows Defender, Windows OneCare… Microsoft répond à la problématique avec une suite de nouveaux produits. BitLocker répond au problème de sécurité lié aux ordinateurs volés et dont le contenu doit être préservé de la divulgation, ainsi qu'au besoin d'un système sûr, et ce, dès son démarrage. ♪

- Titre : BitLocker : le cryptage de Windows Vista

- Auteur : Aymeric Morilleau

- Parution : 19 avril 2006

- Mise à jour : 19 avril 2006

- Licence : Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.

Sommaire

- I. Introduction

- II. La TPM

- II-A. Protection du boot

- II-B. Le stockage des clés

- III. BDE : BitLocker Drive Encryption

- IV. Conclusions

I - Introduction

Toute information donnée ici est basée sur des tests effectués sur les différentes versions bêta de Windows Vista. Ces informations peuvent être modifiées ou n'être plus valides du jour au lendemain. Prenez-les à leur juste valeur informative.

BitLocker est la première concrétisation du projet « Palladium ». Ce projet, déjà lancé il y a quatre ans (juin 2002) visait à sécuriser l'exécution des logiciels. Après plusieurs changements de cap et de nom (notamment NGSCB pour Next Generation Secure Computing Base) Microsoft présente aujourd'hui : BitLocker, une solution de sécurité visant à protéger l'intégrité des données, ainsi qu'à assurer un délai maximum dans la récupération malveillante de données. En effet, aucune solution de sécurité n'est inviolable, et c'est encore plus vrai dans le temps, un système de sécurité intégrant de la cryptographie perdra forcement de son efficacité avec les années. Si on considère les trois niveaux suivants : le document, le disque utilisateur et le disque système, on peut sécuriser chacun de ces niveaux, RMS pour les documents, EFS pour les disques utilisateurs, et enfin BitLocker pour les disques système.

BitLocker est l'union de deux solutions de sécurité. La première sécurise l'exécution du code jusqu'au moment du boot, et la seconde protège l'intégralité de votre disque dur, ainsi sont protégées vos données, mais également les fichiers système.

En pratique, BitLocker s'applique notamment dans les cas suivants : il protège vos données de la divulgation face aux attaques de type exécution d'un liveCD ou de récupération du disque dur pour le monter sur une autre machine et copier les informations. Le test successif de la séquence de boot protège lui de toute attaque bas niveau qui intervienne sur les étapes précédentes et permettant à l'OS de se lancer.

II - La TPM

Depuis quelques années, le projet TPM a été présenté aux principaux fabricants de cartes mères, ce projet vise à embarquer une puce (la TPM) qui contiendra des éléments de sécurité, ainsi que les clés du cryptage BitLocker. La TPM est aujourd'hui dans sa version 1.2, et c'est cette même version qui sera nécessaire pour pouvoir mettre en œuvre la solution BitLocker sous Windows Vista.

La TPM est donc un composant hardware, implanté par le constructeur, cependant il n'existera pas un driver par constructeur, mais un seul driver, développé et suivi par Microsoft.

II-A - Protection du boot

En premier lieu, les cartes mères qui présentent la solution TPM devront garantir que la zone mémoire de stockage du code d'initialisation de la TPM soit « inviolable », en effet ce code sera la base d'une chaîne de démarrage sécurisé.

On peut facilement décomposer le démarrage d'un PC en plusieurs modules :

- TPMinit
- BIOS
- MBR
- BootSector
- BootBlock
- BootManager
- OSLoader

La main passera d'un de ces modules à son suivant de la manière suivante.

Premièrement, la TPM repose sur une certification hardware, qui stipule explicitement que la ROM dans laquelle est stockée le TPMinit n'est pas modifiable.

La TPM contient 14 registres, les 7 premiers stockent les hash (SHA-1) des modules lors de leur précédent lancement. Chaque module compare son hash à celui stocké dans le TPM, s'exécute, puis calcule le hash du module suivant, si les hash sont identiques, il passe la main au module suivant, et ainsi de suite, jusqu'à l'OSloader.

Cette méthode sécurise totalement le lancement de la machine, ainsi que l'ensemble des exécutions se faisant en « interne » et précède le lancement du système d'exploitation.

II-B - Le stockage des clés

La seconde, et principale fonction de la TPM est de stocker les clés de cryptage qui protégeront le système d'exploitation. Ce stockage présente les spécificités suivantes :

- une clé unique appelée EK (Encryption Key) : SHA-1 128bit, elle servira à crypter le contenu du TPM, cette clé, fixée par le constructeur sera déterminée de manière totalement indépendante du numéro de série du composant TPM ;
- la clé qui permettra de déverrouiller le système d'exploitation : SRK (Storage Root Key) RSA 2048 bit ;
- les registres des hash de la plateforme : SHA-1.

Il est à noter que le type de clé pour l'EK ainsi que la clé de verrouillage du disque système ne sont pas sensibles au problème de sécurité qu'est le « Break Once, Break Everywhere ». En effet, casser une de ces clés ne vous permettra pas de décrypter un autre disque que celui protégé par la clé cassée.

III - BDE : BitLocker Drive Encryption

BitLocker Drive Encryption (BDE) vise non seulement à protéger la divulgation de documents en cas d'attaque de type Log Off, mais également à garantir l'intégrité du système. En ce sens la partition contenant le système d'exploitation sera entièrement cryptée.

Afin de répondre au besoin exposé, BDE se devait d'être situé sur une couche plus basse que Windows, pour que son fonctionnement soit transparent du point de vue de l'utilisateur. Un des défis de son architecture était que les clés de cryptage soient disponibles dès le démarrage de la machine. La TPM répond pleinement à cette problématique.

Bien entendu il est impossible de penser que l'OSLoader sera capable de gérer le cryptage/décryptage à la volée du disque système, il faudra donc prévoir une partition de quelques centaines de Mo (300 nécessaires/500 recommandés) pour placer un kernel léger qui gérera cette tâche de cryptage . Le système de fichiers de ces deux volumes devra être NTFS.

Le chiffrage de la partition système sera AES 256 bit CBC (algorithme « éléphant »), cet algorithme de diffusion assure une meilleure sécurité. Un algorithme de diffusion va éclater les changements résultants d'une modification de la source sur le disque, de ce fait le changement d'un octet source entraînera la modification de plusieurs octets dans le disque crypté, rendant ainsi plus complexe la détermination de la clé utilisée.

Les prérequis pour mettre en place BDE sont les suivants :
- Microsoft Windows Vista (Enterprise ou Ultimate) ;
- un hardware TPM 1.2 ;
- pas de dual boot sur le disque système ;
- BIOS compatible TGS (SRTM : Static Root Trusted Measurement) ;
- deux partitions NTFS ;
- Activer TPM dans le BIOS.

IV - Conclusions

BitLocker regroupe une suite de bonnes idées, mais semble être encore un peu jeune. Pour ces raisons je n'ai pas encore essayé d'installer un Windows Vista crypté par BitLocker. Les informations de cet article sont donc la somme de plusieurs informations assemblées (notamment la présentation de BitLocker au JMSI 2006). Il reste beaucoup de questions autour de l'implication des fabricants de cartes mères dans le déploiement de puces TPM dans les systèmes actuels. Je n'ai également aucune idée de la consommation de ressources que prendra le cryptage et décryptage à la volée du disque système. Il en ressort malgré ces détails que BitLocker est une solution intéressante pour les PC nomades ou exposés (comptoir d'accueil…) contenant des informations sensibles.