LEZIONE
LEZIONE N. 5
• Caratterizzazione di un sistema di calcolo distribuito convenzionale
• Caratterizzazione di un sistema di calcolo Grid
• Grid middleware: GSI
Introduzione alle griglie
Introduzione alle griglie computazionali computazionali
Università degli Studi di Napoli Federico II Corso di Laurea in Informatica – III Anno
Introduzione
Introduzione
(1/2)(1/2)Concetto di “Computational Grids”:
• risorse di computing/storage accessibili facilmente (come avviene per l’utilizzo dell’energia elettrica)
• prospettiva di utility: utenti che ottengono accesso a delle risorse tramite un provider
• prospettiva di resource sharing: virtual organization condividono risorse per il raggiungimento di uno scopo comune
Introduzione
Introduzione
(2/2)(2/2)Il concetto di resource sharing non e’ una novita’:
• printer sharing, RPC, networked file systems, ...
Grid viene considerato il successore dei sistemi di calcolo distribuiti convenzionali
tuttavia esistono diverse definizioni di Grid:
• high-performance distributed computing environment
• geographically distributed computing
• “Coordinated resource sharing and problem solving in
G R I D
Metodologia per la caratterizzazione Metodologia per la caratterizzazione
Applicazione distribuita
numero (finito) di processi cooperativi che utilizzano risorse debolmente accoppiate (loosely coupled resources)
La macchina virtuale su cui viene eseguita un’applicazione distribuita differisce nelle sue caratteristiche se consideriamo
• un sistema di calcolo distribuito convenzionale
• un sistema di calcolo Grid
E’ possibile definire Grid caratterizzando la macchina virtuale
Caratterizzazione di un sistema di calcolo Caratterizzazione di un sistema di calcolo
distribuito convenzionale
distribuito convenzionale
(1/2)(1/2)L’applicazione distribuita assume l’esistenza di un pool di nodi di calcolo che implementano una macchina virtuale
Il pool consiste in un insieme di PC, supercomputer, ... su cui ha accesso (login + password) l’utente che esegue
l’applicazione distribuita
L’operazione di login alla macchina virtuale consiste nella autenticazione su ciascun nodo. In generale assumiamo che
l’utente autenticato su un nodo del pool viene automaticamente autorizzato all’utilizzo di tutti i nodi del pool
Caratterizzazione di un sistema di calcolo Caratterizzazione di un sistema di calcolo
distribuito convenzionale
distribuito convenzionale
(2/2)(2/2)L’utente di un sistema di calcolo distribuito convenzionale conosce le caratteristiche dei nodi a disposizione
(sistema operativo, potenza del processore, spazio disco, ...) Inoltre, l’insieme di nodi e’ statico in quanto cambia molto raramente le sue caratteristiche
Infine la dimensione di un sistema di calcolo distribuito convenzionale e’ dell’ordine di 10-100 nodi
A1 A2
risorsa
Application nodo
Virtual machine
level
Virtual pool level
Physical level
Caratterizzazione di un sistema di calcolo Caratterizzazione di un sistema di calcolo
Grid Grid
(1/2)(1/2)Un’applicazione distribuita assume l’esistenza di un pool di risorse (processori, memoria, disco, ...) distribuite su scala geografica
La macchina virtuale, nel caso Grid, e’ costituita da un set di risorse del pool
L’operazione di login alla macchina virtuale presuppone che l’utente possiede delle credenziali accettate dai proprietari delle risorse del pool. Un utente può essere autorizzato all’utilizzo di una risorsa senza avere un account sul nodo che ospita la risorsa.
Caratterizzazione di un sistema di calcolo Caratterizzazione di un sistema di calcolo
Grid Grid
(2/2)(2/2)L’utente di un sistema di calcolo distribuito Grid non conosce le caratteristiche delle risorse a disposizione Inoltre, l’insieme di nodi e’ dinamico
Infine la dimensione di un sistema di calcolo Grid convenzionale e’ dell’ordine di 1000 risorse
A1 A2
risorsa
Application nodo
Virtual machine
level
Virtual pool level
Physical
elementi nel pool: >> 100, dinamici elementi nel pool: 10-100, statici
le risorse appartengono a piu’ domini di gestione
i nodi appartengono ad un singolo dominio di gestione
l’utente non ha idea delle caratteristiche delle risorse
l’utente e’ a conoscenza delle caratteristiche dei nodi
l’accesso ad una risorsa può essere ristretto
l’accesso al nodo implica l’utilizzo di tutte le risorse del nodo
l’utente ha accesso al pool ma non ai nodi l’utente ha accesso ai nodi del pool
pool virtuale di risorse pool virtuale di nodi di calcolo
Sistemi di calcolo Grid Sistemi di calcolo distribuito convenzionali
Riepilogo e comparazione
Riepilogo e comparazione
Definizione di
Definizione di Grid Grid
Insieme di servizi che consentono il calcolo distribuito su risorse appartenenti a diversi domini di gestione e che fornisce:
• virtualizzazione degli utenti
• virtualizzazione delle risorse
In base alla definizione e alla caratterizzazione di Grid e’ possibile determinare se un sistema di calcolo è “Grid-enabled”
Introduzione al
Introduzione al Grid Grid Middleware Middleware
Globus Project
• Sviluppato dal 1998, standard “de facto”
per le tecnologie GRID.
• partner: Argonne NL (Chicago), USC/ISI (California), EPCC (Edimburgo) ...
• sviluppo open source del Globus Toolkit
• http://www.globus.org Globus Toolkit
• insieme di librerie e servizi “nucleo”
dell’infrastruttura Grid”
• architettura a livelli
• modello modulare: bag of services
Servizi Globus di base
Globus
Globus Toolkit Toolkit
Servizi di base
• Sicurezza (GSI)
• Servizi Informativi (MDS)
• Gestione delle risorse (GRAM)
• Gestione dei dati (GASS, GridFTP)
Resource Management
Information Services
Data Management
Sicurezza: GSI
Sicurezza: GSI
(1/9)(1/9)Grid Security Infrastucture
Le entità in gioco sono utenti, programmi e computers Technical requirements
• multi-site authentication (verifica di identità)
• authorization (mappa l’entità ad un set di privilegi)
• message integrity
• non-repudiation
• message privacy
• delegation (proxy)
• users virtualization Users requirements
• simplicity
Sicurezza: GSI
Sicurezza: GSI
(2/9)(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
Sicurezza: GSI
(3/9)(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
•
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
Public key Public key
Subject:
Subject:C=IT, O=INFN, C=IT, O=INFN, OU=Personal Certificate, OU=Personal Certificate,
L=NAPOLI CN=Alessandra Doria L=NAPOLI CN=Alessandra Doria Issuer: C=IT, O=INFN, CN=INFN Issuer: C=IT, O=INFN, CN=INFN Certification Authority
Certification Authority Expiration date:
Expiration date: May 10 14:15:14 May 10 14:15:14 2005 GMT
2005 GMT
Serial number: 080E Serial number: 080E
CA Digital signature CA Digital signature
Structure of a X.509 certificate
Certificato 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
Nota:
Nota: cifratura 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à 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.
crittografia asimmetrica:
A B
Nota: firma digitale Nota: firma digitale
- controllo sull’identita’ del mittente - verifica dell’integrita’ del messaggio - non ripudiabilita’
B
A
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à
Sicurezza: GSI
Sicurezza: GSI
(4/9)(4/9)Fasi dell’autenticazione
User certificate User certificate Verify CA signature Verify CA signature Random phrase Random phrase
Encryp
Encrypt t with user private keywith user private key Encrypted phrase
Encrypted phrase
Decrypt with user public key Decrypt with user public key
Compare with original phrase Compare with original phrase
• La richiesta è accompagnata dal certificato
• La CA deve essere “trusted” presso il ricevente
• se la stringa decriptata coincide, il ricevente non può rifiutare la richiesta
• Ogni transazione Grid è soggetta a mutua autenticazione
Sicurezza: GSI
Sicurezza: GSI
(5/9)(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)
Sicurezza: GSI
Sicurezza: GSI
(6/9)(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
Sicurezza: GSI
(7/9)(7/9)Delega
Si possono interrogare e cancellare i propri proxy:
• grid-proxy-info
• grid-proxy-destroy (non distrugge i proxy delegati)
Un task Grid può durare più a lungo del proxy:
Un myproxy server può rinnovare automaticamente i proxy di task ancora in corso che stanno per scadere.
Quali entità hanno bisogno di un certificato?
RB
CE
RLS
BDII
SE
User
A Certificate is needed for:
User RB CE
edg-job-submit
globus-job-run
To test user authentication on a farm we will use this
Sicurezza: GSI
Sicurezza: GSI
(8/9)(8/9)Grid authorization – mapping
• Essere autenticato non dà diritti di esecuzione su una Grid.
• L’utente deve appartenere ad (almeno) un gruppo
autorizzato all’uso delle risorse -> Virtual Organization
• Il proxy ottenuto con grid-proxy-init non contiene informazioni sulla VO.
• il grid-mapfile, gestito dall’amministratore locale,
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
Sicurezza: GSI
Sicurezza: GSI
(9/9)(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.
Come il file gridmap, anche il VOMS deve essere configurato dal manager locale.
Sicurezza: GSI
Sicurezza: GSI
schema generaleschema generaleRiferimenti Riferimenti
“Characterizing Grids: Attributes, Definitions, and Formalism”
Z. Németh, V. Sunderam
Journal of Grid Computing 1, Kluwer Academic Publisher, 2003
→ http://www.kluweronline.com/issn/1570-7873
“A National-Scale Authentication Infrastructure”
R. Butler, V. Welch, D. Engert, I. Foster, S. Tuecke, J. Volmer, C. Kesselman IEEE Computer n.33, 2000
→ http://www.globus.org/research/papers.html
Globus Security: http://www.globus.org/security/