Cos'è OAuth (Open Authorization) e perché è importante? - TechRobot

Cos’è OAuth (Open Authorization) e perché è importante?

Le violazioni dei dati sono una delle minacce più grandi in una generazione in rapida crescita e in avanzamento tecnologico. Una violazione dei dati può devastare aziende, reputazioni e persino governi. Inoltre, basta un singolo account privilegiato vulnerabile a essere compromesso da entità non autorizzate perché dati critici vengano “rubati”. Il mondo digitalizzato genera, condivide, archivia più dati e gli account digitali sono comuni.

Molti servizi su internet sono integrati e progettati per interagire l’uno con l’altro. Tuttavia, utilizzare account di servizio per accedere ad applicazioni e siti web comporta la pratica non sicura di memorizzare credenziali privilegiate, principalmente senza autenticazione a più fattori (MFA), ed espone informazioni private al rischio di compromissione.

L’importanza della privacy e della sicurezza dei dati è incredibile. Di conseguenza, standard di sicurezza aperti come OAuth proteggono le informazioni personali e private durante il trasferimento di dati tra terze parti. Lo standard OAuth compilato dall’Internet Engineering Task Force (IETF) protegge i proprietari delle risorse sul web durante l’uso di servizi di terze parti. Continua a leggere per scoprire di più su OAuth.

Cos’è OAuth?

OAuth (Open Authorization) è uno standard aperto che consente l’accesso di terze parti a informazioni o risorse relative agli utenti autenticati su server e servizi (come siti web e applicazioni) senza condividere le loro credenziali di accesso. Fornisce un accesso delegato sicuro alle risorse del server per conto di un proprietario della risorsa utilizzando l’autenticazione basata su token. Tuttavia, il protocollo di autenticazione verifica l’identità dell’utente utilizzando password, telefono o identità biometrica e non deve essere confuso con il protocollo di Open Authorization.

A differenza dei protocolli di autenticazione come OpenID, OAuth autorizza l’accesso limitato alle risorse dopo un’autenticazione riuscita. Aziende come Facebook, Google, Amazon, Twitter, Paypal, Netflix e Microsoft permettono ai loro utenti di condividere informazioni dell’account con siti web e applicazioni di terze parti tramite OAuth.

Lo standard di autenticazione e autorizzazione disaccoppiato di OAuth protegge le informazioni dell’utente concedendo l’accesso alle risorse senza rivelare l’identità o le credenziali dell’utente. Pertanto, i servizi di terze parti possono richiedere per conto dell’utente senza accedere a password e altre informazioni sensibili.

Il meccanismo OAuth segue un flusso di autorizzazione con tre componenti chiave: il fornitore, il proprietario/utente e il cliente/consumatore. Il fornitore OAuth è il server di autorizzazione e il motore principale di OAuth. I server di risorse (API come Facebook o Google) utilizzano OAuth per connettersi a un sito web di terze parti o applicazione per conto e con l’approvazione di un utente. Il fornitore fornisce al servizio client un token di autenticazione di accesso per l’autorizzazione alle informazioni ospitate dal server di risorse. L’Utente possiede i dati/informazioni in un server di risorse. Il login dell’utente conferma la condivisione delle informazioni. Il Cliente è il sito web o l’applicazione che richiede l’accesso alle informazioni o risorse dell’utente.

Ottiene l’accesso al server delle risorse con un token di accesso. Infine, il programma client richiede la registrazione con OAuth per procedere con l’autorizzazione. Il processo completo di OAuth richiede molteplici approvazioni e tutti e tre i componenti per una transazione/l’accesso autorizzato.

OAuth 1.0

La sicurezza delle informazioni degli utenti è essenziale con l’aumento della condivisione, dello stoccaggio e dell’utilizzo dei dati. Di conseguenza, è importante integrare standard di autorizzazione sicuri in applicazioni e servizi web per prevenire violazioni dei dati. OAuth è riconosciuto come lo standard più sicuro per la condivisione di informazioni per siti web e API. Lo standard OAuth supporta molteplici flussi per affrontare vari scenari di autorizzazione di app client e diverse capacità dei dispositivi. Supporta app server-to-server, app web, app mobili, siti web, console o TV. 

Il protocollo OAuth 1.0 è stato pubblicato nel 2010 per colmare l’assenza di standard aperti per la delega dell’accesso alle API. Tuttavia, è stato rilasciato per la prima volta nel 2007 come metodo di autorizzazione per l’interfaccia dell’applicazione Twitter. L’IETF ha rilasciato OAuth 2.0 due anni dopo come un protocollo di autorizzazione migliorato e completamente nuovo. Si differenzia dalla prima versione per l’aumento dei flussi OAuth, token a breve durata e l’incompatibilità all’indietro con OAuth 1.0.

OAuth 1.0 gestiva la delega con un framework basato su firme digitali. Era forte e sicuro tanto che importanti attori come Google e Twitter lo hanno supportato e adottato. Richiedeva l’implementazione crittografica e l’interoperabilità crittografica, il che lo rendeva molto sicuro. Tuttavia, è difficile per gli sviluppatori implementarlo senza un’adeguata esperienza in crittografia e capacità di gestione delle chiavi.

OAuth è generalmente un protocollo di delega che fornisce permessi e non un protocollo di autenticazione come OpenID – uno strato di identità costruito sopra il protocollo OAuth 2.0. Anche se molte applicazioni utilizzano OAuth 2.0 per autenticazione e autorizzazione, è specializzato solo per l’autorizzazione delegata.

Il Framework OAuth 2.0

Il framework OAuth 2.0 è il protocollo standard del settore per l’autorizzazione. Una riscrittura del protocollo originale Open Authorization fornisce una soluzione più completa per i client moderni web e non-web. Il framework contiene specifiche che proteggono ulteriormente i dati degli utenti. Queste includono:

Scadenza del Token

I token OAuth sono generalmente irrevocabili e nella versione 1.0, non scadono. Di conseguenza, i token non sono totalmente sicuri e sono soggetti a minacce. Con l’accesso a un token o a un segreto di verifica, un cliente/utente non autorizzato, come hacker e siti malevoli, può effettuare richieste non autorizzate e ottenere accesso alle credenziali e alle informazioni personali degli utenti. Il framework OAuth 2.0 supera questa debolezza con token che possono scadere. Una volta che il token di accesso scade, termina anche l’accesso all’applicazione a meno che non venga generato un altro token di accesso tramite il ciclo di aggiornamento. OAuth 2.0 genera token di accesso “a breve termine”. Durano dalla durata di una sessione a un paio di settimane ma utilizzano token di aggiornamento per acquisire un nuovo token di accesso piuttosto che far ripetere all’utente l’intero processo per riautorizzare l’applicazione.

Sviluppo Lato Client 

OAuth 2.0 considera sia i client non-web che i flussi di lavoro web. OAuth 2.0 offre flussi di autorizzazione specifici per applicazioni web, applicazioni desktop, telefoni cellulari, TV/console e applicazioni non basate su browser come i servizi basati su API. È anche molto più facile da implementare, utilizzare e fornire un’autenticazione forte.

Separazione dei Compiti

OAuth 2.0 separa le responsabilità della consegna delle risorse e della gestione dell’autorizzazione degli utenti. Server fisicamente separati, o anche nomi di dominio diversi, possono gestire entrambi i ruoli. Quindi, ogni parte del sistema scala indipendentemente. Di conseguenza, il server di autorizzazione richiede l’ID cliente e il segreto, ma il server API accetterà solo token di accesso. Di conseguenza, il database evita la condivisione dei dati con i server API. Questi rendono il nuovo standard più applicabile per le grandi imprese. Questo perché consente a questi sistemi di avvenire indipendentemente, da team diversi e secondo cronologie diverse.

Token di Autenticazione e Requisiti Crittografici Eliminati

OAuth crea un equilibrio tra l’uso semplice delle API e le buone pratiche di sicurezza. L’uso del token bearer semplifica l’implementazione di OAuth eliminando la complessità delle firme crittografiche negli standard OAuth 1.0. OAuth 2.0 richiede solo il token stesso nella richiesta.

Autenticazione a Due Fattori

OAuth utilizzava il metodo di autenticazione a singolo fattore, meno sicuro, per la divulgazione degli account. L’autenticazione a singolo fattore può essere compromessa facilmente poiché i pirati informatici hanno bisogno di ottenere solo un pezzo di informazione per ottenere l’accesso. OAuth 2.0, tuttavia, richiede più livelli di autenticazione per dare accesso a un utente. Utilizza la tokenizzazione e una natura a due fattori per proteggere gli account degli utenti.

Perché OAuth è Importante?

Applicazioni web sofisticate, app mobili e modelli di business unici sono emersi. L’evoluzione degli use-case in nuovi scenari rende inadeguati i tradizionali meccanismi di autorizzazione. Molti di questi scenari richiedono a un server o client di comunicare (collegarsi) con più server per eseguire una richiesta o azione. Di conseguenza, si intensifica la necessità di fornire nuove soluzioni per la condivisione dei dati e la federazione dell’identità tra più parti fidate. OAuth è un potente framework di sicurezza che si sforza di risolvere le sfide associate all’autorizzazione. Pertanto, è importante integrare OAuth in applicazioni e siti web. Ecco perché:

Protegge le informazioni del server anche durante la condivisione

Il protocollo OAuth dipende da SSL (Secure Sockets Layer) per garantire che i dati tra il server web e il browser rimangano privati. Di fatto, è un elemento importante dell’autenticazione del sito web di qualsiasi organizzazione perché protegge le credenziali degli utenti.

La tokenizzazione consente solo un accesso limitato ai dati degli utenti

Le informazioni sensibili, come i dati delle carte di credito e le cartelle cliniche, ricevono un ID token e vengono memorizzate in remoto. I commercianti ricevono i token, non i dati effettivi. Pertanto, le informazioni condivise rimangono private. Le terze parti che non hanno ancora accesso alle loro cartelle cliniche, password o numero di carta di credito, possono verificare il token per le transazioni.

OAuth consente l’uso del single sign-on (SSO)

L’SSO garantisce un facile accesso, controlla i rischi e dà agli utenti il controllo dei loro dati. Migliora il morale e la produttività degli utenti consentendo l’accesso a molteplici applicazioni con un unico set di credenziali di accesso. Consolida le credenziali degli utenti e semplifica il processo di login per gli utenti. Questo elimina il problema di gestire numerose password o di ripetere le stesse informazioni durante l’utilizzo dei servizi online.

Mette gli utenti al comando di ciò che i servizi di terze parti possono fare con le loro risorse

I processi tradizionali richiedono la condivisione delle credenziali con siti web di terze parti per condividere informazioni. Tuttavia, OAuth limita le terze parti e impedisce loro di eseguire determinate azioni malevole come modificare le impostazioni dell’utente o le credenziali dell’utente e bloccare l’accesso dell’utente al conto.

Conclusione

OAuth (Open Authorization) protegge le informazioni degli utenti dalle violazioni dei dati il più possibile. Il primo protocollo per OAuth 1.0 è stato riscritto in OAuth 2.0. L’industria della cybersecurity adotta ampiamente OAuth 2.0 come l’opzione più sicura per l’autorizzazione. Sebbene non esista un sistema di autorizzazione infallibile, OAuth è uno dei migliori. Siti come Facebook, Twitter, LinkedIn, Google, Amazon, Instagram e GitHub utilizzano OAuth come loro principale tecnologia per l’autenticazione e l’autorizzazione.