Sono anni che in Rete vengono diffuse campagne di sensibilizzazione in merito alla robustezza della password e alla necessità di cambiarle spesso. Una password poco robusta è infatti la parte più vulnerabile di un sistema di sicurezza e aumenta notevolmente la superficie d'attacco. Diversi analisti hanno però evidenziato che i nuovi sistemi di autenticazione alternativi alle classifiche password, come i token per le API, possano essere anche più rischiosi delle password banali in termini di sicurezza.
Di recente ne ha parlato anche Emile Bosch, co-fondatore di Supercraft, e oggi vogliamo portarvi la sua esperienza in merito.
Per Bosh infatti i token di accesso per le API sono da considerarsi pericolosi perché quando si concede un'autorizzazione via OAUTH2 ad un servizio di terze parti praticamente si cede il permesso di controllare, tra gli altri dati, anche la cronologia, la posta o le proprie foto a tempo indeterminato. Sarà poi necessario revocare esplicitamente il token a tale servizio per cancellare l'accesso a tali informazioni.
Cambiare password non revoca il token, per farlo è necessario accedere ad un pannello dedicato, presente in quasi tutti i servizi Web che permettono di interfacciarsi con applicazioni di terze parti, che molto spesso viene nascosto.
Nel momento in cui uno di questi servizi viene violato è possibile che i token finiscano nella mani di utenti malintenzionati in grado di sfruttare il metodo di accesso per trafugare dati sensibili.
Tecnicamente, una volta che si autorizza un sito Web ad utilizzare un token per accedere ai nostri dati è compito di quel servizio assicurarsi che il token venga conservato in un ambiente sicuro. Spesso possono però emergere falle di sicurezza che mettono a rischio la sicurezza dei token, quindi sarebbe bene che i vari portali contemplassero la criptazione dei token quando questi non vengono usati.
A differenze dei token, le password vengono cifrate e gran parte dei framework promuove questo genere di protezione oltre ad offrire una buona documentazione in merito. Ma per i token API il discorso è molto diverso, esiste ancora oggi una scarsa cultura della sicurezza per quanto riguarda il loro utilizzo.
Inoltre, essi sono necessari quando si ha a che fare con i form plaint-text per comunicare con le API. L'opzione migliore è quindi quella di crittografare il token quando non viene eseguito per poi decriptarlo solo se necessario. Questa pratica non è ancora ampiamente documentata ed è ancora poco diffusa.
Di base un token ha sempre un raggio d'azione abbastanza ampio, anche quando servirebbe solo l'accesso ad alcuni tipi di dati (ad esempio l'indirizzo email) il token ottiene spesso l'accesso anche ad altri dati.
Sarebbe meglio usare dei token con data di scadenza in modo da forza l'utente a riconfermare l'autorizzazione più volte nel tempo. Purtroppo non tutti i servizi implementano tale impostazione anche se permetterebbe di migliorare sensibilmente la sicurezza dei loro utenti.
Via Emile Bosch