BitLocker Network Unlock, 1ère partie : présentation et préparation du client

Lors des Techdays 2013 j'ai co-présenté avec Arnaud Lheureux une session (SEC303) de démonstrations des nouveautés de sécurité de Windows 8. Une de mes démonstrations concernait la nouvelle fonctionnalité de déverrouillage de BitLocker par le réseau, ou BitLocker Network Unlock. L'objet de cette fonctionnalité est de permettre un déverrouillage automatique du volume système au démarrage lorsque le PC est sur le réseau interne de l'entreprise, et d'utiliser le mode TPM+PIN lorsque le PC n'est pas sur le réseau. Ce principe est intéressant pour des portables ou pour des postes ou serveurs fixes, lesquels démarreront sans intervention dès lors qu'ils sont sur le réseau interne, mais ne démarreront plus en cas de vol.

La mise en œuvre de cette fonctionnalité pour la démonstration n’a pas été sans mal, et quelques personnes m’ont fait part, après la session, de leur difficulté à la faire fonctionner. Cela mérite donc de rentrer dans le détail de la démarche que j’ai suivie.

Mais avant d’entrer dans le détail de la mise en œuvre, comment cela fonctionne-t-il ?

L’infrastructure nécessaire comporte un serveur avec le rôle WDS et la fonctionnalité BitLocker Network Unlock. Ce serveur doit disposer d’un certificat (avec sa clé privée) spécifique pour cette fonctionnalité, et le certificat est déployé sur tous les postes par une stratégie de groupe. Lorsqu’un client chiffre son volume C: avec le protecteur TPM+PIN, s’il dispose du certificat en question, alors il ajoute automatiquement un protecteur de type Network (Certificate Based) . Si l’on observe les protecteurs sur un poste disposant de la fonctionnalité :

Network Protector

Dans ce cas l’empreinte (thumbprint) du certificat utilisé est bien celle du certificat déployé par stratégie de groupe et qui se trouve dans le registre du poste sous la clé HKLM\SOFTWARE\Policies\Microsoft\SystemCertificates\FVE_NKP\Certificates.

Le fonctionnement du protecteur Network repose sur le TPM et une clé chiffrée, qui est envoyée au serveur pour être déchiffrée puis retournée au poste, le tout de manière sécurisée. Le certificat du serveur est utilisé pour cette opération.

L’envoi de la clé chiffrée au serveur est effectué par le client au démarrage du système par bootmgr. Celui-ci utilise la firmware UEFI pour envoyer la requête au serveur à l’intérieur d’une requête DHCP. C’est WDS qui va recevoir cette requête et la traiter. La condition principale pour cette fonctionnalité est donc un firmware UEFI sur le poste client, capable d’émettre cette requête DHCP. Il doit supporter EFI_DHCP4_PROTOCOL et EFI_IP4_PROTOCOL. Le PC doit démarrer en UEFI pour que cela fonctionne.

DHCP Request
Requête DHCP émise par le client et capturée sur le serveur WDS.

Windows 8 doit donc être installé en UEFI, le disque partitionné en GPT. De plus, le firmware UEFI du poste doit être compatible avec BitLocker Network Unlock, ce qui signifie qu’il doit supporter les EFI_DHCP4_PROTOCOL et EFI_IP4_PROTOCOL. Il doit également avoir accès à l’interface réseau Ethernet lors du démarrage, ce qui nécessite une interface Ethernet intégrée et pas un adaptateur USB…

Parmi les diverses machines que j’avais à ma disposition pour les Techdays, les plus modernes et sexy avaient bien un firmware UEFI mais pas d’interface Ethernet intégrée. La seule machine qui a priori pouvait fonctionner était un Lenovo ThinkPad T420s, mais les premiers tests étaient infructueux.

Un peu de recherche m’a finalement dirigé vers une ancienne version beta du firmware, seule version à avoir supporté, le temps d’une beta, les fonctions EFI nécessaires.. Il s’agit de la version 1.33a du 6 juin 2012, et à ce jour aucune autre version précédente ou suivante du firmware du T420s ne supporte BitLocker Network Unlock. Pour corser le tout, le firmware 1.33a n’est disponible que sous la forme d’une image ISO de CD, ce qui a nécessité une course au magasin du coin pour trouver des CD vierges, symboles de temps anciens…

Donc au final, sur un Lenovo T420s, il suffit d’installer la version 1.33a du firmware à partir de l’image ISO disponible ici :

BIOS Update Bootable CD for Windows 8 Beta - ThinkPad T420s and T420si
https://support.lenovo.com/en_US/downloads/detail.page?&DocID=DS029925

Lenovo T420s Frmware 1.33a

Il faut également configurer le firmware pour ne démarrer qu’en UEFI ; voici à quoi cela ressemble sur le Lenovo en question :

Lenovo firmware UEFI

Ensuite, il faut installer Windows 8 en UEFI sur cette machine. Pour ce faire :

  • Formater une clé USB (4 ou 8 Go par exemple) en FAT32.
  • Copier le contenu de l’ISO de Windows 8 Pro ou Enterprise sur la clé USB formatée en FAT32.
  • Brancher la clé sur le PC, démarrer, aller dans les options de démarrage et choisir de démarrer sur la clé USB.
  • Installer Windows 8 en supprimant toutes les partitions présentes et en laissant le setup repartitionner le disque.
  • Vérifier que Windows 8 démarre effectivement en UEFI : lancer msinfo32.exe. Dans System Summary, vérifier BIOS Mode = UEFI.

Une fois Windows 8 installé en UEFI, il suffit de joindre le domaine et d’appliquer toutes les mises à jour disponibles sur Windows Update.

Dans une deuxième partie nous aborderons l’installation de l’infrastructure, selon ma procédure légèrement adaptée de la documentation de référence sur Technet : https://technet.microsoft.com/en-us/library/jj574173.aspx.