Lezione 5 del 14 febbraio 2012 - CLOUD COMPUTING parte 2a
Tesi - L'autenticazione nel cloud computing
1. L’ Autenticazione nel
Cloud Computing
Università degli Studi di Parma
Candidato: Francesco Pesare
Relatore: Prof. Roberto Alfieri
2. Obiettivi
Gli obiettivi di questa presentazione sono
analizzare l’autenticazione nei sistemi cloud
Perseguiremo l’obiettivo attraverso i seguenti step:
•Cenni generali sul cloud
•Breve presentazione del framework OpenStack
•Questioni legate all’autenticazione
•Strong Authentication
3. Caratterizzazione
Il NIST (National Institute of Standards and Technology) ha stabilito
che le caratteristiche essenziali del cloud sono:
On-demand self-service: Risorse disponibili senza l’intervento
del provider
Broad network access: Accesso alle risorse attraverso la rete
Resource pooling: Le risorse di calcolo del provider vengono
gestite attraverso un pool di risorse in base alle richieste con
indipendenza sulla location
Rapid elasticity: Acquisizione/rilascio risorse rapido,
apparentemente senza limiti
Measured Service: Ogni risorsa viene dosata, per evitare
sprechi e monitorata in modo trasparente
4. Modelli di servizio
Il NIST ha stabilito che i modelli di servizio del cloud sono:
Software as a Service (SaaS)
E’ la capacità di fornire al consumatore le applicazioni in esecuzione nell’infrastruttura
cloud ignorando lo strato sottostante (hardware, rete, OS ecc). Le applicazioni sono
accessibili tramite o una propria interfaccia o tramite browser web
Platform as a Service (Paas)
E’ la capacità di fornire al consumatore una piattaforma software (contestualizzata) che
fornisce un insieme di servizi per l’implementazione e il testing di applicazioni (database,
server web, librerie, programmi) ignorando lo strato sottostante (hardware, rete, OS ecc)
Infrastructure as a Service (IaaS)
E’ la capacità di fornire al consumatore risorse per l’elaborazione, storage e servizi di rete
in cui il consumer è libero di creare il proprio ambiente di lavoro in modo personalizzabile
5. Tipologie di cloud
Il NIST ha stabilito che le tipologie di cloud sono:
Private Cloud
L’infrastruttura cloud è realizzata per l’utilizzo esclusivo all’interno di un’ azienda. Viene
gestita e configurata internamente o può essere delegata a terzi, ma resta comunque
dedicata all’uso aziendale
Community Cloud
L’infrastruttura cloud è condivisa esclusivamente all’interno di una community dove gli
enti appartenenti, condividono la stessa missione, gli stessi requisiti di sicurezza, e la
stessa politica
Public Cloud
L’infrastruttura cloud è di utilizzo pubblico. Gestita e fornita da un provider
Hybrid Cloud
E’ una combinazione delle precedenti, dove la portabilità dei dati è fondamentale
6. Vantaggi / Svantaggi
Vantaggi
• Self-Service on demand
• Abbattimento costi iniziali
Pay-per-use
• Scalabilità delle risorse
• Continuità del servizio
• Indipendenza dalla
piattaforma utilizzata
• Facile accesso alla cloud
Svantaggi
• Sicurezza dei dati
Che fine fanno i dati che metto nel cloud?
• Geolocalizzazione dei dati
Dove sono i miei dati? Rispettano la
privacy?
• Crittografia omomorfica
controproducente
Costosa
• Assenza di standard
Hybrid cloud e problemi di portabilità
• Dipendenza da internet
7. Piattaforme
Google Trends - Open Framework per lo sviluppo
OpenStack è un progetto IaaS cloud computing di Rackspace
Cloud e NASA. Nato nel 2010 ad oggi oltre 200 società si
sono unite al progetto tra cui Arista Networks, AT&T, AMD,
Brocade Communications Systems, Canonical, Cisco
Systems, Dell, EMC, Ericsson, F5 Networks, Groupe Bull,
Hewlett-Packard, IBM, Inktank, Intel, NEC, NetApp,
Nexenta, Rackspace Hosting, Red Hat, SUSE Linux,
VMware, Oracle e Yahoo!
OpenStack associa un nome in codice ad ogni major
release e da ottobre 2013 sono state rilasciate 3 release:
Havana, IceHouse, e la decima release col nome Juno
8. Openstack - Servizi
OpenStack Compute (nome in codice Nova)
Servizio di compute
OpenStack Object Storage (nome in codice Swift)
Servizio per lo storage dei dati
OpenStack Image Service (nome in codice Glance)
Servizio per lo storage delle immagini per le vm
OpenStack Identity (nome in codice Keystone)
Servizio di autenticazione e catalogo dei servizi
OpenStack Dashboard (nome in codice Horizon)
Front-end web per l’iterazione con il cloud
OpenStack Networking (nome in codice Neutron)
Servizio di rete
OpenStack Block Storage (nome in codice Cinder)
Servizio per la gestione dello storage dei dischi virtuali
12. Caso d’uso
Nel progetto cloud multi-region dell’
INFN (Istituto Nazionale di Fisica
Nucleare) vengono attualmente
usati 3 servizi Keystone, distribuiti
geograficamente nelle sezioni di
Bari, LNGS, Padova in HA con
load balancer, con MySQL nativo.
Un prossimo obiettivo dell’ INFN,
oltre ad aggiungere altre 2 sedi per
Keystone, è l’ integrazione
all’interno della cloud del modulo
OS_Federation per l’accesso
federato
13. Autenticazione Federata
All’interno di una federazione, vengono condivise risorse, servizi e applicazioni.
Un utente che fa parte di un ente federato, è in grado di avere accesso a tali risorse
condivise, sfruttando le credenziali d’accesso del proprio IdP (si presuppone un AAI)
Meno password da ricordare più accesso alle risorse…
Tecnologie usate: SAML, LDAP, Active Directory, OpendID, OAuth
Soggetti coinvolti:
Utente
IdP: Identity Provider (Testshib/Unipr)
SP: Service Provider (controller)
Per la nostra installazione:
Shibboleth2 (SAML)
Richiesta Certificato INFN
OS_Federation
APIv2 APIv3 API unversion
Modifiche al service catalog in keystone
Mapping
14. Password Authentication
Siamo sicuri che l’utente che usa nome utente e password sia l’utente
legittimo?
Da un punto di vista tecnico è tuttavia un approccio superato:
Password Deboli / Troppo complesse
Problemi nel ricordare la password
Soggetto ad attacchi di tipo replay,
phishing e MITM
Ad esempio:
The FappeningThe Fappening
15. Strong Authentication
Autenticazione a due fattore (2FA)
Token fisico
Bancomat: Carta Bancomat + Pin
One Time Password
Tecnica non recente(Enigma), ma riadattata a nostri tempi per l’online banking
Lettura Impronta digitale
La più efficace ma costosa infatti solo alcuni notebook integrano fingerprint reader
Nell’ambiente di test:
Mod_authn_otp
OTPTool
16. Conclusioni e Sviluppi
Conclusioni:
Tecnologia interessante, con svariati sviluppi applicativi
in diversi settori
Deve ancora maturare come tecnologia
Bisogna fare molta attenzione ai dettagli, per non
compromettere l’operatività dell’intera infrastruttura
Strong authentication necessaria
Sviluppi futuri:
Utilizzare Google Authenticator in OpenStack
Utilizzare certificati x509 per i token per ridurre le query a
Keystone e ridurre l’overhead
20. Authentication
Per farsi riconoscere usando la propria identità digitale ci si deve autenticare. Per farlo
vengono usati uno dei seguenti fattori:
Qualcosa che si ha (token, certificato personale)
Bisogna avere con se il token o il certificato personale
Qualcosa che si conosce (username/password, pin)
Facile da utilizzare
Qualcosa che si è (lettura biometrica retina, impronta digitale)
Efficace ma tecnologicamente costoso