Sé que todo es reversible. Pero, ¿cómo podría bloquear una instancia de Linux en un dispositivo de hardware específico? Posiblemente vincular el sistema de archivos a un número de serie específico en la placa, por ejemplo.
Sé que todo es reversible. Pero, ¿cómo podría bloquear una instancia de Linux en un dispositivo de hardware específico? Posiblemente vincular el sistema de archivos a un número de serie específico en la placa, por ejemplo.
Aquí hay una solución simple
En el primer arranque, requiere autenticación del servidor. Tener un nombre de usuario que se almacena en el dispositivo. El servidor proporciona una contraseña asociada con ese nombre de usuario.
En la verificación posterior, envíe esa contraseña al servidor.
El servidor devuelve una nueva contraseña que está almacenada. El cliente acusa recibo de la nueva contraseña.
En la verificación posterior, envíe la nueva contraseña. Si no funciona, intente con la última contraseña de trabajo conocida.
El servidor verifica que la contraseña es "la última que se confirmó".
a) Si coincide, el servidor continúa en el paso 3. (nueva contraseña para rotación)
b) De lo contrario, esta es una copia que no está sincronizada con las otras instancias de su dispositivo.
El cliente tendría uso limitado de estas copias hasta que la verificación del Servidor detecte el fraude. El cliente tendría que realizar modificaciones adicionales en su imagen para evitar esta protección.
Esperamos que alguien más sepa cómo verificar el hardware de su dispositivo ARM para obtener un número de serie, ya que eso podría provocar un fallo más inmediato sin esperar la conexión a Internet.
Como admites en tu publicación original, estas protecciones podrían modificarse o eliminarse editando el contenido del SSD antes de duplicar.
La mejor solución sería mover una parte de la funcionalidad a la nube, de modo que se requiera una conexión a Internet para operación en lugar de simplemente verificación . Por supuesto, esto no siempre es una posibilidad.
Puede haber hardware especializado por ahí que no conozco, que es
a) Difícil o imposible de copiar.
b) verifica el contenido del sistema operativo de arranque
c) Si está bien, pasa una clave de descifrado necesaria para descifrar el código de la aplicación antes de que pueda ejecutarse.
Puede haber un hardware especializado (una vez más, no está familiarizado con ninguno) que adopte este enfoque: almacena la clave de cifrado en un almacenamiento autodestructible, de modo que cuando se abra el marco de su dispositivo, el dispositivo ya no ser capaz de arrancar.
También se debe apagar el dispositivo al mismo tiempo para iniciar el proceso de hacer que la memoria sea irrecuperable.
Si está interesado en alguna de estas opciones de hardware especializado, debe publicar una segunda pregunta con detalles específicos y quizás alguien aquí sepa si existen y cómo se llaman.
Editar: muchos dispositivos Android tienen algo llamado Trusted Execution Environment (TEE) y / o Secure Element (SE) que pueden ser términos de búsqueda útiles en la categoría de hardware especializado. Consulte Sistema de almacén de claves de Android .
ARM tiene una implementación informática confiable y algunos licenciados ARM tienen sus propias soluciones. Esto le permitirá cifrar su programa y sus datos tanto en el disco como en la memoria, por lo que no es posible copiar sin dañar físicamente la CPU.
El problema es que la tecnología informática confiable requiere mucho trabajo de integración (desde el cargador de arranque a la aplicación), que puede costar más que el valor de su producto.
Si el procesador ARM que usa ya tiene esta función incorporada, el uso de un sistema operativo basado en Android puede facilitar la integración.
Lea otras preguntas en las etiquetas linux disk-encryption