Ubuntu 16.04 (ou 17.04) complètement chiffré en dual-boot avec Windows (UEFI)

Ubuntu  complètement chiffré (boot compris) avec Windows

Ubuntu 16.04 - 17.04 en mode UEFI

Pages 1 - 2 - 3 - 4

encrypter

Ce site présente plusieurs tutoriels d'installation d'Ubuntu avec plus ou moins de chiffrement :

  • en système d'exploitation unique avec ou sans la partition de démarrage (boot) chiffrée
  • en dual-boot avec Windows
    • avec uniquement la partition de données personnelles chiffrée
    • avec tout le système chiffré sauf la partition de démarrage (boot).

Ce guide nous emmène un pas plus loin dans le chiffrement puisque cette fois-ci, même la partition de boot sera chiffrée, offrant ainsi une protection maximale au système Ubuntu.

Il s'applique aussi bien à Ubuntu 16.04 (mises à jour assurées jusqu'en 2021) qu'à la version 17.04 (mises à jour jusqu'en 2018).

 

Deux sites m'ont aidé à faire ce guide :

A quoi sert le chiffrement ?

Un simple mot de passe ne suffit pas à protéger un ordinateur.

Si quelqu'un a accès physiquement à votre ordinateur, ou s'il est volé, une simple clef USB avec un système live permet de lire l'intégralité des données non chiffrées (données personnelles ou système d'exploitation). Un logiciel malveillant peut également être installé.

De la même manière, si vous vous débarrassez de votre disque dur, les données restent accessibles après un simple effaçage ou même un reformatage (il est par contre possible d'effacer plus radicalement les données avec des applications spécialisées).

En chiffrant l'ordinateur, on se protège de ces risques.

 

Pourquoi chiffrer aussi le système d'exploitation ?

Même en dehors du répertoire de l'utilisateur (/home sur un système Linux), il y a des données sensibles dans d'autres répertoires. Dans /var et dans /tmp, on va trouver des variables spécifiques à l'installation (journaux ou logs, courriers système, fichiers temporaires, serveur web ...).

On va pouvoir connaître aussi l'ensemble des logiciels et applications utilisés ainsi que leur configuration. C'est donc une source de vulnérabilité.

Par ailleurs, des tests ont montré que le chiffrement complet est plus performant en terme de rapidité que le chiffrement partiel.

 

Pourquoi chiffrer aussi le démarrage (boot) ?

On comprend facilement l'utilité de chiffrer la partition des données personnelles (/home sous Linux).

Quant au système lui-même, le chiffrement permet de protéger des éléments sensibles (fichiers temporaires, rapports de logs...) ainsi que d'empêcher la corruption des logiciels installés par quiconque aurait accès physiquement à l'ordinateur.

L'application de démarrage (Grub ici) est aussi un élément vulnérable. Il peut en effet être l'objet d'une "evil maid attack", c'est à dire d'une modification malicieuse dont le but est d'installer un "key-logger" (enregistrement des touches) afin de connaître le mot de passe de chiffrement.

Cette attaque est facile à réaliser à condition d'avoir accès à l'ordinateur, même s'il est éteint (voir cet article).

Scénario de chiffrement choisi : LVM dans LUKS

Une solution pour chiffrer complètement une installation est de chiffrer chacune des partitions une à une. L'inconvénient est qu'il faudra donner un mot de passe pour chaque partition avant de démarrer le système d'exploitation.

Nous allons donc utiliser ici une autre alternative : un container chiffré (LUKS) contenant des Volumes logiques pour chacune des partitions. Il ne faudra donc donner qu'un seul mot de passe pour déchiffrer les 3 volumes.

Le logiciel LVM (Logical Volume Manager) permet de gérer ces volumes logiques.

Il y a plusieurs niveaux de volume :

  • le volume physique (PV : physical volume) = il s'agit d'un disque physique ou d'une partition d'un disque physique
  • le groupe de volumes (VG : volume group) = il est constitué d'un ou plusieurs volumes physiques (lvm est capable de rassembler plusieurs partitions ou plusieurs disques dans un seul volume. On peut ainsi avoir un système d'exploitation ou un répertoire du système d'exploitation déployés sur plusieurs disques)
    Même lorsque l'on utilise qu'un seul volume physique, il faut tout de même déclarer un groupe de volumes (qui ne contiendra alors qu'un seul volume physique)
  • les volumes logiques (LV : logical volume) = il s'agit de partitions virtuelles qui seront utilisées par le système d'exploitation.

 

Dans notre installation, un seul volume physique sera utilisé. Le schéma d'utilisation de notre disque dur se présentera de la manière suivante (les partitions sur fonds bleu sont celles de Windows) :

 

Avant de commencer l'installation

Choix de la version d'Ubuntu

Ce guide permet l'installation complètement chiffrée d'Ubuntu 16.04 LTS qui proposera des mises à jour pendant 5 ans.

On peut également installer la version supérieure (17.04) en sachant que les mises à jour ne seront assurées que pendant 9 mois et qu'il faudra alors passer à la version suivante.

C'est la version Desktop (station de travail) qui est utilisée ici. Elle convient à un ordinateur personnel. On peut aussi prendre la version Server (serveur) mais le processus est différent car ce n'est pas le même installateur qui est proposé.

L'installation se fait sur un ordinateur en mode UEFI sur une partition de type GPT avec Windows pré-installé.

 

Préalables

  • Savoir accéder au menu de démarrage du BIOS de son ordinateur. Ce menu permet de choisir sur quel périphérique démarrer (disque dur, clef USB...).Pour cela, au moment du démarrage de l'ordinateur, il faut appuyer sur une touche préconfigurée. Selon les cartes mères, il peut s'agir de la touche Del (Suppr), Esc (Echap), une des touches de F1 à F12...
    En règle générale, cette touche est indiquée à l'allumage sur l'écran de démarrage.
    Sinon se reporter au manuel de l'ordinateur ou de la carte mère.

 

  • Eventuellement, savoir accéder au menu de configuration du BIOS. De la même manière que le menu de démarrage, on y accède par une touche à l'allumage de l'ordinateur.Nous pourrons grâce à cela demander à l'ordinateur de booter sur le menu de démarrage Windows ou sur celui installé par Ubuntu (Grub). Cette manipulation n'est pas essentielle car Grub nous donnera la possibilité lui-même d'accéder aux deux systèmes d'exploitation.

 

  • Vérifier que Windows est en mode UEFI (il s'agit du logiciel de la carte mère qui permet d'initialiser l'ordinateur).
    Pour ce faire, dans Windows, Menu Démarrer, taper Informations système (ou msinfo32) et cliquer.
    Dans la fenêtre, aller à la ligne MODE BIOS. Le mode BIOS va indiquer soit UEFI soit legacy (bios classique).

 

Préparer et redimensionner Windows

Si tout le disque dur est utilisé par Windows, il va d'abord falloir faire de la place pour Ubuntu.

Cet article détaille la procédure.

 

Préparer des outils de récupération de Windows

Au cas où l'installation d'Ubuntu en dual-boot tournerait mal, il peut être utile d'avoir préparé des outils de récupération de l'installation Windows et d'avoir fait des sauvegardes.

Procédure dans cet article.

 

Créer une clé live-usb Ubuntu

Cette clé permettra d'une part de tester Ubuntu sans rien modifier à l'ordinateur, d'autre part à installer la distribution en dual-boot avec Windows.

Elle pourra également servir à dépanner l'installation ultérieurement si un problème survenait.

 

Il vous faudra télécharger une image Ubuntu (16.04 ou supérieure) en 64 bits pour avoir la compatibilité avec le mode UEFI.

 

Un tutoriel détaille la création d'une clé live-usb  à partir de cette image depuis Windows.

 

Sur un système Linux, insérer une clef usb, faire la commande :

$ lsblk

avec et sans la clé pour repérer son nom de device (/dev/sdc par exemple) puis lancer la commande (en supposant que l'image téléchargée se trouve dans le répertoire Téléchargement) :

Attention, ne pas se tromper de device (/dev/sdc) sous peine d'effacer irrémédiablement le disque dur plutôt que la clé USB !!!

$ sudo dd bs=4M if=~/Téléchargement/ubuntu-16.04.1-desktop-amd64.iso of=/dev/sdc

Une fois que cette commande se termine (ne pas s'inquiéter si rien ne se passe pendant le temps de la copie qui peut durer plusieurs minutes),

$ sync

À partir de là, on peut commencer l'installation.