Digamos que tengo varias aplicaciones que no están conectadas a ninguna red, y tengo un requisito que dice que cada aplicación podría producir un token a partir de una entrada que otra aplicación podría validar el token siempre que se le dé la misma entrada.
Por ejemplo, una persona que accede a la aplicación 1, ingresa una cadena y obtiene un token, luego él / ella viaja a la aplicación 2, ingresa la cadena y el token, luego la aplicación 2 le dice a la persona si el token es válido o no. Incluso si el token está expuesto a los usuarios, debería ser lo suficientemente seguro como para que nadie pueda falsificarlo.
En la fase de prototipo, simplemente cifro la entrada usando AES con una clave AES 128 codificada y luego ofusco un poco el texto cifrado para generar el token. Pero todavía tengo algunas preocupaciones porque tengo la impresión de que usar la misma clave estática para simétricas es vulnerable y fácil de comprometer.
Debido a que no hay medios para que estas aplicaciones se comuniquen entre sí y qué aplicación validará el token generado por cada aplicación, estoy planeando usar algún tipo de generación de claves AES para renovar la clave AES periódicamente para todas las aplicaciones. Esperaba que la clave fuera diferente de vez en cuando, pero toda la aplicación usará la misma clave en cualquier momento.
¿Existe un algoritmo o estrategia estándar abierta para generar la clave AES que cumpla con mi necesidad anterior? Tal vez no haya visto lo suficiente, pero parece que no puedo encontrarlo.
¡Gracias por adelantado!