Approccio basato su token per l'autenticazione tramite API Rest restyling - aggiornamento token

2

Sono abbastanza un principiante in sicurezza.

Sto sviluppando un'app per Android con un approccio basato su token all'autenticazione. Non sto utilizzando Oauth in quanto OAuth 2.0 non è un protocollo di autenticazione, ma piuttosto utilizzato per delegare l'autorizzazione: link .

Poiché non desidero che nessun altro utilizzi la mia API, non è necessario delegare l'autorizzazione, quindi ho deciso di non implementare Oauth.

Questo è il flusso:

  1. L'utente passa un nome utente e una password al server utilizzando SSL
  2. Il server verifica il nome utente e la password e restituisce un token di autenticazione tramite SSL. Il token di autenticazione è un insieme casuale di caratteri
  3. Il token di autenticazione viene salvato sull'app e quindi inviato nuovamente al server ogni volta che viene eseguita una richiesta REST utilizzando SSL

La mia domanda: i token di aggiornamento sono rilevanti in questo scenario?

Il token di autenticazione è già crittografato tramite SSL e gli attacchi di riproduzione o man-in-the-middle non sono possibili.

Anche il token di autenticazione viene utilizzato solo per accedere alla mia API e non viene utilizzato successivamente in altre chiamate API da server a server (ad esempio, se chiamo il server di google maps dal mio server, non utilizzo la mia autenticazione token per effettuare la chiamata: il token è univoco per il mio server).

Potrei rendere il flusso più sicuro tagliando il token di autenticazione e inviandolo al server in modo che il server possa verificare se l'hash del token memorizzato corrisponde all'hash inviato dall'app ...

Perché utilizzare i token di aggiornamento quando il token di autenticazione viene trasmesso in modo sicuro tramite SSL?

    
posta Simon 02.08.2015 - 12:05
fonte

1 risposta

1

Sembra un buon piano. Alcune cose a cui prestare attenzione sono

  • Assicurati di memorizzare la password in modo sicuro sul server. Ci sono molti riferimenti su questo. Le buone strategie implicheranno probabilmente sale e bcrypt o PBKDF2.
  • Usa sempre SSL. Meglio limitare i non SSL tramite il server Web, se possibile.
  • Utilizza un generatore casuale sicuro per ottenere token.

Detto questo, l'autenticazione del server dell'app è probabilmente la più sicura. I sistemi di sicurezza esistenti sono generalmente considerati più robusti di quelli nuovi.

    
risposta data 02.08.2015 - 21:09
fonte

Leggi altre domande sui tag