Come migliorare l'autorizzazione e lo schema di interazione client-server?

0

Sto creando un Qt-server che usa SSL via TCP. I client possono autorizzarsi sul server utilizzando login e password e diventare utenti. Solo gli utenti possono eseguire qualsiasi azione con i loro account. I clienti non autorizzati possono autorizzare solo se stessi.
Ora l'autorizzazione ha questo aspetto:

  1. Il client si connette al server.
  2. Il client invia le credenziali (login, password) al server.
  3. Il server autentica le credenziali e autorizza il client come utente, questo significa che ora il socket di quel client è autorizzato come utente, ma il server non ha alcun "token" e / o altre cose.

Come puoi vedere, questo schema non è completo e non è sicuro.
Quindi, la domanda principale: come dovrei migliorarla?

All'inizio penso che dovrei usare i token di autenticazione. Devo generarli sul server dopo l'autorizzazione del client e inviarli al client. Successivamente, il client deve inviare questo token al server in ogni richiesta come conferma della sua autenticità.
Tuttavia, ho molte domande a riguardo e non solo:

  1. Come dovrei generarli? È solo tipico UUID o dovrei usare qualche specifico algoritmo di generazione?
  2. Perché non posso autorizzare un socket specifico come utente e usarlo, fino a quando il socket non è chiuso?
  3. Dove conservare questo token sul lato server?
  4. In che modo il client si riconnetterà al server?
  5. In che modo il client si connetterà al server dopo la riapertura dell'applicazione?
  6. Quali dati devono essere archiviati sul lato client per la riautorizzazione senza l'intervento dell'utente (senza reinserire login e password)?
  7. Cos'altro devo sapere sui token di autenticazione?
  8. E infine, come migliorare questo schema ad eccezione dell'utilizzo dei token?
posta don-prog 26.04.2018 - 01:11
fonte

0 risposte

Leggi altre domande sui tag