La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Authentication and Authorization in gLite

Presentazioni simili


Presentazione sul tema: "Authentication and Authorization in gLite"— Transcript della presentazione:

1 Authentication and Authorization in gLite
Diego Scardaci INFN - Catania Tutorial TriGrid VL Catania,

2 Overview Glossario Crittografia Certificati Grid Security
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 Catania, Primo Workshop TriGrid VL,

3 Overview Glossario Crittografia Certificati Grid Security
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 Catania, Primo Workshop TriGrid VL,

4 Glossario Principale Credenziali Autenticazione Autorizzazione
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 Catania, Primo Workshop TriGrid VL,

5 Overview Glossario Crittografia Certificati Grid Security
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 Catania, Primo Workshop TriGrid VL,

6 Crittografia K1 Encryption Decryption
M C M 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: K1 = K2 Asimmetrici: K1 ≠ K2 Catania, Primo Workshop TriGrid VL,

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 Alice Bob ciao 3$r 3$r ciao Alice Bob ciao 3$r 3$r ciao Catania, Primo Workshop TriGrid VL,

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) Paul John ciao 3$r 3$r ciao Paul John ciao cy7 cy7 ciao Paul keys John keys public public private private Catania, Primo Workshop TriGrid VL,

9 Overview Glossario Crittografia Certificati Grid Security
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 Catania, Primo Workshop TriGrid VL,

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) dato M, deve essere semplice calcolare H(M) = h dato h, deve essere complesso calcolare M = H-1(h) 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. Catania, Primo Workshop TriGrid VL,

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 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. Paul messaggio Firma Digitale messaggio Hash(A) Firma Digitale John messaggio Firma digitale Hash(B) Chiavi di Paul pubblica privata = ? Hash(A) Catania, Primo Workshop TriGrid VL,

12 Certificati Digitali La firma digitale di Paul è sicura se:
La chiave privata di Paul non è compromessa 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. Catania, Primo Workshop TriGrid VL,

13 PGP “web of trust” D B F C E A 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. Catania, Primo Workshop TriGrid VL,

14 La “terza parte” è chiamata Autorità di Certificazione (CA).
X.509 La “terza parte” è chiamata Autorità di Certificazione (CA). Fornisce 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) Catania, Primo Workshop TriGrid VL,

15 Certificati X.509 Un Certificato X.509 contiene:
Struttura di un certificato X.509 Un Certificato X.509 contiene: chiave pubblica del proprietario; Identità del proprietario; info sulla CA; tempo di validità; numero di seriale; 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 Catania, Primo Workshop TriGrid VL,

16 Overview Glossario Crittografia Certificati Grid Security
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 Catania, Primo Workshop TriGrid VL,

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” Grid Siti Risorse eterogenee Patterns di accesso Politiche locali Membership Catania, Primo Workshop TriGrid VL,

18 Le chiavi private devono essere
L’infrastruttura di sicurezza di Grid (GSI) Basato su X.509 PKI: John Paul 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: John invia il suo certificato; Paul verifica la firma nel certificato di John; Paul invia a John una stringa casuale; John cripta la stringa con la sua chiave privata; John invia la stringa criptata a Paul Paul utilizza la chiave pubblica di John per decriptare la stringa. Paul confronta la stringa decriptata con l’originale Se corrispondono, Paul ha verificato l’identità di John e John non può ripudiarlo. Certificato di John MOLTO IMPORTANTE Le chiavi private devono essere memorizzate solo: in posti protetti E in forma criptata 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 Catania, Primo Workshop TriGrid VL,

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) Catania, Primo Workshop TriGrid VL,

20 Certification Authority State of Illinois
Richiesta Certificato… un esempio L’utente genera una coppia di chiavi pubblica/privata. La CA conferma l’identità, firma il certificato e lo invia indietro all’utente. Cert Request Public Key Certification Authority Cert State of Illinois ID chiave privata criptata sul disco locale L’utente invia la chiave pubblica alla CA assieme a una prova di identità. Catania, Primo Workshop TriGrid VL,

21 Gestione del certificato
Importa il tuo certificato nel tuo browser Se hai ricevuto un certificato .pem devi convertirlo in PKCS12 Utilizza openssl command line (disponibile in ogni UI) openssl pkcs12 –export –in usercert.pem –inkey userkey.pem –out my_cert.p12 –name ’My Name’ TRIGRID, GILDA (ed altre VO): Riceverai direttamente un certificato PKCS12 (puoi importarlo direttamente nel web browser) Per usi futuri hai bisogno di usercert.pem e userkey.pem in una directory ~/.globus della tua UI Esporta il cert PKCS12 in una dir locale sulla UI ed utilizza ancora openssl: openssl pkcs12 -nocerts -in my_cert.p12 -out userkey.pem openssl pkcs12 -clcerts -nokeys -in my_cert.p12 -out usercert.pem Catania, Primo Workshop TriGrid VL,

22 Certificati X.509 Proxy Estensione GSI ai Certificati d’Identità X.509
firmati dall’utente finale (o da un altro proxy). Consente il “single sign-on” Supporta alcune importanti features Delega Mutua autenticazione Ha un tempo di vita limitato (per minimizzare il rischio di “credenziali compromesse”) E’ creato dal commando grid-proxy-init: % grid-proxy-init Enter PEM pass phrase: ****** Opzioni per grid-proxy-init: -hours <lifetime of credential> -bits <length of key> -help Catania, Primo Workshop TriGrid VL,

23 grid-proxy-init L’utente introduce la pass phrase che è utilizzata per decriptare la chiave privata. La chiave privata è utilizzata per firmare un certificato proxy con la propria nuova coppia di chiavi pubblica/privata. La chiave privata dell’utente non è “esposta” dopo che il proxy è stato firmato User certificate file User Proxy certificate file Private Key (Encrypted) Pass Phrase Il Proxy è memorizzato in /tmp la chiave privata del Proxy non è criptata: salvato in un file locale: deve essere leggibile solo dal proprietario; Il tempo di vita del proxy è breve (tipicamente 12 h) per minimizzare rischi di sicurezza. NOTA: Assenza di traffico di rete! Catania, Primo Workshop TriGrid VL,

24 Ancora proxy … grid-proxy-init ≡ “login alla Grid”
Per effettuare il “logout” devi distruggere il tuo proxy: grid-proxy-destroy Questo NON distrugge i proxy che sono stati delegati da questo proxy. Non è possibile revocare un proxy remoto Solitamente crea proxy con un tempo di vita breve Per visionare informazioni relative al tuo proxy: grid-proxy-info Opzioni per stampare informazioni sul proxy -subject -issuer -type timeleft -strength -help Catania, Primo Workshop TriGrid VL,

25 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 Catania, Primo Workshop TriGrid VL,

26 Proxy a lungo termine Proxy ha un tempo di vita breve (il default è 12 h) Avere proxy con un lungo tempo di vita è una cattiva idea Comunque, un grid task potrebbe necessitare di utilizzare un proxy per un tempo più lungo Esistono job che hanno un tempo di esecuzione nell’ordine di alcuni giorni myproxy server: consente di creare e memorizzare un certificato proxy a lungo termine: myproxy-init --voms <vo_name> -s <host_name> -s: <host_name> specifica il nome dell’host del myproxy server myproxy-info Fornisce informazioni sul proxy a lungo termine memorizzato myproxy-get-delegation Fornisce un nuovo proxy dal MyProxy server myproxy-destroy controlla myproxy-xxx - - help option Un servizio dedicato sul RB può rinnovare automaticamente il proxy File transfer services in gLite valida le richieste dell’utente e, se necessario, rinnova il proxy contattando il myproxy server Catania, Primo Workshop TriGrid VL,

27 myproxy-get-delegation
Autenticazione Grid con MyProxy UI MyProxy Server myproxy-init myproxy-get-delegation GENIUS Server (UI) WEB Browser the Grid execution Local WS any grid service output Catania, Primo Workshop TriGrid VL,

28 MyProxy delegation protocol
Server Client Instaurano un canale TLS autenticato e protetto. Il client stabilisce una connessione TCP col server e inizia il TLS handshake protocol. Il client e il server stabiliscono un canale TLS privato (criptato) per incapsulare il protocollo applicativo di MyProxy. Genera una coppia di chiavi Invia una richiesta di proxy Il Server genera una coppia di chiavi e invia un nuovo certificato proxy (solo la chiave pubblica!) al client. Firma il proxy Invia la catena di certificati Il client firma il certificato proxy ed invia la catena di certificati al server. Catania, Primo Workshop TriGrid VL,

29 Overview Glossario Crittografia Certificati Grid Security
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 Catania, Primo Workshop TriGrid VL,

30 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 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 Catania, Primo Workshop TriGrid VL,

31 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 Catania, Primo Workshop TriGrid VL,

32 VOMS - componenti Authz DB è un RDBMS (attualmente sono supportati MySQL and Oracle). Catania, Primo Workshop TriGrid VL,

33 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 <group>/Role=[<role>][/Capability=<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 Catania, Primo Workshop TriGrid VL,

34 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 Catania, Primo Workshop TriGrid VL,

35 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 Gruppo Barbera Università Gruppo Padova /GILDA/TUTORS può scrivere sullo storage normale /GILDA/STUDENT solo su spazio volatile I gruppi possono avere una struttura gerarchica, indefinitamente profonda Catania, Primo Workshop TriGrid VL,

36 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” Catania, Primo Workshop TriGrid VL,

37 LCAS & LCMAPS Local Centre Authorization Service (LCAS)
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 Catania, Primo Workshop TriGrid VL,

38 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<id>) 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) Catania, Primo Workshop TriGrid VL,

39 Ulteriori informazioni
Grid LCG Security: LCG Registration: Globus Security: VOMS: Background GGF Security: IETF PKIX charter: PKCS: Catania, Primo Workshop TriGrid VL,


Scaricare ppt "Authentication and Authorization in gLite"

Presentazioni simili


Annunci Google