J'ai passé plusieurs jours à essayer de comprendre comment déchiffrer en toute sécurité un disque dur sur un emplacement distant en utilisant TPM2.0 sous Linux. Je ne suis pas un expert en sécurité et c'est ma première bataille avec TPM2.0. J'ai beaucoup appris, mais j'ai encore des questions. Quelqu'un pourrait-il m'aider avec ceux-ci:
Le problème que j'essaie de résoudre est tel que:
/
Chiffrée avec /boot
Non chiffréeinitram
fichier (/boot
N'est pas crypté, donc jouer avec initram
est possible)J'ai pensé à cette solution:
Je pense que j'ai atteint un niveau auquel je peux poser une question légitime sur cette question, mais je ne peux pas moi-même évaluer davantage les implications ou les trous dans ce domaine.
Sur un système Linux, vous pouvez utiliser la chape pour "lier" un volume LUKS au TPM2 et décrypter le système de fichiers racine automatiquement dans votre cas. Par exemple:
clevis luks bind -d /dev/sda3 tpm2 '{"pcr_ids":"0"}'
ou
clevis luks bind -d /dev/sda3 tpm2 '{"pcr_ids":"0,1"}'
Vous en aurez besoin pour être déjà crypté et avoir une phrase secrète, que la commande ci-dessus vous demandera. Vous pouvez laisser la phrase secrète en tant que sauvegarde ou la supprimer par la suite.
Je ne suis pas sûr d'utiliser la valeur PCR0 elle-même comme clé, car dans mon expérience limitée, cette valeur est assez facile d'accès. Je ne crois pas que c'est comme cela que le "scellement" des données contre un PCR fonctionne, mais je ne connais pas la relation exacte entre la valeur PCR et la valeur scellée.
J'ai utilisé une chape pour lier un volume LUKS au TPM2, et un déchiffrement automatique au démarrage quand c'est le système de fichiers racine. J'ai chiffré l'appareil pendant l'installation et j'ai réussi à le lier manuellement et dans un script kickstart. L'outil de chape a ajouté le support TPM2 début 2018 et l'a fait hors du repo "beta" RHEL lorsque RHEL 7.6 a été publié. Je n'ai obtenu que le déchiffrement automatique pour fonctionner sur le volume complet/dev/sd *, pas sur les volumes logiques. J'ai trouvé ce lien très utile: https://blog.dowhile0.org/2017/10/18/automatic-luks-volumes-unlocking-using-a-tpm2-chip/
Je crois que PCR0 est censé changer si le firmware du BIOS est modifié et que PCR1 change même si certains paramètres sont modifiés. Je ne connais pas les meilleurs PCR à choisir; mes informations proviennent d'un seul système et de la spécification PC Client définissant l'utilisation de la PCR à https://trustedcomputinggroup.org/wp-content/uploads/PC-ClientSpecific_Platform_Profile_for_TPM_2p0_Systems_v51.pdf (Section 2.3.4, Tableau 1 ).