Double boot Windows/Linux sur des machines chiffrées avec PBA

Ce tutorial a été réalisé dans le cas suivant :

  • machine intégrée dans un environnement Windows, qui doit respecter des règles dans un environnement d'entreprise
  • chiffrement logiciel de partitions, et non de disque
  • Securedoc WinMagic : outil de sécurité de type PBA (Pre-Boot Authentification), qui se positionne à l'amorçage sur le disque dur, avant le lancement du bootloader
  • Boot sur disque MBR (et non GPT, ou via UEFI)

Partitionnement initial considéré, classiques chez les constructeurs de PC :

  1. SYSTEM (ntfs) : équivalent de la partition /boot sous Linux
  2. WINDOWS (ntfs) : OS éponyme
  3. *_RECOVERY (ntfs) : partition de restauration complète de l'OS
  4. *_TOOLS (fat16) : outils du constructeur, utilisée aussi par WinMagic

Introduction

Un système Linux peut être installé en tant que VM au sein de VirtualBox par exemple. Si ceci permet un usage d'autres outils que ceux du monde Windows, les performances d'une machine virtuelle restent limitées du fait de :

  • la couche de stockage virtualisée plus lente, elle même stockée sur un stockage Windows dégradé en performance du fait du chiffrement de l'hôte
  • la mémoire disponible réduite à cause de la part prise par l'hôte
  • l'accélération graphique limitée

Il peut donc être souhaitable d'utiliser un système Linux utilisé en double boot avec Windows.

WinMagic

Voici les données importantes utilisées par WinMagic :

  • programme dans la MBR
  • fichiers WinMagicSECURDOC.WMG et WinMagic/SECURDOC.PH1, présent à priori dans une partition non chiffrée : ils contiennent probablement le programme complet WinMagic chargé en relai depuis la MBR, et la clef de déchiffrement (protégé par mot de passe comme LUKS ?) des partitions Windows chiffrées
  • partiton SYSTEM : Boot/BCD : le chargeur d'amorçage de Windows légèrement patché pour le déchiffrement

Installation

Précaution : il est souhaitable de faire une image complète du disque, en vue d'une restauration ultérieure en cas de souci (sudo dd if=/dev/sda bs=16M | gzip -c > image.gz).

Préparation

Pour installer Linux, il est nécessaire de procéder aux opérations suivantes :

  • déchiffrement de la partition Windows si elle a été chiffrée
  • démarrage sur le média d'installation de Linux
  • partitionnement :
    • si 4 partitions primaires : suppression de la partition <constructeur>_recovery inutile (faire au besoin une sauvegarde avec un dd de la partition)
    • réduction de la taille de la partition Windows
    • création d'une partition étendu dans l'espace libéré
    • création d'une partition logique pour le système Linux (10Go, brtfs)
    • création d'une partition logique pour le swap (2G)
    • création d'une partition logique non formatée, qui contiendra le home chiffré (le reste)
  • chiffrement du home :
    sudo cryptsetup luksFormat /dev/sda7
    sudo cryptsetup luksOpen /dev/sda7 home_crypt
    sudo dd if=/dev/zero of=/dev/mapper/home_crypt
    sudo mkfs.ext4 -L home /dev/mapper/home_crypt

Installation

Installation Linux à la suite de l'opération précédente, en affectant les points de montage aux partitions.

Le double boot se fait automatiquement, avec Grub.

Pour déchiffrer le home au démarrage de linux,

  • identifier l'UUID de la partition home chiffrée
    sudo blkid | grep LUKS
  • ajouter la ligne appropriée dans /etc/crypttab
    home_crypt        UUID=12345678-9abc-def012345-6789abcdef01     none      luks
  • éditer les montages dans /etc/fstab
    /dev/mapper/home_crypt        /home           ext4    defaults        0       2

Post-installation

Il faut maintenant remettre en place le chiffrement de la partition Windows.

Ensuite, il faut prendre quelques précautions supplémentaires pour éviter une perte totale de données en cas de réinstallation de Linux. En effet, la solution WinMagic :

  • se positionne dans la MBR à la place du chargement d'amorçage normal, avant de passer le relais au chargeur d'amorçage
  • sert en particulier à accéder à la clef de chiffrement de la partition Windows

Aussi la réinstallation de Linux viendra réécrire la MBR ce qui aura pour effet la perte totale de l'accès aux données chiffrées Windows.

Sauvegarde

Une fois le chiffrement remis en place sous Windows, voici les sauvegardes à faire :

  • indispensable : la MBR :
    sudo dd if=/dev/sda of=~/mbr-backup-512.bin bs=512 count=1
  • éventuellement les fichiers décrit précédemment

Réglage de Grub

La partition Windows étant chiffrée, grub n'est plus en mesure de la détecter lors de la génération de son fichier de configuration.
Néanmoins il suffit peut l'amorcer normalement, le programme WinMagic ayant auparavant préparer ce qu'il faut pour la déchiffrer.

Ajouter le contenu suivant au fichier /etc/grub.d/40_custom

menuentry 'Windows 7 (loader) (chiffré sur /dev/sda2)' --class windows --class os {
        insmod part_msdos
        insmod ntfs
        set root='hd0,msdos2'
        chainloader +1
}

Regénérer ensuite la configuration de grub :

sudo update-grub2

Réinstallation

En cas de réinstallation de grub, ou d'un autre linux, sans avoir déchiffrer les données de Windows

  • restaurer le programme d'amorçage WinMagic dans la MBR :
    sudo dd if=~/mbr-backup-512.bin of=/dev/sda bs=446 count=1

Contributeurs : Id2ndR

  • tutoriel/dualboot-preboot-authentification.txt
  • Dernière modification: Le 28/04/2018, 11:24
  • (modification externe)