390 likes | 530 Views
Sicurezza su Grid. Mattia Cinquilli. Prof: Stefano Bistarelli. Outline. Grid Computing: introduzione Esempio di Computing Grid Introduzione alla sicurezza in Grid Esigenze, problemi, politiche e soluzioni per la Grid Security Autentifica e autorizzazione in Grid
E N D
Sicurezza su Grid Mattia Cinquilli Prof: Stefano Bistarelli
Outline • Grid Computing: introduzione • Esempio di Computing Grid • Introduzione alla sicurezza in Grid • Esigenze, problemi, politiche e soluzioni per la Grid Security • Autentifica e autorizzazione in Grid • Certificati, VO, Proxy, MyProxy, ... • Conclusioni
Computing GridDefinizione • Definita da Ian Foster e Carl Kesselman nel 1998, nel libro: • “The GRID: A blueprint for a new computing infrastructure” • “...the Grid is a service for sharing computer power and data storage capacity over the Internet...” • Ossia: • “...é un sistema pensato per consentire ad una comunità di utenti di usare risorse di calcolo distribuite in Internet come se fossero di fronte ad un unico sistema di calcolo...”
Computing GridCosa e’ • ”Virtualizzazione” di risorse locali • Accessotrasparente a risorse distribuite globalmente • dati ( di esperimenti, finanziari, ... ) • potenza di calcolo ( processori, cluster, supercomputer, ... ) • L’infrastruttura della Grid consiste in • servizi per accedere alle risorse • le risorse stesse Mattia Cinquilli
G R I D M I DD L EWA R E Supercomputer e cluster Accesso con dispositivi mobili Network e Internet Desktop/Laptop Visualizzazione Memorie di massa (dati) Computing Grid
Le infrastrutture della Computing Grid sono generiche: non dipendono dalle applicazione che servono Computing GridIdeale • Le risorse della Computing Grid non sono controllate centralmente (amministrazione locale) • E’ fondamentale usare dei protocolli e delle interfacce che siano: standard e generici • La qualita’ dei servizi deve essere elevata • Gli utenti e risorse sono organizzati in gruppi dinamici di lavoro chiamati Virtual Organization (VO)
Computing GridStruttura Utente accede alla Grid tramite una User Interface La Grid mette a disposizione il middleware per accedere alle risorse Ideale Le applicazioni e la Grid garantiscono un accesso trasparente alle risorse (eterogenee)
Computing GridArchitettura Applicazioni dell'utente che interagiscono, direttamente o non, con la Grid (contiene l'interfaccia che consente all'utente di interagire con la Grid) Parte caratterizzante della Grid che include: servizi, sicurezza, protocolli di comunicazione, organizzazione, monitoraggio Risorse viste come oggetti che hanno proprietari, che possono essere usate per un certo periodo di tempo e che possono essere rinnovabili oppure no
Computing GridPerche’ • Il problema da risolvere richiede troppe risorse di calcolo (usando solo un processore si impiegherebbero anni) • Velocizzare la risoluzione del problema “parallelizzandolo” • suddivisione del problema in pezzetti per poterlo assegnare a diversi processori che funzionano in parallelo (cluster). • Grid collega cluster di PC situati in sedi distanti geograficamente anche grazie all'aumento della velocità di trasmissione delle reti (10 Gbit/sec attualmente).
Computing GridStato attuale • Esistono varie comunità di ricerca in Europa, negli USA, in Asia e in altre nazioni, che sviluppano e raccordano tra di loro diverse Computing Grid. • La fisica delle alte energie (HEP) ha avviato il progetto WLCG (Worlwide LHC Computing Grid) il cui obiettivo e’ quello di costruire e mantenere un’infrastruttura per le attivita’ della comunita’ fisica dell’esperimento LHC (Large Hadron Collider), in attivita’ presso il CERN di Ginevra. • WLCG sfrutta due progetti paralleli: • Enabling Grid for E-sciencE (EGEE) in Europa • Open Science Grid (OSG) negli USA
Proprio per le sue necessita’, la “fisica delle alte energie” (HEP) e’ diventata l’applicazione pilota della Grid EGEE Grid ComputingEGEE • “Enabling Grid for E-sciencE” e’ un progetto che raccoglie piu’ di 50 nazioni con il fine comune di costruire un’infrastruttura Grid che fornisca servizi per scienziati 24/24h e 7/7gg • uso delle piu’ avanzate e recenti tecnologie Grid • servizi disponibili indipendentemente dalla locazione geografica degli utenti • interesse nell’attirare un ampio spettro di nuovi utenti ed utilizzi
EGEEInfrastruttura Dal punto di vista infrastrutturale abbiamo il seguente schema
EGEEOrganizzazione Sito Un singolo sito Grid è organizzato nel seguente modo
Problema Grid Security • In un ambiente computazionale multiorganico e’ imperativo che tutti gli utenti e servizi interagiscano in un modo sicuro: • uso delle risorse sotto controllo • i proprietari delle risorse hanno il diritto di decidere chi e chi non puo’ usare le loro risorse • i dati che sono in Grid devono avere un proprietariodev’essere possibile trovare chi ha fatto cosa • i differenti servizi Grid e gli utenti devono essere in grado di ‘fidarsi’ l’uno dell’altro • La sicurezza e’ alla base di un sistema come Grid:Autenticazione ⇒ processo per stabilire una mutua fiduciaAutorizzazione ⇒ capacita’ di dire chi e’ capace a fare qualcosa • Certificati ⇒ provano l’identita’ di un soggetto
Problema Grid Securityancora... • Lerisorse appartengono a domini multipli e distinti • Un’applicazione puo’ utilizzare contemporaneamente risorse di piu’ siti • Virtual Organization: • tipicamente variabile, dinamica • proprie politiche e specifiche di sicurezza • singolo utente o risorsa puo’ far parte di piu’ VO • Grid è estremamente dinamica: non ha un punto di controllo centrale e ogni provider di risorse ha le proprie policy (requisiti, politiche, tecnologie)
Le tre sfide • Il Gruppo di lavoro GGF (Global Grid Forum) OGSA (Open Grid Service Infrastructure) ha raggruppato le sfide di sicurezza in 3 categorie: • Integration • Interoperability • Trust Relationship
Integration • Le infrastrutture di sicurezza esistenti non possono essere rimpiazzate: non esiste una soluzione di sicurezza globale • Ogni dominio crea-gestisce-supporta la propria infrastruttura • Esempio: user account directory
Interoperability • I servizi Grid che interagiscono fra loro devono poter attraversare domini e hosts • Necessita’ di interoperabilita’ a diversi livelli: • Protocol: messaggi che i servizi si scambiano (SOAP/HTTP) • Policy: policy differenti fra domini, specificate con una comune sintassi e semantica • Identity: identificare utenti attraverso domini diversi
Trust Relationship • Sicurezza: proteggere le risorse • Come faccio a proteggermi da chi offre le risorse (e viceversa)? • Attraverso il concetto di fiducia (Trust) • Tramite utilizzo di terze parti • Organizzazioni di utenti che si fidano l’una dell’altra • Utenti si fidano l’uno dell’altro per identificare altri utenti.
Grid ComputingEsigenze di Sicurezza • Single sign-on: l’utente dovrebbe essere in grado di autentificarsi una sola volta per iniziare la computazione che acquisisce-usa-rilascia le risorse, senza nessun altra autenticazione dell’utente • Protection of credential: le credenziali dell’utente (password, chiavi private, ...) devono essere protette • Interoperability with local security solutions: l’accesso a risorse locali e’ determinato dalle politiche/meccanismi di sicurezza locali => soluzioni che prevedano un meccanismo di accesso interdominio e intradominio • Uniform credential/certification infrastructure: accesso interdominio richiede almeno una via comune per esprimere/verificare l’identita’ di un utente/risorsa.
Grid ComputingPolitiche di Sicurezza • Grid consiste di piu’ domini di fiducia: integrare collezioni eterogenee di utenti e risorse localmente amministrati, controllando le interazioni interdominio e l’associazione fra le operazioni interdominio e le politiche di sicurezza locale • Esistono sia soggetti locali che globali; per ogni dominio esiste un’associazione parziale fra soggetti globali e locali: ogni utente di una risorsa ha due nomi, uno globale ed uno locale che e’ potenzialmente differente per ogni risorsa; l’associazione (mapping) di un nome golbale in uno locale dipende dal sito; il nome globale permette il single sign-on • Un soggetto globale autenticato, associato (mapped) in un soggetto locale e’ uguale ad un soggetto locale autenticato: in un dominio “fidato” la combinazione delle politiche d’autenticazione Grid e l’associazione locale corrispondono alle politiche di sicurezza del dominio locale • Il controllo sull’accesso avviene in base al soggetto locale: le politiche d’accesso rimangono quelle del dominio locale • Un processo puo’ lavorare a nome di un utente ed avere i suoi diritti: permette computazioni lunghe che possono acquisire risorse dinamicamente (single sign-on)
Grid SecuritySoluzione • CERTIFICATI X.509. Standard ISO e IETF che collega credenziali a chiave pubblica (chiave pubblica e privata) ad un’identità. I certificati sono rilasciati da un insieme di ben definite Certification Authorities(CAs). Le credenziali sono divise in due parti: parte pubblica nel certificato (da condividere), parte privata che DEVE essere tenuta segreta. • PKI –Public Key Infrastructure. Insieme di standards che definisce come i certificati e le CA debbano lavorare insieme. • GSS-API –Generic Security Services Application Program Interface. Standard IETF definisce un’interfaccia unificata a meccanismi di sicurezza eterogenei (Kerberos, certificati X.509, etc..)
GSIGrid Security Infrastructure • Infrastruttura di sicurezza che collega insieme le tre componenti (certificati X.509, PKI e GSS-API) e aggiunge capacita’ di delega delle credenziali(vedi piu’ avanti...) • Una Certification Authority(CA) rilascia i certificati. • Ogni utente/servizio e’ identificato da un certificato codificato in formato X.509 che contiene il subject name che identifica utente/servizio, la chiave pubblica, l’identita’ della CA che ha rilasciato il certificato assieme alla sua firma digitale.
Utenti &Organizzazioni Virtuali • Utenti raggruppati in Virtual Organizations • raccolgono utenti che lavorano assieme con un fine comune (esempio: i membri di uno stesso esperimento scientifico) • i membri di una stessa VO condividono alcuni privilegi della VO stessa (accesso alle risorse esclusive della VO) • negoziazione fra gli utenti e i fornitori di risorse e’ normalmente fatta al livello della VO
Certification Authorities (CA) • Chi garantisce che una chiave pubblica appertinga veramente a qualcuno? • Certification Authorities rilasciano una coppia di chiavi dopo aver verificato oltre ogni dubbio l’identita’ del richiedente • Registration Authorities: entita’ che ha l’obbligo di verificare l’identita’ • Come si prova che la chiave pubblica appartenga realmente a qualcuno? • La CA firma la chiave pubblica dell’utente utilizzando la propria chiave privata • Una chiave pubblica firmata da una CA e’ un certificato • I certificati delle CA sono autofirmati • Cos’accade se un certificato viene compromesso? • La CA revoca il certificato (non sara’ mai piu’ valido) • Viene incluso in una lista di certificati revocati (CRL: Certificate Revocation List) che viene regolarmente aggiornata • Esempio: WLCG/EGEE riconoscono una serie di ben definite CA
Struttura certificato X.509 Chiave Pubblica Subject: /C=IT/O=INFN/OU=Personal Certificate/L=Perugia/CN=Mattia Cinquilli/CN=proxy Issuer: /C=IT/O=INFN/CN=INFN CA Expiration date: Feb 23 13:52:02 2010 GMT Serial number: DD:1E:C4:A9:E7:51:21:AC:5B:85:1E:7F:25:8B:4A:E1:B1:FC:7D:BC Firma digitale CA Struttura certificato X.509 • Un certificato X.509 contiene: • chiave pubblica del proprietario • identita’ del proprietario • informazioni sulla CA • validita’ • Numero di serie • Firma digitale della CA
Richiesta certificato Chiave pubblica State of Illinois Certificato CA Certificato Utente ID Chiave privata criptata su disco locale Procedura di richiesta certificato Utente genera una coppia di chiavi pubblica/privata in un browser La firma di CA collega l’identita’ e la chiave pubblica Certificato inviato all’utente Utente invia la chiave pubblica a CA e mostra la prova d’identita’ fornita da RA Certification Authority
Tipi di certificati • Certificati Personali • rilasciati a persone fisiche (utenti) • DN (Distinguished Name) • C=IT • O=INFN • OU=Personal Certificate • L=Perugia • CN=Mattia Cinquilli • unico certificato valido come client (per inviare job sulla Grid) • Certificati Host • rilasciato per la macchina • DN • C=IT • O=INFN • OU=Host • L=Perugia • CN=xyz.pg.infn.it • Certificati per Serivzi • rilasciati per servizi particolari • DN • C=IT • O=INFN • OU=Host • L=Perugia • CN=phedex/xyz.pg.infn.it • Validita’ • Ceritificati hanno una data di scadenza: tipicamente hanno durata di un anno dal momento della creazione
B A Certificato A Verifica firma della CA Frase Random Firma con chiave privata A Hash Criptata Decripta con chiave pubblica A Compare with original phrase Grid Authentication • L’autenticazione su Grid e’ un’operazione fatta in comune (normalmente fra un utente ed un servizio) • L’utente invia la sua chiave pubblica al servente • Il servente verifica la firma della CA • Il servente invia una frase random all’utente • L’utente calcola l’hash della frase e la cripta con la sua chiave privata • L’hash criptata e’ inviata al servente • Il servernte decripta l’hash con la chiave pubblica del certificato dell’utente e la confronta con la propia hash della frase L’intero processo e’ trasparente: l’utente non si accorge di tutti i passaggi della comunicazione necessaria per l’autentifica
il proxy di un utente e’ un processo a cui e’ dato il permesso di operare “a nome” dell’utente Definizione: Certificati Proxy • Cosa sono? • Sono certificati temporanei con una durata corta e senza una password • Perche’ sono necessari? • Perche’ altrimenti ogni processo d’autenticazione richiederebbe la password della chiave privata dell’utente! • Cosa sono “in senso pratico”? • Sono dei file contenti sia il certificato che la chiave privata • Il certificato del proxy e’ firmato con il certificato dell’utente • Tipicamente hanno una durata corta (esempio: 12 ore) • Il file del proxy deve essere protetto dalla lettura • Delega di Proxy (Proxy Delegation) • Un proxy puo’ essere usato per firmare un altro proxy
Proxy RenewalMyProxy • Il Proxy ha un tempo di vita corto (esempio: 12 h) • avere un proxy lungo non e’ una buona idea • Ma un’operazione in Grid puo’ avere la necessita’ di un proxy valido per un tempo molto piu’ lungo • alcune applicazioni Grid necessitano anche di qualche giorno (trasferimenti automatizzati di grandi quantita’ di dati, jobs di analisi particolarmente lunghi) • MyProxy server: • permette di creare e memorizzare un certificato proxy di lunga durata • un servizio Grid puo’ contattarlo per rinnovare un proxy che sta per scadere • solo i servizi registrati sono autorizzati a chiedere/ricevere la delega • Un servizio dedicato puo’ rinnovare il proxy in modo automatico
Diventare parte di una VO Ottiene un certificato: Annualmente CA • Steps • L’utente ottiene un ceritificato dalla CA • L’utente si registra alla VO • Normalmente avviene attraverso un’interfaccia web con il certificato utente caricato nel browser • Il manager della VO approva la richiesta • L’utente viene conosciuto come appartente alla VO anche dai servizi Grid Diventa parte di una VO: una volta VOmgr VOMS Aggiorna il database locale delle VO ogni poche ore VO database Servizi Grid L’identita’ dell’utente nella Grid = Subject del certificato:/C=IT/O=INFN/OU=Personal Certificate/L=Perugia/CN=Mattia Cinquilli/CN=proxy
Virtual Organization Management System (VOMS) • Permette di estendere un proxy per includere che l’utente: • Appartiene ad una specifica VO • Appartiene ad uno o piu’ gruppi della VO • Ha uno speciale ruolo nella VO • Le informazioni possono servire a specificare privilegi speciali (o limitati...): • jobs con priorita’ speciale • permesso di leggere/scrivere in certe aree di storage • … • Il server VOMS per una VO contiene: • Tutti i gruppi e i ruoli che esistono • Tutti gli utenti e a quali gruppi-ruoli essi appartengono
Gruppi e ruoli in VOMS • I gruppi di VOMS sono gerarchici • /myvogruppo principale • /myvo/gruppoA • /myvo/gruppoB/sottogruppo1 • I ruoli di VOMS sono sempre collegati ad un gruppo • /myvo/Ruolo=ruolo1 • /myvo/gruppoB/Ruolo=ruolo1 • /myvo/gruppoB/sottogruppo1/Ruolo=ruolo2
Pericoli • Attacchi ai servizi di rete della Grid • Codice utente vulnerabile, escalation di privilegi di utenti autenticati, accessi non autenticati guadagnati tramite jobs o codice errato • Software di base vulnerabile (librerie incluse) • Utilizzo degli account alla Grid non autorizzato/autentificato
Conclusioni • Le soluzioni di sicurezza sono abbastanza rigide e presentano dei colli di bottiglia per quanto riguarda la scalabilita’ • le richieste degli utenti devono avvenire sempre attraverso un proxy • associazione fra soggetto globale-locale con l’aumentare degli utenti e’ un limite • Il sistema di sicurezza e’ basato sui sistemi gia’ esistenti • necessita’ di migliorare i sistemi gia’ presenti e sviluppare dei sistemi dedicati sfruttando l’esperienza maturata • Sicurezza degli Storage Element: delicata perche’ contiene dei dati che sono accessibili da “chiunque” nella Grid, tramite particolari/dedicati protocolli: • e’ come condividere il disco fisso del vostro computer su internet • necessita’ di protocolli d’accesso dedicati particolarmente affidabili per autorizzazione e autentifica: sono in fase di migioraramento • necessario gestire bene i permessi di lettura/scrittura
Grid ComputingFuturo • Difficile ad immaginarsi... • Pensate alla nascita del WEB ...... • O alla diffusione e uso dei cellulari ......... • Pensate infine a quello che disse Faraday ad un ministro che gli chiedeva a cosa servissero le correnti elettriche: “Non so a cosa serviranno, ma voi di sicuro ne tasserete l'uso......”
Bibliografia e Referenze • GSI from Globus web sitehttp://www.globus.org/security/overview.html • “A Security Architecture for Computational Grids” by Ian Foster et alftp://ftp.globus.org/pub/globus/papers/security.pdf • EGEE main web pagehttp://www.eu-egee.org/