Cela revient à ceci :vous souhaitez implémenter un schéma DRM. Beaucoup avant vous ont essayé, tous ont échoué. Il n'est pas possible de donner quelque chose (matériel, données) aux utilisateurs et de les empêcher de l'utiliser de manière non intentionnelle ou de le copier. Vous pouvez le rendre plus difficile, mais vous ne pouvez pas l'empêcher. D'autres avec plus de ressources que vous n'en avez essayées (par exemple, Sony, Microsoft, Nintendo pour empêcher le piratage des jeux de console) et à la fin tout a été cassé.
D'après ma réponse précédente, suggestion de @logneck et un peu de google-fu
, je suis arrivé à la conclusion qu'il est possible de mettre en œuvre le schéma demandé dans la question avec outils disponibles et beaucoup de patience/expertise. Cette approche devrait satisfaire la demande de l'OP mais n'est qu'un guide de conception, car elle présente un certain nombre d'inconvénients/pièges. Cela aidera le PO à se défendre contre les naïfs l'attaquant essayant de copier les données du disque crypté.
Mon idée précédente d'utiliser une puce TPM reste valable. Ce guide, que je jamais essayé, affiche comment chiffrer le disque sans avoir à taper de mot de passe et en empêchant quiconque de déchiffrer les données sur une autre machine.
Le TPM est normalement intégré à la carte mère, il ne peut donc pas être déplacé vers un autre matériel. TPM effectue une attestation matérielle, afin que vous puissiez vérifier que l'environnement matériel est conforme et qu'aucune carte tierce n'a été connectée à votre mobo.
Si l'attestation matérielle réussit, le TPM se déverrouille. Ensuite, le module LUKS peut demander au TPM la clé de cryptage du disque, qui est stockée à l'intérieur du TPM déverrouillé.
Si le disque est déplacé vers une autre machine, vous n'aurez pas la clé avec vous.
Comme décrit dans le guide, le processus implique :
- Installer la distribution de votre choix
- Prenez possession de la puce TPM en utilisant
trousers
ettpm-tools
- Installer
trustedgrub2
et utilisez-le comme bootloader - Ajouter la clé de déchiffrement LUKS au TPM
- Sceau le module de plateforme sécurisée
Sceller le TPM signifie faire une attestation matérielle. Le guide que j'ai lié parle du démarrage du BIOS au lieu de l'UEFI (les utilisateurs UEFI connaissent le concept de démarrage sécurisé). Fondamentalement trustedgrub2
va mesurer les logiciels. Cela peut être simplifié en effectuant une somme de contrôle du noyau pour s'assurer qu'il n'est pas altéré. TPM va également mesurer matériel pour vérifier qu'aucune autre carte PCI ou similaire n'a été installée depuis que le TPM a été scellé.
Pendant le processus de démarrage, si le matériel n'a pas été touché/altéré, et le noyau de démarrage est le même qui a scellé le TPM, puis le TPM délivre la clé secrète LUKS au système, afin que le système puisse se déchiffrer.
Résultat :1) le disque est chiffré, 2) aucun mot de passe n'est requis au démarrage, l'utilisateur peut donc redémarrer la machine à tout moment, et 3) la clé ne peut pas être récupérée par un utilisateur car elle réside dans le stockage matériel.
Notez que cette solution, similaire à ce que Microsoft BitLocker, n'est pas parfaite et partage les mêmes pièges de sécurité que la solution de Microsoft. En fait, BitLocker alimenté uniquement par TPM et non par PIN a été critiqué à plusieurs reprises pour sa sécurité plus faible, dont je ne parlerai pas ici.