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 • • Mattia Cinquilli Certificati, VO, Proxy, MyProxy, ... Conclusioni Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Computing Grid Definizione • • • • • Mattia Cinquilli 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...” Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Computing Grid Cosa e’ ”Virtualizzazione” di risorse locali •Accesso trasparente 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 Computing Grid Memorie di massa (dati) Supercomputer e cluster G R I D Accesso con dispositivi mobili M I D D L E W A R E Desktop/Laptop Network e Internet Mattia Cinquilli Visualizzazione Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Computing Grid Ideale •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) Le infrastrutture della Computing Grid sono generiche: non dipendono dalle applicazione che servono Mattia Cinquilli Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Computing Grid Struttura 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) Mattia Cinquilli Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Computing Grid Architettura 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 Mattia Cinquilli Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Computing Grid Perche’ • • 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). • Mattia Cinquilli Grid collega cluster di PC situati in sedi distanti geograficamente anche grazie all'aumento della velocità di trasmissione delle reti (10 Gbit/sec attualmente). Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Computing Grid Stato 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 Mattia Cinquilli Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Progetti Grid Mattia Cinquilli Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Grid Computing EGEE • “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 Proprio per le sue necessita’, la “fisica delle alte energie” (HEP) e’ diventata l’applicazione pilota della Grid EGEE Mattia Cinquilli Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 EGEE Infrastruttura Dal punto di vista infrastrutturale abbiamo il seguente schema Mattia Cinquilli Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 EGEE Organizzazione Sito Un singolo sito Grid è organizzato nel seguente modo Mattia Cinquilli Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Problema Grid Security ‣ Mattia Cinquilli 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 ⇒ - Certificati ⇒ provano l’identita’ di un soggetto processo per stabilire una mutua fiduciaAutorizzazione ⇒ capacita’ di dire chi e’ capace a fare qualcosa Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Problema Grid Security ancora... • Le risorse 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) Mattia Cinquilli Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 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: • • • Mattia Cinquilli Integration Interoperability Trust Relationship Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 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 • Mattia Cinquilli Esempio: user account directory Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Interoperability • • I servizi Grid che interagiscono fra loro devono poter attraversare domini e hosts Necessita’ di interoperabilita’ a diversi livelli: • • • Mattia Cinquilli 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 Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Trust Relationship • • • Sicurezza: proteggere le risorse Come faccio a proteggermi da chi offre le risorse (e viceversa)? Attraverso il concetto di fiducia (Trust) • • • Mattia Cinquilli 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. Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Grid Computing Esigenze di Sicurezza • • • • Mattia Cinquilli 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. Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 • • • • • Grid Computing Politiche 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) Mattia Cinquilli Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Grid Security Soluzione • • • Mattia Cinquilli 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..) Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 GSI Grid Security Infrastructure • • • Mattia Cinquilli 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. Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Utenti & Organizzazioni Virtuali • Utenti raggruppati in Virtual Organizations Mattia Cinquilli - 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 Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 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? • • • Mattia Cinquilli 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 Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Struttura certificato X.509 • Un certificato X.509 contiene: Struttura certificato X.509 ✓ chiave pubblica del proprietario ✓ identita’ del proprietario ✓ informazioni sulla CA ✓ validita’ ✓ Numero di serie 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 della CA Mattia Cinquilli Seminario Sicurezza Informatica - Sicurezza su Grid Firma digitale CA 11 Marzo 2009 Procedura di richiesta certificato Certificato CA Utente genera una coppia di chiavi pubblica/privata in un browser Richiesta certificato Chiave pubblica La firma di CA collega l’identita’ e la chiave pubblica Certificato inviato all’utente Certificato Utente Utente invia la chiave pubblica a CA e mostra la prova d’identita’ fornita da RA State of Illinois ID Chiave privata criptata su disco locale Mattia Cinquilli Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Tipi di certificati • Certificati Host ‣ 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 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 Mattia Cinquilli rilasciato per la macchina • DN ‣ C=IT ‣ O=INFN ‣ OU=Host ‣ L=Perugia ‣ CN=xyz.pg.infn.it • Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Grid Authentication B A Certificato A • 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 Verifica firma della CA Frase Random Firma con chiave privata A Hash Criptata Decripta con chiave pubblica A Compare with original phrase L’intero processo e’ trasparente: l’utente non si accorge di tutti i passaggi della comunicazione necessaria per l’autentifica Mattia Cinquilli Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Certificati Proxy Definizione: Cosa sono? Sono certificati temporanei con una durata corta e senza una password Perche’ sono necessari? il proxy di un utente e’ un processo a cui e’ dato il permesso di operare “a nome” dell’utente 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) Mattia Cinquilli Un proxy puo’ essere usato per firmare un altro proxy Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Proxy Renewal MyProxy • 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 Mattia Cinquilli Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Diventare parte di una VO • 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 Ottiene un certificato: Annualmente Diventa parte di una VO: una volta • Il manager della VO approva la richiesta • L’utente viene conosciuto come appartente alla VO anche dai servizi Grid CA VO mgr 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 Mattia Cinquilli Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 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 Mattia Cinquilli Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Gruppi e ruoli in VOMS • I gruppi di VOMS sono gerarchici • /myvo gruppo 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 Mattia Cinquilli Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Pericoli Mattia Cinquilli • 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 Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Conclusioni • Le soluzioni di sicurezza sono abbastanza rigide e presentano dei colli di bottiglia per quanto riguarda la scalabilita’ • • • 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: • • Mattia Cinquilli associazione fra soggetto globale-locale con l’aumentare degli utenti e’ un limite Il sistema di sicurezza e’ basato sui sistemi gia’ esistenti • • le richieste degli utenti devono avvenire sempre attraverso un proxy • 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 beneSicurezza i permessi di lettura/scrittura Seminario Informatica - Sicurezza su Grid 11 Marzo 2009 Grid Computing Futuro • • • • 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......” Mattia Cinquilli Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009 Bibliografia e Referenze • • • Mattia Cinquilli GSI from Globus web site http://www.globus.org/security/overview.html “A Security Architecture for Computational Grids” by Ian Foster et al ftp://ftp.globus.org/pub/globus/papers/security.pdf EGEE main web page http://www.eu-egee.org/ Seminario Sicurezza Informatica - Sicurezza su Grid 11 Marzo 2009