Diciamo che ho diverse applicazioni che non sono collegate a nessuna rete, e ho un requisito che dice che ogni applicazione potrebbe produrre un token da un input che un'altra applicazione potrebbe validare il token a patto che gli venga dato lo stesso input.
Ad esempio, una persona che accede all'applicazione 1, inserisce una stringa e ottiene un token, quindi passa all'applicazione 2, inserisce la stringa e il token, quindi l'applicazione 2 dice alla persona se il token è valido o no. Anche se il token è esposto agli utenti, dovrebbe essere abbastanza sicuro che nessuno potrebbe simularlo.
Nella fase di prototipo, crittografo semplicemente l'input usando AES con una chiave AES 128 codificata e quindi offusca un po 'il testo cifrato per generare il token. Ma ho ancora alcune preoccupazioni quando ho l'impressione che l'uso della stessa chiave statica per simmetria sia vulnerabile e facile da compromettere.
Poiché non c'è alcun modo per queste applicazioni di comunicare tra loro e quale applicazione convaliderà il token generato da quale applicazione, sto pensando di utilizzare un qualche tipo di generazione di chiavi AES per rinnovare periodicamente la chiave AES per tutte le applicazioni. Speravo che la chiave fosse diversa di volta in volta, ma tutte le applicazioni useranno la stessa chiave in qualsiasi momento.
Esiste un algoritmo o una strategia standard aperta per generare AES Key che soddisfa le mie esigenze sopra? Forse non ho visto abbastanza, ma non riesco a trovarlo.
Grazie in anticipo!