FESR Trinacria Grid Virtual Laboratory Sicurezza nelle griglie Fabio Scibilia INFN - Catania Tutorial ITIS Acireale Acireale,
2 Overview Glossario Crittografia –Algoritmi Simmetrici –Algoritmi Asimmetrici: PKI Certificati –Firma digitale –Certificati X509 Grid Security –Concetti base –Infrastruttura di sicurezza in Grid –Certificati Proxy –Interfaccia da linea di comando Organizzazioni Virtuali –Concetto di VO e autorizzazione –VOMS, LCAS, LCMAPS
3 Overview Glossario Crittografia –Algoritmi Simmetrici –Algoritmi Asimmetrici: PKI Certificati –Firma digitale –Certificati X509 Grid Security –Concetti base –Infrastruttura di sicurezza in Grid –Certificati Proxy –Interfaccia da linea di comando Organizzazioni Virtuali –Concetto di VO e autorizzazione –VOMS, LCAS, LCMAPS
4 Glossario Principale –Un’entità: un utente, un programma o una macchina Credenziali –Dati che forniscono una prova di identità Autenticazione –Verificare l’identità di un principale Autorizzazione –Mappa un’entita ad un insieme di privilegi Confidenzialità –Cripta il messaggio in modo che solo il destinatario lo possa comprendere Integrità –Assicura che il messaggio non sia stato alterato durante la trasmissione Non-repudiabilità –Impossibilità di negare l’autenticità di una firma digitale
5 Overview Glossario Crittografia –Algoritmi Simmetrici –Algoritmi Asimmetrici: PKI Certificati –Firma digitale –Certificati X509 Grid Security –Concetti base –Infrastruttura di sicurezza in Grid –Certificati Proxy –Interfaccia da linea di comando Organizzazioni Virtuali –Concetto di VO e autorizzazione –VOMS, LCAS, LCMAPS
6 Crittografia Algoritmi matematici che forniscono i blocchi base per l’implementazione di un’infrastruttura di sicurezza Simbologia –Testo in chiaro (Plaintext): M –Testo criptato (Cyphertext): C –Criptaggio (Encryption) con chiave K1 : E K1(M) = C –Decriptaggio (Decryption) con chiave K2 : D K2(C) = M Algoritmi –Simmetrici –Simmetrici: K1 = K2 –Asimmetrici –Asimmetrici: K1 ≠ K2 K2K2 K1K1 Encryption Decryption MCM
7 Algoritmi Simmetrici La stessa chiave è utilizzata per le operazioni di encryption and decryption Vantaggi: –Veloce Svantaggi: –Come distribuire le chiavi? –Il numero delle chiavi è O(n2) Esempi: –DES –3DES –Rijndael (AES) –Blowfish –Kerberos AliceBob ciao3$rciao AliceBob ciao3$rciao3$r
8 Algoritmi a chiave pubblica Ogni utente ha due chiavi: una privata e l’altra publica: –È impossibile ricavare la chiave privata da quella publica; –un messaggio criptato da una chiave può essere decriptato solo dall’altra chiave. Non è necessario uno scambio di “segreti” –Il mittente cripta utilizzando la chiave publica del destinatario; –Il destinatario decripta utilizzando la sua chiave privata; –Il numero di chiavi è O(n). Esempi: –Diffie-Helmann (1977) –RSA (1978) John keys public private Paul keys publicprivate PaulJohn ciao3$rciao PaulJohn ciaocy7ciao 3$r cy7
9 Overview Glossario Crittografia –Algoritmi Simmetrici –Algoritmi Asimmetrici: PKI Certificati –Firma digitale –Certificati X509 Grid Security –Concetti base –Infrastruttura di sicurezza in Grid –Certificati Proxy –Interfaccia da linea di comando Organizzazioni Virtuali –Concetto di VO e autorizzazione –VOMS, LCAS, LCMAPS
10 One-Way Hash Functions Funzioni (H) che dato come input un messaggio (M) di lunghezza variabile producono come output una stringa di lunghezza fissa (h) –la lunghezza di h deve essere almeno di 128 bits (per evitare birthday attacks) 1.dato M, deve essere semplice calcolare H(M) = h 2.dato h, deve essere complesso calcolare M = H -1 (h) 3.dato M, deve essere complesso trovare M’ tale che H(M) = H(M’) Esempi: –SNEFRU: hash di 128 o 256 bits; –MD4/MD5: hash di 128 bits; –SHA (Standard FIPS): hash di 160 bits.
11 Firma digitale Paul calcola l’hash del messaggio Paul cripta l’hash utilizzando la sua chiave privata: l’hash criptato è la firma digitale. Paul invia il messaggio firmato a John. John calcola l’hash del messaggio e lo v vv verifica con A, decriptato con la chiave pubblica di Paul. Se i 2 hash sono uguali: il messaggio non è stato modificato; Paul non può ripudiarlo. John messaggio Firma digitale Paul messaggio Firma Digitale messaggio Firma Digitale Hash(A) Chiavi di Paul pubblicaprivata Hash(B) Hash(A) = ?
12 Certificati Digitali La firma digitale di Paul è sicura se: 1. La chiave privata di Paul non è compromessa 2. John conosce la chiave pubblica di Paul John come può essere sicuro che la chiave pubblica di Paul è realmente la chiave pubblica di Paul e non di qualcun altro? –Una terza parte garantisce la corrispondenza tra la chiave pubblica e l’identità del proprietario. –Sia A che B devono fidarsi di questa parte Due modelli: –X.509: organizzazione gerarchica; –PGP: “web of trust”, distribuita.
13 PGP “web of trust” A B C D E F F conosce D ed E, il quale conosce A e C, il quale conosce A e B. F è ragionevolmente sicuro che la chiave di A è realmente di A.
14 X.509 Autorità di Certificazione La “terza parte” è chiamata Autorità di Certificazione (CA). Certificati DigitaliFornisce Certificati Digitali per utenti, programmi e macchine Controlla l’identità e i dati personali del richiedente –Registration Authorities (RAs) effettuano la validazione dei dati CA pubblicano periodicamente la lista di certificati compromessi –Certificate Revocation Lists (CRL): contengono tutti i certificati revocati non ancora scaduti I certificati delle CA sono self-signed (autocertificazione)
15 Certificati X.509 Un Certificato X.509 contiene: –c–chiave pubblica del proprietario; –I–Identità del proprietario; –i–info sulla CA; –t–tempo di validità; –n–numero di seriale; –f–firma digitale della CA Public key Subject:C=CH, O=CERN, OU=GRID, CN=Andrea Sciaba 8968 Issuer: C=CH, O=CERN, OU=GRID, CN=CERN CA Expiration date: Aug 26 08:08: GMT Serial number: 625 (0x271) CA Digital signature Struttura di un certificato X.509
16 Overview Glossario Crittografia –Algoritmi Simmetrici –Algoritmi Asimmetrici: PKI Certificati –Firma digitale –Certificati X509 Grid Security –Concetti base –Infrastruttura di sicurezza in Grid –Certificati Proxy –Interfaccia da linea di comando Organizzazioni Virtuali –Concetto di VO e autorizzazione –VOMS, LCAS, LCMAPS
17 GRID Security: gli attori Popolazione ampia e dinamica Differenti accounts in differenti siti Dati personali e confidenziali Privilegi eterogenei (ruoli) Single Sign-On (login con un solo passo) Utenti Dati di “gruppo” Patterns di accesso Membership “Gruppi” Siti Risorse eterogenee Patterns di accesso Politiche locali Membership Grid
18 L’infrastruttura di sicurezza di Grid (GSI) ogni utente/host/servizio ha un certificato X.509; I certificati sono firmati da CA fidate (trusted per il sito locale); Ogni transazione Grid è mutuamente autenticata: 1. John invia il suo certificato; 2. Paul verifica la firma nel certificato di John; 3. Paul invia a John una stringa casuale; 4. John cripta la stringa con la sua chiave privata; 5. John invia la stringa criptata a Paul 6. Paul utilizza la chiave pubblica di John per decriptare la stringa. 7. Paul confronta la stringa decriptata con l’originale 8. Se corrispondono, Paul ha verificato l’identità di John e John non può ripudiarlo. John Paul Certificato di John Verificare la firma della CA Stringa random Criptato con la chiave privata di J. Frase criptata Decriptato con chiave pubblica di J. Confrontata con la stringa originale Basato su X.509 PKI: MOLTO IMPORTANTE Le chiavi private Le chiavi private devono essere memorizzate solo: protetti in posti protettiE criptata in forma criptata
19 Richiesta certificato… maggiori dettagli Formato delle Credenziali: Certificati X.509 Un dato set di CA sono riconosciute: – Le modalità di richiesta del certificato dipendono dalla CA (EU Grid PMA) Per GILDA sono disponibili dei Video Tutorials: – (Flash) – (Real)
20 Richiesta Certificato… un esempio chiave privata criptata sul disco locale Cert Request Public Key ID Cert L’utente genera una coppia di chiavi pubblica/privata. L’utente invia la chiave pubblica alla CA assieme a una prova di identità. La CA conferma l’identità, firma il certificato e lo invia indietro all’utente.
21 Delega e proxy limitati Delega = creazione remota di un proxy (di secondo livello) –Una nuova coppia di chiavi è generata remotamente sul server –Il client firma il proxy cert e lo restituisce Consente i processi remoti ad autenticarsi al posto dell’utente –Il processo remoto “impersona” l’utente Il client può decidere di delegare a un “limited proxy” –Ogni servizio decide se permettere di autenticare un utente con un “limited proxy” –Il servizio “Job manager” richiede un proxy non limitato –GridFTP server permette l’utilizzo sia di proxy limitati che non limitati
22 Overview Glossario Crittografia –Algoritmi Simmetrici –Algoritmi Asimmetrici: PKI Certificati –Firma digitale –Certificati X509 Grid Security –Concetti base –Infrastruttura di sicurezza in Grid –Certificati Proxy –Interfaccia da linea di comando Organizzazioni Virtuali –Concetto di VO e autorizzazione –VOMS, LCAS, LCMAPS
23 Organizzazioni Virtuali (VO) e autorizzazione Gli utenti Grid DEVONO appartenere ad una organizzazione virtuale –Precedentemente chiamato “gruppo” –Insieme di utenti che collaborano –L’utente deve firmare le linea guida della VO –Dovete essere registrati in un server VO-LDAP (aspettate la notifica!) –Lista di VO supportate: Le VO mantengono una lista dei loro membri su un LDAP Server –La lista è scaricata dalle macchine grid per mappare i subject dei certificati utenti ad un “pool” di accounts locali. –I siti decidono quale VO accettare "/C=CH/O=CERN/OU=GRID/CN=Simone Campana 7461".dteam "/C=CH/O=CERN/OU=GRID/CN=Andrea Sciaba 8968".cms "/C=CH/O=CERN/OU=GRID/CN=Patricia Mendez Lorenzo-ALICE".alice
24 VOMS : concetti Virtual Organization Membership Service –Estende il proxy con info relative a VO membership, gruppi, ruoli –Pienamente compatibile con Globus Toolkit –Ogni VO ha un database contenente informazioni relative a appartenenza ad un gruppo, ruolo e capabilities per ogni utente –L’utente contatta il voms server per avere le sue info di autorizzazione –Il server invia le info di autorizzazione al client, il quale le includes in un proxy –voms-proxy-init output: proxy con info su VO membership, gruppo, ruolo and capabilities (login alla Grid!) [glite-tutor] /home/giorgio > voms-proxy-init --voms gilda Cannot find file or dir: /home/giorgio/.glite/vomses Your identity: /C=IT/O=GILDA/OU=Personal Certificate/L=INFN/CN=Emidio Enter GRID pass phrase: Your proxy is valid until Mon Jan 30 23:35: Creating temporary proxy Done Contacting voms.ct.infn.it:15001 [/C=IT/O=GILDA/OU=Host/L=INFN ] "gilda" Creating proxy Done Your proxy is valid until Mon Jan 30 23:35:
25 VOMS - componenti Authz DB è un RDBMS (attualmente sono supportati MySQL and Oracle).
26 FQAN e AC Acronimo di Fully Qualified Attribute Name, è la struttura dati utilizzata dal VOMS per esprimere membership e le altre info di autorizzazione Appartenenza ad un gruppo, ruoli e capabilities devono essere espressi nel seguente formato /Role=[ ][/Capability= ] FQAN sono inclusi in un Attribute Certificate (AC) Attribute Certificates sono utilizzati per associare un set di attributi (come membership, ruoli, info di autorizzazione etc) con un’identità AC sono firmati digitalmente VOMS utilizza AC per includere gli attributi di un utente in un certificato proxy [glite-tutor] /home/giorgio > voms-proxy-info -fqan /gilda/Role=NULL/Capability=NULL /gilda/tutors/Role=NULL/Capability=NULL
27 VOMS e AC Il server crea e firma un AC contenente il FQAN richiesto dall’utente, se applicabile (voms-proxy-init --voms gilda:/gilda/tutors) L’AC è incluso dal client in estensioni ben definite, non critiche, assicurando la compatibilità con i meccanismi di GT A livello di risorse, le info di autorizzazione sono estratte dal proxy e processate dal LCAS e dal LCMAPS /home/giorgio > voms-proxy-info -all subject : /C=IT/O=GILDA/OU=Personal Certificate/L=INFN/CN=Emidio issuer : /C=IT/O=GILDA/OU=Personal Certificate/L=INFN/CN=Emidio identity : /C=IT/O=GILDA/OU=Personal Certificate/L=INFN/CN=Emidio type : proxy strength : 512 bits path : /tmp/x509up_u513 timeleft : 11:59:52 === VO gilda extension information === VO : gilda subject : /C=IT/O=GILDA/OU=Personal Certificate/L=INFN/CN=Emidio issuer : /C=IT/O=GILDA/OU=Host/L=INFN attribute : /gilda/tutors/Role=NULL/Capability=NULL attribute : /gilda/Role=NULL/Capability=NULL timeleft : 11:59:45
28 Gruppi Il numero di utenti di una VO può essere molto alto: – Es. l’esperimento ATLAS ha 2000 membri Per rendere una VO gestibile occorre organizzare gli utenti in gruppi: Esempi: – VO GILDA Gruppo Catania INFN oGruppo Barbera Università Gruppo Padova – VO GILDA /GILDA/TUTORS può scrivere sullo storage normale /GILDA/STUDENT solo su spazio volatile I gruppi possono avere una struttura gerarchica, indefinitamente profonda
29 Ruoli I ruoli sono specifici per utente e lo distinguono dagli altri utenti del gruppo: –Software manager –Amministratore di VO Differenza tra ruoli e gruppi: –I ruoli non hanno una struttura gerarchica – non esiste un sub-ruolo –I ruoli non sono utilizzati in ‘operazioni normali’ Non sono aggiunti al proxy di default quando viene eseguito il comando voms-proxy-init Possono essere aggiunti al proxy per scopi speciali quando viene eseguito il comando voms-proxy-init Esempio: –L’utente Emidio ha le seguenti info associate VO=gilda, Group=tutors, Role=SoftwareManager –Durante le normali operazioni il ruolo non è considerato, e.g. Emidio può lavorare come un utente normale –Per scopi particolari può ottenere il ruolo di “Software Manager”
30 LCAS & LCMAPS A livello di risorsa, le info di autorizzazione sono estratte dal proxy e processata dal LCAS e LCMAPS Local Centre Authorization Service (LCAS) –Controlla se l’utente è autorizzato (attualmente utilizzando il grid- mapfile) –Controlla se all’utente è vietato l’accesso al sito –Controlla se in quel momento il sito accetta job Local Credential Mapping Service (LCMAPS) –Mappa le credenziali “grid” alle credenziali locali (eg. UNIX uid/gid, AFS tokens, etc.) –Mappa inoltre i gruppi ed i ruoli VOMS (pieno supporto di FQAN) "/VO=cms/GROUP=/cms".cms "/VO=cms/GROUP=/cms/prod".cmsprod "/VO=cms/GROUP=/cms/prod/ROLE=manager".cmsprodman
31 Variabili di ambiente GSI File del certificato utente: –Certificato:X509_USER_CERT (default: $HOME/.globus/usercert.pem ) –Chiave privata: X509_USER_KEY (default: $HOME/.globus/userkey.pem ) –Proxy:X509_USER_PROXY (default: /tmp/x509up_u ) File del certificato dell’Host: –Certificato X509_HOST_CERT (default: /etc/grid- security/hostcert.pem ) –Chiave privata X509_HOST_KEY (default: /etc/grid- security/hostkey.pem ) Certificati della CA fidate (Trusted) : – X509_CERT_DIR (default: /etc/grid-security/certificates ) Chiavi pubbliche dei Voms server –X509_VOMS_DIR (default: /etc/grid-security/vomsdir )
32 Ulteriori informazioni Grid LCG Security: LCG Registration: / Globus Security: VOMS: GGF Security: IETF PKIX charter: PKCS: