Prevenzione della ritrasmissione della richiesta offline

1

Sto provando a fare quanto segue:

Ho 2 dispositivi mobili, uno funge da server e il secondo da client.

Il dispositivo server contiene una chiave segreta e pubblicizza una sfida. Ogni richiesta fa cambiare la sfida.

Il dispositivo client conserva i dati (un valore intero) crittografati con questa chiave, ma il client non ha la chiave.

I 2 dispositivi comunicano tramite BT.

Il client genera una risposta alla sfida secondo un algoritmo noto , invia i dati al server, il server verifica la risposta, decodifica i dati, deduce un determinato valore da esso, crittografa il nuovo dati e inviarlo al client.

Sto cercando di proteggere nuovamente i dati nel client da riutilizzare (ad esempio, il client memorizzerà i dati crittografati, eseguirà la transazione sul server, riceverà la risposta e quindi utilizzerà nuovamente i vecchi dati).

Le limitazioni:

  • Non riesco a memorizzare i dati del client nel server - il server calcola solo il nuovo valore e lo restituisce.
  • Il client deve essere offline (il valore non può essere memorizzato su qualche server HTTP).
  • Non devo memorizzare le chiavi sul client.

C'è un modo per farlo? Il mio cervello sta già fumando, ma ogni idea che riesco a inventare fallisce a causa del fatto che l'algoritmo di risposta non è confidenziale, quindi per quanto posso vederlo, ogni cliente potrebbe riutilizzare i vecchi dati.

Per essere chiari, non sto cercando una soluzione completa, solo alcune indicazioni e brain storming.

    
posta Ron Dadon 20.11.2016 - 18:56
fonte

0 risposte

Leggi altre domande sui tag