Hice una aplicación J2SE que usa AES (en modo CBC usando la biblioteca BouncyCastle) para cifrar el archivo de configuración de la aplicación & algunos archivos proporcionados por el usuario.
Almacené la clave AES sin procesar en un archivo que está almacenado en una unidad flash. Para utilizar la aplicación, la unidad flash se debe conectar primero a la máquina. Los usuarios no tienen acceso físico al puerto al que está conectada la unidad flash.
Pero el problema es: ¿Qué hay de copiar un archivo KEY o abrirlo con un editor HEX & escribiendo bytes en un papel?
¿Cómo puedo proteger el archivo de clave contra la copia (por el archivo o visualmente)?
Nota: pensé en cargar la clave en la RAM y obligar al usuario a desconectar la unidad flash, pero esto solo disminuye el tiempo para copiar la clave.