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.