[TrustedGRUB] Erreur à la compilation

Questions et astuces concernant l'installation et la configuration d'archlinux
Body
newbie
Messages : 8
Inscription : lun. 07 mars 2016, 23:26

[TrustedGRUB] Erreur à la compilation

Message par Body »

Bonsoir!

Je suis en train de réinstaller mon système et j'en arrive à la partie du bootloader.
Je me base sur ce projet : https://github.com/Rohde-Schwarz-Cybers ... ustedGRUB2

Quand j'essaye de le compiler, j'ai cette erreur :

Code : Tout sélectionner

grub-core/osdep/unix/getroot.c: Dans la fonction « grub_util_biosdisk_is_floppy »:
grub-core/osdep/unix/getroot.c:751:13: erreur : In the GNU C Library, "major" is defined
 by <sys/sysmacros.h>. For historical compatibility, it is
 currently defined by <sys/types.h> as well, but we plan to
 remove this soon. To use "major", include <sys/sysmacros.h>
 directly. If you did not intend to use a system-defined macro
 "major", you should undefine it after including <sys/types.h>. [-Werror]
   if (major(st.st_rdev) == FLOPPY_MAJOR)
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                            
cc1 : tous les avertissements sont traités comme des erreurs
make[2]: *** [Makefile:5618: grub-core/osdep/unix/libgrubkern_a-getroot.o] Error 1
make[1]: *** [Makefile:10703: all-recursive] Error 1
make: *** [Makefile:3099: all] Error 2
J'ai déjà essayé d'ajouter "#include <sys/sysmacros.h>" au fichier getroot.c mais après j'ai la même erreur mais pour la fonction "makedev".
Ma version de gcc:

Code : Tout sélectionner

Utilisation des specs internes.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/lto-wrapper
Cible : x86_64-pc-linux-gnu
Configuré avec: /build/gcc-multilib/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --enable-multilib --disable-werror --enable-checking=release
Modèle de thread: posix
gcc version 6.3.1 20170306 (GCC) 
Avez-vous déjà rencontré ce type d'erreur ?
Je suppose que je devrais utiliser une ancienne version de gcc pour pouvoir compiler correctement sans modifier le code?

Merci par avance! :)
Lysio
newbie
Messages : 6
Inscription : dim. 30 avr. 2017, 17:59

Re: [TrustedGRUB] Erreur à la compilation

Message par Lysio »

Pourquoi vouloir installer un bootloader à partir de ce lien ?
Est-ce pour des raisons particulières ?
Body
newbie
Messages : 8
Inscription : lun. 07 mars 2016, 23:26

Re: [TrustedGRUB] Erreur à la compilation

Message par Body »

Oui, j'ai souhaité chiffrer ma partition root. J'ai un dualboot avec Windows, ce qui m'empêche de faire du "full disk encryption" avec le bootloader dans une clé usb/carte sd. Mais personnellement, j'ai trop peur de perdre cette clé donc ça m'embête pas plus que ça.

Par conséquent, j'ai ma partition /boot qui est en clair sur le disque et celle de Windows aussi mais je m'en fou. J'ai la capacité d'utiliser le TPM et pour le moment, le seul bootloader que j'ai trouvé qui l'utilise, c'est le projet que j'ai mis. Ce bootloader va me permettre de vérifier l'intégrité de mon système pour savoir si il n'a pas été modifié et ça prend en compte les modules PCI, le code mbr ainsi que mon kernel. Ca permet également de chiffrer également la partition boot (excepté le dossier/partition de grub) avec une clé et la stocker dans le TPM. C'est un sujet qui m'intéresse et je profite de l’occasion pour tester le truc^^.

Mais bon, je bloque à la compilation... Je suis en train lire des réponses dans des mailings lists pour tenter de comprendre comme patcher le "autogen.sh" pour utiliser sysmacros.h correctement. Je galère un peu^^
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [TrustedGRUB] Erreur à la compilation

Message par benjarobin »

Bonjour, ton seul but est d'utiliser le TPM ? Car si je ne dis pas de bêtise Grub 2 permet de lire le kernel dans une partition chiffrée, ce qui implique que tu n'as que Grub non chiffré qui se trouve dans la partition ESP. Tout le reste est chiffré et correctement.
Je trouve que tu te complique un peu trop la tache...
De plus TrustedGRUB2 se base sur une vielle version de Grub2 (Celle du 2015-12-19, soit un peu avant le tag grub-2.02-beta3), ce qui fait que la dernière version de TrustedGRUB2 possède un certain nombre de bug critique connu.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Body
newbie
Messages : 8
Inscription : lun. 07 mars 2016, 23:26

Re: [TrustedGRUB] Erreur à la compilation

Message par Body »

Merci pour l'info, je ne savais pas que Grub2 avait cette fonctionnalité. Sinon oui l'idée était de m'amuser avec le TPM et j'avais effectivement vu la version de grub2 qui était utilisée.

Tu connais bien le TPM ? Car du coup, je me pose la question si j'utilise Grub2 et que je chiffre mon kernel qui est dans une partition à part, déjà faudrait que je tape 2 mots de passe avec ma configuration mais ça aurait été intéressant de stocker la clé dans le TPM pour le kernel et qu'ensuite je saisi mon mot de passe pour ma partition de root mais l'idée est que je ne tape plus de mot de passe ^^ Je vais utiliser un ATtiny85 pour stocker mon mot de passe et qu'à la connexion de la clé, ça saisi le mdp à ma place. Bon ça parait fou hein mais c'est juste personnel ^^ Donc si y a moyen de le manipuler autrement que le bootloader, pourquoi pas.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [TrustedGRUB] Erreur à la compilation

Message par benjarobin »

Non, le 2ième mot de passe n'a pas besoin d'être tapé, il y a une astuce, il est contenu avec le kernel...
Sinon je ne vois pas comment tu peux arriver à une solution (sécurisée) où tu n'as pas besoin de taper de mot de passe même avec TPM. Je ne vois que la solution de la clé USB externe...
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Body
newbie
Messages : 8
Inscription : lun. 07 mars 2016, 23:26

Re: [TrustedGRUB] Erreur à la compilation

Message par Body »

C'est justement l'intérêt de TrustedGRUB... Si je dis pas de bêtise, le TPM c'est un composant qui peut contenir des données de manière sécurisée à l'aide des clés EK et SRK. Il peut aussi générer des hash, des clés rsa et des aléa. Avec ces fonctionnalités, tu peux t'assurer que ton système n'a pas été modifié, ce qui inclut ton Bios, les périphériques PCI, ton bootloader etc... Chose que tu n'as pas en utilisant uniquement Grub2.

Par exemple, Bitlocker l'utilise pour stocker ses clés et déchiffrer la partition Windows sans taper de mot de passe.
Avant d'utiliser TrustedGRUB, faut initialiser le TPM (l'activer dans le bios et charger les modules kernel), et saisir une passphrase pour l'owner (Storage Key - SRK). Après la configuration, TrustedGRUB à juste besoin de la clé "Attestation Key (AIK)" pour accéder aux données et ainsi déchiffrer les partitions.

PS: Bon du coup, je viens de réussir à le compiler en faisant "make CFLAGS=-w" pour passer les warnings.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [TrustedGRUB] Erreur à la compilation

Message par benjarobin »

Désolé je ne connais pas très bien le sujet, mais pour moi il y a comme qui dirait quelque chose qui cloche...
Chiffrer une partition racine permet de se protéger contre le vol de la machine, on est d'accord la dessus ? Pour moi il n'y a aucune autre raison pour vouloir chiffrer la partition racine.
Bref, si tu ne rentre pas de mot de passe, le voleur ne va pas d'embêter à démonter ton PC, il le volera en l'état, donc il pourra le démarrer sans aucun souci car il n'y a pas de passphrase. Si tu n'as pas mit de mot de passe à grub, cela devient triviale d'accéder aux données
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Body
newbie
Messages : 8
Inscription : lun. 07 mars 2016, 23:26

Re: [TrustedGRUB] Erreur à la compilation

Message par Body »

Oui mais après quand je dis qu'il ne faut pas taper de mot de passe, c'était juste pour expliquer que TrustedGRUB était capable de récupérer les données protégées dans le TPM et ensuite déchiffrer les partitions.

Dans mon cas, si je me fais voler mon PC, il devra déjà taper le mot de passe du BIOS au démarrage (même si il peut être reset via le master password ou le flash de l'eeprom). Au démarrage, TrustedGRUB va vérifier l'intégrité de mon PC puis va déchiffrer la partition qui contient mon kernel puis ma partition root en demandant cette fois-ci le mot de passe. L'idée de stocker la clé de chiffrement pour la partition du kernel c'est pour éviter de devoir la taper mais il y a surement la possibilité de procéder de la même manière que Grub2 pour chiffrer le kernel sans utiliser le TPM mais là encore c'est juste pour que je vois le fonctionnement du TPM.

Et si il tente de lire mon disque au travers d'un autre PC, il ne verra que le grub.

J'ai bien compris que je peux faire la même chose avec Grub2 sans me compliquer autant la tâche mais c'est ce côté de "Chaine de confiance" que je recherche.
Répondre