Se trata de esto:desea implementar un esquema DRM. Muchos antes lo han intentado, todos fracasaron. No es posible dar algo (hardware, datos) a los usuarios y evitar que lo usen de forma no intencionada o lo copien. Puedes hacerlo más difícil, pero no puedes evitarlo. Otros con más recursos de los que has probado (ej. Sony, Microsoft, Nintendo para evitar la piratería de juegos de consola) y al final se ha estropeado todo.
Según mi respuesta anterior, sugerencia de @logneck y un poco de google-fu
, llegué a la conclusión de que es posible implementar el esquema solicitado en la pregunta con herramientas disponibles y mucha paciencia/experiencia. Este enfoque debería satisfacer la solicitud del OP, pero es solo una guía de diseño, ya que tiene una serie de inconvenientes/trampas. Ayudará al OP a defenderse de los ingenuos atacante tratando de copiar datos del disco encriptado.
Mi idea anterior de usar un chip TPM sigue siendo válida. Esta guía, que nunca probado, muestra cómo cifrar el disco sin tener que escribir una contraseña y evitando que alguien descifre los datos en otra máquina.
El TPM normalmente está integrado en la placa base, por lo que no se puede mover a otro hardware. TPM realiza la atestación de hardware, para que pueda verificar que el entorno de hardware cumpla con los requisitos y que no se haya conectado ninguna tarjeta de terceros a su placa base.
Si se aprueba la atestación de hardware, el TPM se desbloquea solo. Luego, el módulo LUKS puede solicitar el TPM para la clave de cifrado del disco, que se almacena dentro del TPM desbloqueado.
Si el disco se mueve a otra máquina, no tendrá la clave con usted.
Como se describe en la guía, el proceso implica:
- Instalando la distribución de su elección
- Tome posesión del chip TPM usando
trousers
ytpm-tools
- Instalar
trustedgrub2
y usarlo como gestor de arranque - Agregue la clave de descifrado de LUKS al TPM
- Sello el TPM
Sellar el TPM significa hacer una atestación de hardware. La guía que vinculé habla sobre el arranque de BIOS en lugar de UEFI (los usuarios de UEFI están familiarizados con el concepto de arranque seguro). Básicamente trustedgrub2
medirá El software. Esto se puede simplificar haciendo una suma de verificación del kernel para asegurarse de que no se altere. TPM también medirá hardware para comprobar que no se ha instalado ninguna otra tarjeta PCI o similar desde que se selló el TPM.
Durante el proceso de arranque, si el hardware no ha sido tocado/manipulado, y el kernel de arranque es el mismo que selló el TPM, luego el TPM emite la clave secreta LUKS al sistema, para que el sistema pueda descifrarse a sí mismo.
Resultado:1) el disco está encriptado, 2) no se requiere contraseña en el momento del arranque, por lo que el usuario puede reiniciar la máquina en cualquier momento, y 3) el usuario no puede recuperar la clave porque se encuentra en el almacenamiento del hardware.
Tenga en cuenta que esta solución, similar a Microsoft BitLocker, no es perfecta y comparte los mismos problemas de seguridad que la solución de Microsoft. De hecho, BitLocker impulsado solo por TPM y no por PIN fue criticado repetidamente por su seguridad más débil, que no discutiré aquí.