Depende mucho de a lo que te enfrentas (tu escenario ).
Se podría confiar en un usuario "normal" con una máquina sin cabeza y una instalación de Linux cerrada, simplemente cerrando GRUB. Esto y un contrato / licencia adecuados serían suficientes. Puede desconectar el teclado y el mouse de la placa base, sellar la unidad y solo exportar su servicio y SSH.
El siguiente nivel es el cifrado de disco: un tipo más sofisticado pero que sigue mojado detrás de las orejas solo intentará montar el disco desde otra máquina, y tal vez ni siquiera sepa que existe tal cosa como ext4 o NTFS. - posiblemente "¡El disco debe estar formateado!" será suficiente para asustarlo o lo intentará con un lector extfs y no podrá acceder a la partición cifrada.
Esto es más o menos donde querrás parar. Ir más allá agrega complejidad y aún así no puede lograr la seguridad total .
El siguiente nivel es un usuario lo suficientemente inteligente como para comprender que si el disco está cifrado y aún así se inicia , significa que la secuencia de inicio tiene acceso a la clave de descifrado. He oído hablar de controladores experimentales (que trabajan principalmente en la oscuridad) que ocultan la clave en lugares extraños, desde la memoria CMOS no utilizada hasta las EEPROM externas, pero como dice el chiste anterior, ya hemos establecido cómo terminará esto, ahora simplemente regateamos sobre el precio : la cantidad de esfuerzo que requerirá un pirata informático determinado con acceso completo al hardware para ingresar. Si él está lo suficientemente determinado, él se entrará.
Hay controladores (y dispositivos de hardware no detectables, y métodos de virtualización) que permiten interceptar tanto el puerto paralelo como el tráfico USB. Al controlar el reloj de hardware y la E / S, es posible un ataque de repetición que permita el inicio en un sistema manipulado, permitiendo el acceso al disco descifrado desde el "exterior" de una máquina virtual o iniciando servicios adicionales que permitan el mismo. Por lo tanto, tendría que agregar sofisticados mecanismos de autocomprobación para evitar esto.
En este punto, revisa las respuestas al nuevo problema y considere usar una PC especialmente diseñada donde el disco duro no puede ser removido. Tenga en cuenta que "no puedo" significa que usted y yo no pudimos, pero Chuck Norris alguien (de nuevo: suficientemente determinado, lo suficientemente rico, lo suficientemente bien informado, lo suficientemente despiadado ) puede.
Algo que podría intentar (y aún no proporciona seguridad completa) es exigir que la máquina esté siempre conectada a Internet. Sí, los datos están seguros dentro y no salen, pero cuando arranca , la máquina puede acceder a un servidor externo y obtener su contraseña de descifrado desde allí usando un esquema resistente a los ataques de repetición.
Por supuesto, si te enfrentas a un pirata informático determinado, un día la máquina que se conecta a tu servidor no será la máquina real, sino un fragmento de código subvertido que intentará (intentar) robar la clave de descifrado. Sin embargo, con un poco de suerte, esto no tendrá éxito en el primer intento, y en los registros del servidor de claves verá una secuencia de algunos reinicios y solicitudes de claves mientras el tipo explora las defensas.
Otra posibilidad sería permitir al usuario ingresar una respuesta a un desafío a través de SMS. Esto garantizaría al cliente que el servidor no puede filtrar nada, y usted todavía tendría algún tipo de pulso en la situación.
Cambio de arquitectura
Otra posibilidad que se me ocurre es que la PC del usuario contiene sus datos, pero no contiene tu servicio . Esto se descarga directamente a la memoria de forma segura desde Internet y se ejecuta en cada arranque. Necesitaría una aplicación de "supervisor" que examine su entorno y determine que está seguro y sin restricciones, y luego solicita a través de SSL y presenta una clave de licencia el último binario de aplicación de su servidor. El binario se descarga y comienza a hacer lo que debe hacer con los datos en la PC de destino, nunca se guarda en el disco.
El servidor puede verificar la dirección IP de la persona que llama si pertenece a una red de clientes conocida.
Ahora el atacante tiene que engañar a la aplicación supervisora (que todavía se conectará y solicitará un binario incluso si detecta un entorno alterado. Solo lo hará, incluido un indicio sutil de que está actuando bajo presión. - un " señal de buena suerte hawaiana " si así lo desea), y a menos que el atacante sea el propio cliente, también engañar al servidor, así como apoderarse de la computadora. Todavía es posible, fíjate, pero mucho más difícil.