290 likes | 458 Views
Griglie computazionali Università degli Studi di Napoli Federico II Corso di Laurea Magistrale in Informatica – I Anno. Grid Security Infrastructure Grid Security Infrastructure Certificati X.509 Certificati Proxy Il servizio VOMS. Sicurezza: GSI (1/9) Grid Security Infrastucture
E N D
Griglie computazionali Università degli Studi di Napoli Federico II Corso di Laurea Magistrale in Informatica – I Anno • Grid Security Infrastructure • Grid Security Infrastructure • Certificati X.509 • Certificati Proxy • Il servizio VOMS
Sicurezza: GSI (1/9) • Grid Security Infrastucture • Le entità in gioco sono utenti, programmi e computers • Technicalrequirements • multi-siteauthentication (verifica di identità) • authorization (mappa l’entità ad un set di privilegi) • messageintegrity • non-repudiation • message privacy • delegation (proxy) • usersvirtualization • Usersrequirements • simplicity
Sicurezza: GSI (2/9) • Generalità • Controllo locale e flessibile sulle politiche di accesso. • Le credenziali di una entità (utente o server) sono fornite attraverso certificati digitali. • utilizzo di certificati X.509 (modello gerarchico) • Rilascio da parte di CA (Certification Authority) • Soluzione basata su crittografia asimmetrica
Sicurezza: GSI (3/9) • Rilascio del certificato • Step 1 • l’utente genera • un certificato vuoto di richiesta: usercert_request.pem • una chiave privata criptata: userkey.pem • Step 2 • l’utente invia il certificato vuoto alla propria CA e viene identificato (tramite una RA locale) • Step 3 • l’utente riceve il certificato compilato dalla CA • - chiave pubblica dell'utente • - vero nome dell'utente • - data di scadenza del certicato • - nome della Certication Autorithy • - numero di serie del certicato • - firma digitale della CA
CERTIFICATION AUTHORITY INFN http://security.fi.infn.it/CA/
An X.509 Certificate contains: • owner’s public key; • identity of the owner; • info on the CA; • time of validity; • Serial number; • digital signature of the CA Structure of a X.509 certificate Public key Subject:C=IT, O=INFN, OU=Personal Certificate, L=NAPOLI CN=Alessandra Doria Issuer: C=IT, O=INFN, CN=INFN Certification Authority Expiration date: May 10 14:15:14 2005 GMT Serial number: 080E CA Digital signature
Certificato -----BEGIN CERTIFICATE----- MIIF1zCCBL+gAwIBAgICCA4wDQYJKoZIhvcNAQEEBQAwQzELMAkGA1UEBhMCSVQx DTALBgNVBAoTBElORk4xJTAjBgNVBAMTHElORk4gQ2VydGlmaWNhdGlvbiBBdXRo b3JpdHkwHhcNMDQwNTEwMTMxNTIyWhcNMDUwNTEwMTMxNTIyWjCBjzELMAkGA1UE BhMCSVQxDTALBgNVBAoTBElORk4xHTAbBgNVBAsTFFBlcnNvbmFsIENlcnRpZmlj YXRlMQ0wCwYDVQQHEwRDTkFGMRcwFQYDVQQDEw5EYW5pZWxlIENlc2luaTEqMCgG CSqGSIb3DQEJARYbZGFuaWVsZS5jZXNpbmlAY25hZi5pbmZuLml0MIIBIjANBgkq hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnEvVPBpTjKLA4F0K+Zgc8pWyEPGDnwLW glktBI6+mYTLuemPzgkZ4CTyrZL7bw5ywXUe717e1Rmg6wDfPANRLkxxRNKNaron kS19eNKjPYpklEKNq2gSGsK0/SsYB2YUG4kWLqtFC93x1Ffdc1Tz0xgrXH3kC0jq NqHImDrbpB7VtvAGC7/e/EJhy9MvlPA4W2vbUnwBocjMA/en3GXs2KY19tbFA3Tg jyIpCMbIeu3GlyTnbSJFoy3eeHkNLsf9c29RAJ5gWxMF7arM++NyURQ9qaEdMINj Cqb7dHJEj8E/AwSsYeWmWHfaPXnjj5aP23UlRTc31nSwh+5y0bMnFwIDAQABo4IC hjCCAoIwDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBPAwNgYDVR0fBC8wLTAr oCmgJ4YlaHR0cDovL3NlY3VyaXR5LmZpLmluZm4uaXQvQ0EvY3JsLmNybDAXBgNV HSAEEDAOMAwGCisGAQQB0SMKAQQwHQYDVR0OBBYEFCM+8mfoaenmQ76tHy+7hX+5 RKJ6MGsGA1UdIwRkMGKAFMoR710dBwSYqaW1WBpmTgoWK+BJoUekRTBDMQswCQYD VQQGEwJJVDENMAsGA1UEChMESU5GTjElMCMGA1UEAxMcSU5GTiBDZXJ0aWZpY2F0 -----END CERTIFICATE----- grid-cert-info -<option> -f cert_file.pem where <option> can be: -all -startdate-subject -enddate-issuer -help
Nota: cifratura crittografia asimmetrica: A B • Cifratura e decifratura sono fatte con chiavi diverse, A pubblica e B privata. • Il mittente cifra con la chiave pubblica del ricevente, che sarà l’unico a poter decifrare. • Quello che è criptato con la chiave A può essere decriptato solo con B e viceversa. • Non si può mai ricavare A da B, né viceversa.
Nota: firma digitale Da un messaggio di lunghezza variabile, una funzione produce una stringa di lunghezza fissa (HASH). L’hash viene criptato con la chiave privata del mittente e decriptato con la pubblica, verificando l’integrità A • controllo sull’identita’ del mittente • verifica dell’integrita’ del messaggio • non ripudiabilita’ B
User certificate Verify CA signature Random phrase Encrypt with user private key Encrypted phrase Decrypt with user public key Compare with original phrase Sicurezza: GSI (4/9)Fasi dell’autenticazione SERVICE USER • Ogni richiesta è accompagnata dal certificato dell’utente • La CA deve essere accreditata (trusted) presso il ricevente • Se la stringa decriptata coincide, il servizio ricevente non può rifiutare la richiesta • Ogni transazione Grid è soggetta a mutua autenticazione
user certificate file grid-proxy-init user proxy certificate file private key • Sicurezza: GSI (5/9) • Grid authentication • Per evitare che un cerificato possa essere intercettato, viene creato un proxy (locale e temporaneo) delle credenziali utilizzato per tutte le operazioni. • X.509 Proxy Certificate = estensione GSI di X.509 • Ha durata molto inferiore al certificato originale (in genere 12 h)
Sicurezza: GSI (6/9) • Delega • delega = creazione remota di un proxy delle credenziali • permette a un processo remoto di autenticarsi per conto dell’utente • Immettendo una password l’utente firma il proxy con la propria chiave privata. • I proxy hanno una propria coppia di chiavi.
Sicurezza: GSI • Grid authentication N.B: Il certificato resta sulla macchina dell’utente e ha la chiave privata criptata e protetta con una password. Per creare certificati proxy e per ogni altra attività l’utente deve immettere la password della sua chiave privata. I certificati proxy viaggiano nella grid ed hanno coppie di chiavi pubblica e privata con chiave privata non criptata. Non serve l’intervento umano.
Sicurezza: GSI • Grid authentication Il certificato utente risiede generalmente nella user interface nella home del proprietario con chiave privata associata, protetta con password I certificati proxy invece portano in un unico file, chiave pubblica e chiave privata, quest’ultima senza protezione. N.B. Nella GSI le chiavi private NON POSSONO VIAGGIARE IN RETE anche se protette da password. Come si creano certificati proxy remoti se non possono viaggiare le chiavi private?
Sicurezza: GSI • Grid authentication Partendoda un certificato proxy sull’hostA, per creare un certificato proxy remotosu un host chechiameremoBsi segue questaprocedura: Il server remotoB genera unacoppiadichiavi, tienequellaprivataedinvia la chiavepubblica al server A. Il server A compilailcertificato per B e lo firma con ilcertificato proxy chegiàpossiede. Il server A inviailcertificatocosìcompilato al server B ilqualeunendoloallachiaveprivatagià in suopossessocompletailprocessodi delegation tramite proxy.
Sicurezza: GSI (7/9)Delega • Si possono interrogare e cancellare i propri proxy: • grid-proxy-info • grid-proxy-destroy (non distrugge i proxy delegati) Una applicazione può durare più a lungo del proxy: Un myproxy server può rinnovare automaticamente i proxy di task ancora in corso, che stanno per scadere.
Sicurezza: GSI MyProxy Il servizio Myproxy è un online-credetinal repository che conserva le credenziali per un lungo periodo di tempo (generalmente una settimana) e consente a un utente di ottenere credenziali in maniera sicura quando è necessario. Ad esempio per job di durata superiore alla scadenza del proxy, il workernode dove risiede il job può contattare il myproxyserve con il certificato proxy per ottenere nuove credenziali dal Myporxy server in maniera automatica senza l’intervento umano.
RLS BDII SE WN WN WN WN WN WN WN WN Quali entità hanno bisogno di un certificato? edg-job-submit RB User globus-job-run A Certificate is needed for: User RB CE SE CE To test user authentication on a farm we will use this command on the CE.
Sicurezza: GSI (8/9) • Grid authorization – mapping • Essere autenticato non dà diritti di esecuzione su una Grid. • L’utente deve appartenere ad un gruppo autorizzato all’uso delle risorse -> Virtual Organization • Il proxy ottenuto con grid-proxy-init non contiene informazioni sulla VO, che viene individuata attraverso il grid-mapfile presente sulle risorse. • Il grid-mapfile stabilisce i diritti di un utente su una specifica risorsa, in base alla sua VO di appartenenza. • le entries del grid-mapfile mappano gli utenti della Grid autorizzati in utenti del sistema locale: "/C=IT/O=INFN/OU=Personal Certificate/L=Napoli/CN=Ale Doria/Email=ale.doria@na.infn.it".gridit
VOMS Per far sì che un utente possa utilizzare effettivamente le risorse di distribuite di calcolo e di storage, occorre che appartenga ad una Virtual Organizzation (VO). Ogni utente può appartenre a più VO presso le quali si indentifica con il suo certificato personale che è sempre lo stesso. In ogni VO un utente può avere differenti Ruoli e differenti privilegi
Sicurezza: GSI (9/9) Grid authorization – VOMS Il servizio VOMS (Virtual Organization Membership Service) estende le informazioni del proxy con VO membership, gruppo, ruolo, privilegi. voms-proxy-init voms-proxy-destroy voms-proxy-info Non tutte le VO devono essere gestite con VOMS.
VOMS SERVER DELLA VO UNINA.IT
Il VOMS in gLite Le Virtual Organization in gLite sono VOMS oriented. Gli attributi vengono specificati secono la seguente sintassi: /VO/Role=Ruolo/Capability=Privilegi Ad esempio /unina.it/Role=VO-Admin Oppure /unina.it/Role=softmanager/Capability=swinstall
Il VOMS in gLite Il Certificato si installa sulla propria User Interface e viene utilizzato per creare i certificati proxy con cui gli utenti si autenticano all’interno della grid. La directory di default è /home/nomeutente/.globus [spardi@ui02 .globus]$ pwd /home/spardi/.globus [spardi@ui02 .globus]$ ls -la total 16 drwxrwxr-x 2 spardi spardi 4096 Jan 22 17:26 . drwx------ 12 spardi spardi 4096 Mar 30 12:32 .. -rw------- 1 spardi spardi 1799 Jan 22 17:26 usercert.pem -r-------- 1 spardi spardi 1922 Jan 22 17:26 userkey.pem
[spardi@ui02 ~]$ voms-proxy-init --voms unina.it Cannot find file or dir: /home/spardi/.glite/vomses Enter GRID pass phrase: Your identity: /C=IT/O=INFN/OU=Personal Certificate/L=Federico II/CN=Silvio Pardi Creating temporary proxy .......................................... Done Contacting voms01.scope.unina.it:15003 [/C=IT/O=INFN/OU=Host/L=Federico II/CN=voms01.scope.unina.it] "unina.it" Done Creating proxy ................................... Done Your proxy is valid until Mon Mar 30 21:31:38 2009 [spardi@ui02 ~]$ [spardi@ui02 ~]$ voms-proxy-info --all subject : /C=IT/O=INFN/OU=Personal Certificate/L=Federico II/CN=Silvio Pardi/CN=proxy issuer : /C=IT/O=INFN/OU=Personal Certificate/L=Federico II/CN=Silvio Pardi identity : /C=IT/O=INFN/OU=Personal Certificate/L=Federico II/CN=Silvio Pardi type : proxy strength : 512 bits path : /tmp/x509up_u500 timeleft : 11:59:35 === VO unina.it extension information === VO : unina.it subject : /C=IT/O=INFN/OU=Personal Certificate/L=Federico II/CN=Silvio Pardi issuer : /C=IT/O=INFN/OU=Host/L=Federico II/CN=voms01.scope.unina.it attribute : /unina.it timeleft : 11:57:37
[spardi@ui02 ~]$ voms-proxy-init --voms unina.it:/unina.it/Role=VO-Admin Cannot find file or dir: /home/spardi/.glite/vomses Enter GRID pass phrase: Your identity: /C=IT/O=INFN/OU=Personal Certificate/L=Federico II/CN=Silvio Pardi Creating temporary proxy ...................................................................... Done Contacting voms01.scope.unina.it:15003 [/C=IT/O=INFN/OU=Host/L=Federico II/CN=voms01.scope.unina.it] "unina.it" Done Creating proxy ............................................................. Done Your proxy is valid until Mon Mar 30 21:45:59 2009 [spardi@ui02 ~]$ voms-proxy-info --all subject : /C=IT/O=INFN/OU=Personal Certificate/L=Federico II/CN=Silvio Pardi/CN=proxy issuer : /C=IT/O=INFN/OU=Personal Certificate/L=Federico II/CN=Silvio Pardi identity : /C=IT/O=INFN/OU=Personal Certificate/L=Federico II/CN=Silvio Pardi type : proxy strength : 512 bits path : /tmp/x509up_u500 timeleft : 11:59:58 === VO unina.it extension information === VO : unina.it subject : /C=IT/O=INFN/OU=Personal Certificate/L=Federico II/CN=Silvio Pardi issuer : /C=IT/O=INFN/OU=Host/L=Federico II/CN=voms01.scope.unina.it attribute : /unina.it attribute : /unina.it/Role=VO-Admin timeleft : 11:58:00
Riferimenti “A National-Scale Authentication Infrastructure”R. Butler, V. Welch, D. Engert, I. Foster, S. Tuecke, J. Volmer, C. KesselmanIEEE Computer n.33, 2000 http://www.cs.ucy.ac.cy/crossgrid/cygriddl/gsi-authentication.pdf Globus Security: http://www.globus.org/toolkit/docs/4.0/security/