Cómo proteger la clave de cifrado mientras la aplicación lo está utilizando

1

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.

    
pregunta RYN 08.10.2012 - 02:18
fuente

1 respuesta

3

Una solución es usar una tarjeta inteligente en lugar de una unidad flash: se pueden organizar para realizar la criptografía sin dejar que la llave se apague. Esto funciona bien si la velocidad no es un problema.

Para un gran volumen de datos, puede usar una clave aleatoria para cada archivo, y colocarla antes del texto cifrado, después de cifrarse con la clave a largo plazo en la tarjeta inteligente, de modo que la tarjeta inteligente sea necesaria para Recupera la clave que descifra el archivo. El siguiente paso es usar criptografía asimétrica en la tarjeta inteligente y pasar a cifrado híbrido , con el beneficio de que uno puede cifrar un archivo para un determinado usuario, sin conocer la clave de descifrado de ese usuario.

    
respondido por el fgrieu 08.10.2012 - 09:33
fuente

Lea otras preguntas en las etiquetas