Estoy configurando un sistema donde los dispositivos se probarán justo después de la producción. Cada dispositivo tiene una clave AES dada individualmente, que debe ser conocida para poder comunicarse. Esas claves individuales son entregadas por el fabricante del dispositivo en un archivo de envío (uno por cada 1000 dispositivos), que a su vez está encriptado por RSA. Solo la autoridad de prueba tiene la clave privada para descifrar dichos archivos de envío.
El plan actual fue el primero en exportar las claves del dispositivo desde los archivos de envío a una base de datos central. Esto se hará una vez para una entrega de ~ 1000 dispositivos. La aplicación de prueba accederá a esta base de datos para obtener las claves de los dispositivos individuales.
Poner todas las claves del dispositivo directamente en la base de datos funciona, pero no es una solución muy atractiva: todos los que acceden a la base de datos obtienen acceso automáticamente a las claves del dispositivo.
Teniendo en cuenta que esto es muy vulnerable, ¿cómo puedo mejorar la seguridad? Podría AES cifrar las claves del dispositivo antes de escribir en la base de datos, pero luego la aplicación de prueba debe conocer esta clave privada AES. El problema simplemente cambia a "cómo mantener en secreto esta clave interna". Así que es un poco mejor, pero aún insatisfactorio.
¿Qué otra cosa sería una solución aceptable? Tal vez usando una tarjeta inteligente?