Ho una scheda incorporata con una risorsa di elaborazione e memoria molto limitata. Vorrei controllare la scheda utilizzando un'app per Android.
Gli utenti sono suddivisi in 3 gruppi:
-
proprietario della scheda.
-
amministratori del forum.
-
utente normale.
Il proprietario ha il controllo totale sulla scacchiera e può definire gli amministratori. Gli amministratori possono invitare gli utenti e dare alcune autorizzazioni ai normali utenti per lavorare con la bacheca. Tutto ha un tempo che significa che l'autorizzazione data ha una data di inizio e una data di fine, oltre il periodo in cui le autorizzazioni non funzioneranno!
Ho detto il problema, sto cercando un saggio mentre le tecniche di autorizzazione e autenticazione a basso overhead.
Alcune domande importanti:
-
Le chiavi / token dovrebbero essere generate all'interno dell'app mobile o dal tabellone? per qualche motivo preferisco generare i token nell'app mobile ... che cosa sono i pro, i contro di questo approccio?
-
Per il tempo: dovrebbe essere incluso nel token (ad es., JWT) o dovrebbe essere salvato nella bacheca?
-
Abbiamo bisogno di un tipo di database per gli utenti e il loro ruolo nel consiglio di amministrazione o no? a causa di risorse limitate, vorrei solo memorizzare i token anziché le informazioni dell'utente come ID, token, ecc. È possibile o no?
-
Per la crittografia della linea, ogni coppia di (scheda, amministratore / utente / proprietario), abbiamo bisogno di avere una chiave pubblica / privata diversa o no?
-
Per la generazione di token nell'app mobile, abbiamo bisogno di una chiave. Questa chiave dovrebbe essere comune tra gli amministratori o no?
-
Se la chiave (per la generazione di token), è comune tra gli amministratori, nel caso in cui il proprietario desideri rimuovere l'amministratore, cosa succede? Come posso recuperare la chiave dall'amministratore?
-
Per impedire il replay, come posso implementare la tecnica di sfida e risposta?