Applicazioni Web (http): non capisci come l'autenticazione basata su token sia sicura

9

Vedi qualcosa di simile a questo:

link

O più specifico:

Autenticazione basata su token - Protezione del token

La mia domanda ora è:

L'uomo nel mezzo può solo leggere il token e usarlo è una sua richiesta. Voglio dire che non ha bisogno di sapere cosa significa in realtà il token o altro, può semplicemente usarlo. Cosa mi manca? Non vedo come sia meglio avere un cookie di sessione in termini di sicurezza?

Quindi, per quanto ne so, l'unica cosa che puoi fare è usare sempre ssl e poi puoi semplicemente eliminare l'intera cosa token e usare l'autenticazione di base per ogni richiesta?

L'unico vantaggio del token che vedo è che non è necessario utilizzare l'autenticazione di base e ottenere più controllo, come una vera e propria uscita di accesso e un modulo di login più bello e così via (a costo di una maggiore complessità).

Cosa mi manca?

    
posta beginner_ 12.03.2013 - 19:34
fonte

1 risposta

16

L'autenticazione basata su token non riguarda la protezione della comunicazione contro gli aggressori di terze parti. È per proteggere il server contro il client stesso .

Per sicurezza adeguata hai comunque bisogno di SSL. Senza SSL, immagina un aggressore attivo , ad es. quel simpatico geek barbuto seduto a due tavoli nello stesso ristorante - non lo sai, ma ha un falso punto di accesso WiFi nel suo zaino e attualmente intercetta il traffico Internet, che credi per passare attraverso il ristorante "WiFi gratuito". Quel ragazzo può dirottare le tue comunicazioni in qualsiasi momento. Vede ciò che si invia ai siti Web e ciò che si riceve da questi siti e può modificare entrambi i tipi di dati a proprio piacimento. Quando ridacchia e quasi fa le gag sul suo milk-shake, è perché sta leggendo le tue email.

Per sconfiggere gli attaccanti attivi, hai bisogno di qualcosa che protegga la riservatezza e l'integrità dei dati, e ti assicuri di parlare con il server giusto, non con Bearded-Geek-in-the-Middle . E quel "qualcosa" è SSL .

Con SSL, puoi infatti utilizzare solo Autenticazione di base HTTP . Questo funzionerà ... purché voglia di utilizzare l'autenticazione di base HTTP, poiché tale autenticazione viene gestita dal browser Web, con un proprio popup, che può essere brutto. Ad esempio, può assomigliare a questo:

LamaggiorpartedeiprogettistidisitiWebsonosconvoltiperl'assolutapraticitàeilminimalismodiquestopopup,chericordaigloriosiesperimentiarchitettonicidell'eradiStalin.Pertanto,quasinessunolofa.Invece,isitiWebimplementanolaloro"pagina di login", in puro HTML, e quindi non possono beneficiare del supporto intrinseco di Basic Authentication da parte del browser. Devono usare un cookie, cioè il "token di autenticazione" di cui stiamo parlando.

Inoltre, l'autenticazione dell'utente non è necessariamente basata su un login e una password. Alcuni siti fanno cose più funky, tra cui la delega dell'autenticazione a un altro server, utilizzando il protocollo OAuth . Questo stesso sito, security.stackexchange.com , lo fa. Ciò richiede di nuovo una certa quantità di dati sul browser client, dati che sono non login e password.

Una volta che inizi a memorizzare i dati sul browser client, puoi immaginare di memorizzare i dati che dovrebbero rimanere opachi per l'utente stesso (dovrebbe essere abbastanza curioso da dare un'occhiata ai suoi cookie), e che resiste alle modifiche da parte dell'utente (dipende dai dati e da cosa è usato). Ciò richiede, rispettivamente, encryption e integrità controllata . Quel tipo di "messa in sicurezza" riguarda l'archiviazione di cose nel sistema client, ma senza affidarsi al sistema client.

    
risposta data 12.03.2013 - 19:59
fonte

Leggi altre domande sui tag