web-dev-qa-db-fra.com

Récupérer / changer le mot de passe de cryptage

J'ai bêtement changé la semaine dernière mon mot de passe de chiffrement de lecteur complet parce que j'étais apparemment incapable de taper de manière fiable le mot de passe précédent. Malheureusement, mon ordinateur est allumé depuis et je n’ai écrit le nouveau mot de passe nulle part, je l’ai donc oublié. Ce n’est pas mon moment de fierté, mais je suis extrêmement reconnaissant d’avoir réalisé avant que le temps ne soit venu d’entrer le mot de passe. Je suis toujours connecté à l'ordinateur pour pouvoir accéder à tous mes fichiers, mais dès que je l'éteins, je n'ai plus de chance. Je voudrais éviter d'avoir à tout ré-installer si je peux.

Ma question est donc la suivante: existe-t-il un moyen de récupérer/modifier mon mot de passe de cryptage alors que je suis toujours connecté en tant qu'administrateur?

1
Julie K

Sauvegarde et restauration des partitions déchiffrées: Attention ceci est un peu technique

Je suis en train de mettre au point des scripts qui automatiseront la plupart de ces opérations, mais si vous préférez ne pas attendre, j'ai testé les étapes ci-dessous. Assurez-vous simplement de savoir ce que vous faites. Ne suivez pas aveuglément les commandes que j'ai écrites. Certaines d'entre elles peuvent nécessiter des substitutions spécifiques à la configuration de votre système. Une fois que j'ai fini les scripts. Je vais les télécharger sur GitHub et modifier cette réponse.

Malheureusement, vous ne pourrez pas récupérer ou modifier le mot de passe de cryptage. Vous ne pourrez pas en créer de nouveaux non plus sans avoir l'une des clés ou des phrases secrètes existantes. Cependant, puisque vous êtes connecté au système, vous avez de la chance! Voici une option qui, techniquement, ne nécessite pas de réinstallation complète. Vous dites que vous utilisez le chiffrement intégral du lecteur, je suppose donc que vous avez deux partitions principales sur votre lecteur, une partition de démarrage et une partition LUKS (si vous utilisez EFI, vous avez probablement une troisième partition). cette). Ensuite, votre partition LUKS déchiffrée utilise probablement LVM pour toutes les autres partitions déchiffrées.
Votre sortie de lsblk ressemble probablement à ceci:

 NOM MAJ: MIN RM TAILLE RO TYPE MOUNTPOINT 
 Sr0 11: 0 1 1024M 0 rom 
 Sda 8: 0 0 16G 0 disque 
 Sda2 8: 2 0 488M 0 partie /boot
├─sda3 8: 3 0 15G 0 partie 
 Sda3_crypt 253: 0 0 15G 0 crypt 
 Untubuntu - vg-root 253: 1 0 11.8G 0 lvm /
│ ubuntu - vg-swap_1 253: 2 0 3.3G 0 lvm [SWAP] 
 Sda1 8: 1 0 512M 0 part /boot/efi

La seule partie intéressante ici est le disque sda.


Comment y arriver, en général

Fondamentalement, le bit du système crypté est sda3, et il est crypté avec LUKS. Une fois déverrouillée, la partition LUKS contient un volume physique LVM, sda3_crypt, qui héberge un seul groupe de volumes nommé ubuntu--vg. Ce groupe de volumes contient ensuite deux volumes logiques LVM, ubuntu--vg-root et ubuntu--vg-swap_1. Si nous pouvons sauvegarder le volume physique LVM, sda3_crypt, nous pouvons alors supprimer l'ancienne partition LUKS sur sda3, en créer un nouveau et vider le volume physique LVM sur la nouvelle partition LUKS. Il y a une prise, cependant! Tous les fichiers de démarrage de votre partition de démarrage, sda2, font toujours référence à l'ancienne partition LUKS que vous avez détruite. Vous devez mettre à jour votre fichier /etc/crypttab pour qu'il pointe vers la nouvelle partition LUKS que vous avez créée et reconstruire vos disques initram. Une fois que cela est terminé, vous devez redémarrer votre système.

Continuez à lire la section suivante pour connaître les étapes à suivre pour y arriver.


Le processus pas à pas réel

  1. Vous aurez besoin d'un lecteur que vous pouvez vous permettre d'essuyer, ou au moins d'un lecteur dont la taille est égale ou supérieure à celle de sda3. Le contenu de ce lecteur ou de cette partition sera complètement effacé lors de ce processus. Je vais faire cet exemple en utilisant le lecteur entier.
  2. Exécutez lsusb avec votre lecteur connecté et localisez votre disque externe, sdb dans mon cas.
     sdb 8:16 0 16G 0 disque 
     sdb1 8:17 0 16G 0 partie /media/test/external-drive
    sr0 11: 0 1 1024M 0 rom 
     sda 8: 0 0 16G 0 disque [.________ Dasda3_crypt 253: 0 0 15G 0 crypt. 0 3.3G 0 lvm [SWAP] 
     Sda1 8: 1 0 512M 0 part /boot/efi
    
  3. Démontez votre disque externe, car nous allons remplacer le contenu existant. Remplacez /media/test/external-drive par le chemin d'accès réel à votre lecteur dans la commande suivante.
    Sudo umount /media/test/external-drive
  4. Vous devez cloner le volume physique LVM déchiffré existant sur votre périphérique externe. Dans la commande suivante, remplacez sdX par le périphérique de votre disque dur externe. Dans mon cas, j'écrirais ... of=/dev/sdb.... Remplacez également sda3_crypt par le nom de votre partition LUKS. Cela va prendre un bon bout de temps. Il m'a fallu 35 minutes pour un test avec une partition LUKS de 16 Go seulement.
    Sudo dd if=/dev/mapper/sda3_crypt of=/dev/sdX bs=4M status=progress
  5. À partir de maintenant, sachez que les modifications que vous apportez sur votre système risquent de ne pas être présentes lors de la restauration. En fait, il vaut probablement mieux que vous n'utilisiez pas votre ordinateur pendant qu'il fait sa sauvegarde.
  6. Une fois la sauvegarde terminée, redémarrez l'ordinateur à l'aide d'une clé USB Ubuntu en direct et sélectionnez l'option permettant d'essayer Ubuntu sans l'installation.
  7. Une fois le système mis en place, ouvrez un terminal et déposez-le à la racine.
    Sudo -i
  8. Dans ce terminal, créez une nouvelle partition LUKS sur l'ancienne. Dans mon exemple, la partition LUKS est sur sda3. Substituez le numéro correct de votre système à la place de sdaN dans la commande ci-dessous.
    cryptsetup luksFormat -c aes-xts-plain64 -s 512 -h sha512 /dev/sdaN
  9. Suivez les instructions et entrez une phrase secrète que vous espérez ne jamais oublier.
  10. Une fois que cela est fait, vous devez déverrouiller la partition LUKS. Modifiez le numéro correspondant à votre système dans la commande suivante, en remplaçant le chiffre 3 par le numéro approprié pour votre périphérique.
    cryptsetup luksOpen /dev/sda3 sda3_crypt
  11. Votre partition LUKS déchiffrée est maintenant ouverte et prête à décharger le volume physique LVM (commande suivante). Remplacez le X dans sdX par le périphérique de votre lecteur externe. Remplacez le 3 dans sda3_crypt par le numéro approprié de votre partition. dd if=/dev/sdX of=/dev/mapper/sda3_crypt
  12. Encore une fois, vous allez devoir attendre très longtemps, le temps que tout soit restauré. Allez trouver autre chose à faire pendant que vous attendez.
  13. Une fois la restauration terminée, retirez le lecteur externe et redémarrez. Nous voulons nous assurer qu'il n'y a pas de conflits LVM lorsque nous restaurons le système pour terminer la mise à jour des fichiers de démarrage sur le lecteur interne. Une fois redémarré sans le lecteur externe, ouvrez un terminal et passez à root comme à l'étape 7.
  14. Nous devons maintenant déchiffrer à nouveau la partition LUKS. Dans le terminal racine, exécutez ce qui suit en remplaçant le chiffre 3 par le numéro correct pour votre partition. Lorsque vous y êtes invité, entrez le mot de passe que vous avez créé et que vous n'oublierez jamais.
    cryptsetup /dev/sda3 sda3_crypt
  15. Suivant permet de définir certaines variables afin de simplifier les commandes dans les étapes suivantes. Exécutez chacun des éléments suivants. Vous ne verrez pas la sortie car elle sera enregistrée dans les variables
    • vg=$(pvscan | grep PV | tr -s ' ' | cut -f 5 -d ' ') <- enregistre le nom du groupe de volumes dans $ vg
    • export uuid=$(blkid | grep LUKS | grep -oP "\bUUID=\".*?\"" | tr -d '"' | cut -f 2 -d '=') <- Sauvegarde l’UUID LUKS dans $ uuid (c’est une seule ligne)
  16. Il ne reste plus qu’une chose à faire, à savoir mettre à jour les fichiers d’amorçage et, pour ce faire, nous devons monter certaines choses. Exécutez les commandes suivantes dans le terminal racine pour tout monter. Je vais utiliser les informations de partition de mon exemple. Changez vos commandes en conséquence.
    • mount /dev/mapper/${vg/-/--}-root /mnt
    • mount /dev/sda2 /mnt/boot
    • mount /dev/sda1 /mnt/boot/efi <- Ne le faites que pour les systèmes UEFI
    • mount --bind /dev /mnt/dev
    • mount --bind /run/lvm /mnt/run/lvm
  17. Nous devons maintenant nous baser sur votre système actuel.
    chroot /mnt
    Assurez-vous que les commandes suivantes sont exécutées dans ce terminal chroot'd!
  18. Maintenant que nous sommes dans votre système, nous devons installer quelques éléments supplémentaires avant de pouvoir mettre à jour les fichiers de démarrage.
    • mount -t proc proc /proc
    • mount -t sysfs sys /sys
    • mount -t devpts devpts /dev/pts
  19. Ensuite, nous devons mettre à jour le fichier /etc/crypttab avec l'UUID de la nouvelle partition LUKS.
    sed -i "s/UUID=\([0-9a-f\-]\+\)/UUID=$uuid/" /etc/crypttab
  20. Enfin, nous mettons à jour les fichiers de démarrage.
    update-initramfs -k all -c
    update-grub
1
b_laoshi