Asunciones:
- Tenemos dispositivos en el campo inyectados con claves derivadas de nuestro único y único BDK.
- Los dispositivos cifran los datos mediante la clave derivada inyectada.
- Todos nuestros dispositivos se conectan a nuestro servidor donde se descifran los datos.
- Nuestro servidor se conecta a 2 procesadores diferentes (A y B) para el procesamiento de transacciones.
Ahora digamos que el procesador B dice que quieren que los datos permanezcan cifrados en todo momento y, por lo tanto, nos piden que compartamos nuestro precioso BDK con ellos para que puedan descifrar los datos. ¿Cuál es la forma recomendada para hacer esto?
Quiero hacerlo de tal manera que si el BDK se ve comprometido en el procesador B, todos los dispositivos del procesador A permanezcan seguros. Una forma obvia sería crear dos BDK: BDK-A y BDK-B. Todos los dispositivos del procesador A utilizarán BDK-A y todos los dispositivos del procesador B usarán BDK-B. Pero la desventaja de hacerlo es que ahora, en el momento de la inyección de claves, necesitaremos saber para qué procesador está el dispositivo e inyectar las claves en consecuencia. Eso hace que el proceso de preparación del dispositivo sea más caro desde el punto de vista operativo.
Quiero saber si hay una manera de mantener las cosas simples desde el punto de vista operativo y, al mismo tiempo, minimizar el impacto de un compromiso en el procesador B.