1 Grid Security Infrastructure Certificati X.509 Certificati Proxy Il servizio VOMS Griglie computazionali Università degli Studi di Napoli Federico II Corso di Laurea Magistrale in Informatica – I Anno
2 Sicurezza: GSI (1/9) Grid Security Infrastucture Le entità in gioco sono utenti, programmi e computers Technical requirements multi-site authentication (verifica di identità) authorization (mappa lentità ad un set di privilegi) message integrity non-repudiation message privacy delegation (proxy) users virtualization Users requirements simplicity
3 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
4 Sicurezza: GSI (3/9) Rilascio del certificato Step 1 lutente genera -un certificato vuoto di richiesta: usercert_request.pem -una chiave privata criptata: userkey.pem Step 2 lutente invia il certificato vuoto alla propria CA e viene identificato (tramite una RA locale) Step 3 lutente 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
5 CERTIFICATION AUTHORITY INFN
6 An X.509 Certificate contains: owners public key; identity of the owner; info on the CA; time of validity; Serial number; digital signature of the CA 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: GMT Serial number: 080E CA Digital signature Structure of a X.509 certificate
7 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 VQQGEwJJVDENMAsGA1UEChMESU5GTjElMCMGA1UEAxMcSU5GTiBDZXJ0aWZpY2F END CERTIFICATE----- grid-cert-info - -f cert_file.pem where can be: -all-startdate -subject-enddate -issuer-help
8 Nota: cifratura - Cifratura e decifratura sono fatte con chiavi diverse, A pubblica e B privata. - Il mittente cifra con la chiave pubblica del ricevente, che sarà lunico 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. crittografia asimmetrica: AB
9 Nota: firma digitale - controllo sullidentita del mittente - verifica dellintegrita del messaggio - non ripudiabilita B A Da un messaggio di lunghezza variabile, una funzione produce una stringa di lunghezza fissa (HASH). Lhash viene criptato con la chiave privata del mittente e decriptato con la pubblica, verificando lintegrità
10 Sicurezza: GSI (4/9) Sicurezza: GSI (4/9) Fasi dellautenticazione User certificate Verify CA signature Random phrase Encrypt with user private key Encrypted phrase Decrypt with user public key Compare with original phrase Ogni richiesta è accompagnata dal certificato dellutente 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 SERVICE
11 Sicurezza: GSI (5/9) Grid authentication user certificate file private key user proxy certificate file grid-proxy-init 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)
12 Sicurezza: GSI (6/9) Delega delega = creazione remota di un proxy delle credenziali permette a un processo remoto di autenticarsi per conto dellutente Immettendo una password lutente firma il proxy con la propria chiave privata. I proxy hanno una propria coppia di chiavi.
13 Sicurezza: GSI Grid authentication N.B: Il certificato resta sulla macchina dellutente e ha la chiave privata criptata e protetta con una password. Per creare certificati proxy e per ogni altra attività lutente 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 lintervento umano.
14 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, questultima 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?
15 Sicurezza: GSI Grid authentication Partendo da un certificato proxy sullhost A, per creare un certificato proxy remoto su un host che chiameremo B si segue questa procedura: 1.Il server remoto B genera una coppia di chiavi, tiene quella privata ed invia la chiave pubblica al server A. 2.Il server A compila il certificato per B e lo firma con il certificato proxy che già possiede. 3.Il server A invia il certificato così compilato al server B il quale unendolo alla chiave privata già in suo possesso completa il processo di delegation tramite proxy.
16 Sicurezza: GSI (7/9) 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.
17 Sicurezza: GSI 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 lintervento umano.
18 Quali entità hanno bisogno di un certificato? RB CE WN RLS BDII SE User A Certificate is needed for: User RB CE SE edg-job-submit globus-job-run To test user authentication on a farm we will use this command on the CE.
19 Sicurezza: GSI (8/9) Grid authorization – mapping Essere autenticato non dà diritti di esecuzione su una Grid. Lutente deve appartenere ad un gruppo autorizzato alluso 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
20 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
21 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.
22 VOMS SERVER DELLA VO UNINA.IT
23
24
25 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
26 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 allinterno della grid. La directory di default è /home/nomeutente/.globus pwd /home/spardi/.globus ls -la total 16 drwxrwxr-x 2 spardi spardi 4096 Jan 22 17:26. drwx spardi spardi 4096 Mar 30 12:32.. -rw spardi spardi 1799 Jan 22 17:26 usercert.pem -r spardi spardi 1922 Jan 22 17:26 userkey.pem
27 ~]$ 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: ~]$ ~]$ 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
28 ~]$ 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: ~]$ 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
29 Sicurezza: GSI schema generale
30 Riferimenti A National-Scale Authentication Infrastructure R. Butler, V. Welch, D. Engert, I. Foster, S. Tuecke, J. Volmer, C. Kesselman IEEE Computer n.33, Globus Security: