Zanzibar — Il sistema di autorizzazione di Google

Zanzibar di Google apre la strada ai sistemi di autorizzazione
Senza autorizzazione, le persone con intenzioni dannose possono accedere alle risorse riservate di un’organizzazione che hanno un impatto sulle operazioni aziendali
 
Esempio: hai inviato un link di Google Documenti al tuo editor. Pochi minuti dopo, ricevi un’e-mail da parte sua che richiede l’accesso al documento. Ovviamente, agisci immediatamente e dai al tuo editor l’accesso “modifica”. Questa è l’autorizzazione. 

Nei sistemi informatici, l’autorizzazione fa parte della disciplina informatica denominata Identity and Access Management (IAM). È un meccanismo di sicurezza per concedere o negare a qualcuno l’accesso a una risorsa di rete come file, dati, funzionalità dell’applicazione o programmi per computer.  

 
Perché l’autorizzazione è diventata così vitale?

Negli ultimi anni, affrontare la necessità di autorizzazione è diventato fondamentale nella nostra vita quotidiana in generale e nel settore IT in particolare. Man mano che le aziende si spostano verso piattaforme basate su cloud, la necessità di sicurezza è diventata sempre più importante. Un’organizzazione fornisce a individui designati l’accesso ai propri sistemi e non tutti gli utenti devono avere lo stesso livello di accesso ai sistemi, alle applicazioni, ai dati e ad altre risorse dell’organizzazione.  

I sistemi operativi odierni utilizzano processi di autorizzazione per distribuire e gestire le applicazioni. Tuttavia, l’accesso non autorizzato ai sistemi basati su cloud può rivelarsi disastroso. Senza autorizzazione, le persone con intenzioni dannose possono accedere alle risorse riservate di un’organizzazione che hanno un impatto sulle sue operazioni aziendali. A ciò si aggiungono danni reputazionali, potenziali azioni legali, problemi di non conformità e irrogazione di sanzioni. Inoltre, a volte, i clienti di un’azienda potrebbero dover sopportare il peso maggiore: dati sensibili possono fuoriuscire su Internet.

 

Nel 2019, Google ha pubblicato un documento intitolato “Zanzibar: Google’s Consistent, Global Authorization System” che approfondisce i dettagli di Zanzibar, un sistema per archiviare le autorizzazioni ed eseguire controlli di autorizzazione in base alle autorizzazioni archiviate. Zanzibar è un sistema di autorizzazione distribuito a livello globale che gestisce l’autorizzazione per un’ampia gamma di servizi offerti da Google, inclusi Calendar, Cloud, Drive, Maps, Photos e YouTube. 

Zanzibar è flessibile, globale e superveloce. Consente ai team di Google di specificare i propri modelli di autorizzazione univoci e di replicare a livello globale i dati di autorizzazione. Zanzibar può facilmente scalare per gestire milioni di richieste di autorizzazione al secondo su miliardi di utenti e trilioni di oggetti con una latenza molto bassa. In oltre tre anni di utilizzo in produzione, Zanzibar ha mantenuto una latenza del 95° percentile inferiore a 10 millisecondi. Per mantenere latenze così basse, Zanzibar utilizza l’indicizzazione secondaria per i gruppi fortemente nidificati, la copertura delle richieste e la memorizzazione nella cache distribuita.

Sistemi di autorizzazione open source

Di recente, sono emersi alcuni sistemi di autorizzazione open source ispirati a Zanzibar di Google. Ory ha costruito un sistema di autorizzazione open source chiamato Ory Keto, che è un’implementazione di Zanzibar. La startup di New York Authzed ha rilasciato una versione open source di Zanzibar di Google chiamata Spice DB.

Spezie DB 

Spice DB è il database open source ispirato a Zanzibar che archivia, calcola e convalida autorizzazioni a grana fine. SpiceDB fornisce una correttezza verificabile che garantisce la sicurezza del sistema. SpiceDB è stato progettato in modo tale che non solo aiuti a separare le policy dall’applicazione, ma anche i dati su cui operano le policy. Fornisce un’unica visualizzazione unificata delle autorizzazioni per diverse applicazioni di una determinata organizzazione. SpiceDB ha API dedicate per controllare i permessi individuali, elencare tutti gli accessi e filtrare ACL (Access Control List). Inoltre, un potente motore grafico supporta la valutazione parallela distribuita.

Ory Keto

Ory Keto è un’implementazione open source di Zanzibar. È flessibile, coerente, altamente disponibile e ha una bassa latenza. Ory Keto si basa su un modello di dati semplice ma potente con capacità di configurazione efficaci che soddisfa le esigenze di diversi tipi di client con diversi modelli di controllo degli accessi. 

Come decisione politica, Ory Keto utilizza una serie di politiche di controllo degli accessi per determinare se un soggetto (utente o applicazione) è autorizzato a eseguire una determinata azione su una risorsa. Attualmente, Ory Keto implementa contratti API di base per la gestione e il controllo delle “autorizzazioni” con API HTTP e gRPC. In futuro, ci sono piani per garantire la coerenza delle garanzie utilizzando gli snap token, l’interoperabilità con altri prodotti Ory come Ory Hydra e Ory Kratos e incorporare una modalità operativa globale del cluster. 

Oltre ai suddetti sistemi di autorizzazione open source, alcune aziende hanno sviluppato i propri sistemi di autorizzazione. Ad esempio, sulla base di Zanzibar, Airbnb ha creato il proprio sistema di autorizzazione centralizzato, Himeji. 

Carta, una piattaforma globale di gestione della proprietà che aiuta aziende, investitori e dipendenti a gestire l’equità e la proprietà, ha ideato AuthZ, un sistema di autorizzazioni altamente scalabile.

Tale è l’importanza dell’autorizzazione in questi giorni che sono emersi diversi tipi di strategie di autorizzazione, le più importanti sono il controllo dell’accesso basato sui ruoli (RBAC), il controllo dell’accesso basato sugli attributi (ABAC), il controllo dell’accesso basato su grafici (GBAC) e il controllo dell’accesso discrezionale controllo accessi (DAC). In effetti, negli ultimi tempi, Auth0, una piattaforma di autenticazione e autorizzazione, è stata impegnata in una nuova strategia chiamata controllo degli accessi basato sulle relazioni (ReBAC). Ciascuna strategia aiuta gli sviluppatori di applicazioni a gestire diversi requisiti e servizi di autorizzazione per garantire e migliorare la sicurezza generale del sistema.

Di ihal