plateforme de calcul pour les sciences du vivant notions de sécurité sur la grille
TRANSCRIPT
Plateforme de Calcul pour les Sciences du Vivant
http://clrpcsv.in2p3.fr
Notions de sécurité sur la grille
Plateforme de Calcul pour les Sciences du Vivant
211/04/23
Plan
• Le compte utilisateur
• Architecture– Authentification– Autorisation
• Mode d’emploi pour la France– Côté utilisateur
Obtenir un certificat Faire partie d’une Organisation Virtuelle
– Côté serveur Certificats d’hôtes et de services
Plateforme de Calcul pour les Sciences du Vivant
311/04/23
Un compte utilisateur
• Un utilisateur pour utiliser la grille doit posséder :– Un certificat X509 personnel– Une entrée dans une Organisation Virtuelle (VO)– Un compte sur une (au moins) Interface Utilisateur (UI)
Plateforme de Calcul pour les Sciences du Vivant
411/04/23
Authentification/Autorisation
• Authentification => Certificat– Qui est qui ?
• Autorisation => VO– Qui a le droit ?
• Accès au GRID => UI
• Audit sécurité– QUI fait QUOI et QUAND ?
• Comptabilité– COMBIEN de ressources consomme Mr X ou la VO Y ?
• Facturation possible:’-(
Plateforme de Calcul pour les Sciences du Vivant
511/04/23
Bases de la sécurité et de l’authentification
5
• Cryptage symétrique• Cryptage asymétrique…(Public Key Infrastructure)
– Les clés publiques et privées vont par paires. Il est impossible de dériver une clé depuis l’autre.
– Un message crypté par une clé ne peut être décrypté que par la clé paire
Encrypted Encrypted texttext
Private Key Public Key
plain textplain text plain textplain text
Plateforme de Calcul pour les Sciences du Vivant
611/04/23
Algorithme des clés publiques
• Chaque utilisateur a 2 clés: une privée et une publique– Il est impossible de dériver
une clé depuis l’autre;
– Un message crypté par une clé ne peut être décrypté que par l’autre
• Pas d’échange de secrets nécessaires– L’envoi crypté se fait en
utilisant la clé publique du receveur;
– Le décryptage par le receveur se fait en utilisant sa clé privée;
clés John
public private
clés Paul
public private
Paul John
ciao
3$r ciao
Paul John
ciao
cy7 ciao
3$r
cy7
Plateforme de Calcul pour les Sciences du Vivant
711/04/23
Exemple
7
• Les clés publiques sont échangées– Paul obtient la clé publique
de John..
• Paul crypte en utilisant la clé publique de John
• John décrypte en utilisant sa clé privée;
• Public key algorithm: rend sûr la confidentialité
clés John
private
public
Paul John
ciao
3$r ciao
3$r
Plateforme de Calcul pour les Sciences du Vivant
811/04/23
Certificat Digital
• La signature digitale de Paul est sûre si:1. La clé privée de Paul n’est pas compromise
2. John connaît la clé publique de Paul
• Comment John peut être sûr que la clé publique de Paul est vraiment la sienne?– Une troisième partie garantit la correspondance entre la clé
publique et l’identité de la personne.– Les deux autres parties doivent faire confiance à cette troisième
partie
• Deux modèles:– X.509: organisation hiérarchique– PGP: “web of trust”.
Plateforme de Calcul pour les Sciences du Vivant
911/04/23
• La troisième partie est appelée l’Autorité de Certification (CA).
• Donne des certificats pour les utilisateurs et les machines
• Check l’identité et les informations personnelles du requêteur– Registration Authorities (RAs) font la validation
• Les CA publient périodiquement une liste de certificats compromis– Certificate Revocation Lists (CRL): contient tous les certificats
bientôt révoqués
Plateforme de Calcul pour les Sciences du Vivant
1011/04/23
Le certificat
10
• Certificat– Il est basé sur le principe des
signatures digitales– La grille authentifie les utilisateurs
ou les ressources en vérifiant leurs certificats
– Le certificat est donné par une des CA (Certification Authorities).
private key
certificat
Informations utilisateur
Certification Authorities. CA
Signature digitale de la CA
Sign
Public Key
Informations de la CA
Durée de validité
Plateforme de Calcul pour les Sciences du Vivant
1111/04/23
Les certificats X.509
• Un certificat X.509 contient:
– public key;
– identité de la personne;
– info sur la CA;
– Durée de validité;
– Numéro de série;
– Signature digitale de la CA
Public keyPublic key
Subject:Subject:C=FR, O=CNRS, C=FR, O=CNRS, OU=LPC, CN=Matthieu ReichstadtOU=LPC, CN=Matthieu Reichstadt
Issuer: C=FR, O=CNRS, Issuer: C=FR, O=CNRS, CN=GRID-FRCN=GRID-FR
Expiration date: JulExpiration date: Jul 28 10:55:48 28 10:55:48 2008 GMT2008 GMT
Serial number: 625 (0x271)Serial number: 625 (0x271)
CA Digital signatureCA Digital signature
Structure of a X.509 certificate
Plateforme de Calcul pour les Sciences du Vivant
1211/04/23
Exemple de certificat
[reichma@clrlcgui01 reichma]$ grid-cert-infoCertificate: Data: Version: 3 (0x2) Serial Number: 2360 (0x938) Signature Algorithm: sha1WithRSAEncryption Issuer: C=FR, O=CNRS, CN=GRID-FR Validity Not Before: Jul 24 08:55:48 2007 GMT Not After : Jul 24 08:55:48 2008 GMT Subject: O=GRID-FR, C=FR, O=CNRS, OU=LPC, CN=Matthieu Reichstadt Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit)
.......
Plateforme de Calcul pour les Sciences du Vivant
1311/04/23
Comment obtenir un certificat
Plateforme de Calcul pour les Sciences du Vivant
1411/04/23
Les Autorités de Certification
• Problématique :– Une seule CA pour le projet => Pas gérable, peu sûr – Une CA par partenaire => Problème de mise à l’échelle
• Solution :– Une CA par pays
=> Établir des relations de confiance entre chaque CA=> Coordination au niveau du pays
– Catch-All CAs Pays sans CA nationale
• Création d’un groupe des CAs– EDG : CACG– Projets de GRID en Europe (EGEE, LCG, SEE-GRID, … ): EUGridPMA
Plateforme de Calcul pour les Sciences du Vivant
1511/04/23
EUGridPMAEUropean Grid Policy Management Authority
• Domaine de confiance commun en Europe : EUGridPMA • Même règles et pratiques de certification
– Certificats valides 1 an– Vérification de l’identité de la personne– …
• 28 Autorités de Certification nationales– France, Espagne, US, …., Estonie, Russie, …
• Catch-All CAs– LCG ou instituts HEP : DOE (US)– EGEE ou instituts non HEP : CNRS (France)
• http://marianne.in2p3.fr/datagrid/ca/ca-table-ca.html• http://lcg-registrar.cern.ch/pki_certificates.html
• Les certificats sont valables sur l’ensemble des projets de grille au travers de l’Europe
Plateforme de Calcul pour les Sciences du Vivant
1611/04/23
Autorisation
• Organisation Virtuelle (VO)– Ensemble d’individus ayant des buts communs – Utilisateurs– Ressources
A set of individuals or organisations, not under single hierarchical control, (temporarily) joining forces to solve a particular problem at hand, bringing to the collaboration a subset of their resources, sharing those at their discretion and each under their own conditions.
Plateforme de Calcul pour les Sciences du Vivant
1711/04/23
VO
Organisations Virtuelles (1/3)
• Les utilisateurs sont regroupés par expérience scientifique– Sciences du vivant : Biomed, …– HEP : Alice, Atlas, Babar, CMS, D0, LHCb, …– Observation de la Terre : ESR, EGEODE, …– Autre : DTEAM, NA4Test, …
• http://lcg-registrar.cern.ch/virtual_organization.html
• Les autorisations sont fonction de l’Organisation Virtuelle
• Un administrateur par Organisation Virtuelle– C’est le gestionnaire des utilisateurs de sa VO
• Les ressources se déclarent utilisables par X,Y ou Z Vos
• Des droits spécifiques peuvent être données au niveau de chaque ressources par l’administrateur de celle-ci
VO VO
Plateforme de Calcul pour les Sciences du Vivant
1811/04/23
Organisations Virtuelles (2/3)
Administrateur
Anonyme
Plateforme de Calcul pour les Sciences du Vivant
1911/04/23
Organisations Virtuelles (3/3)
Email de demande d’ajout dans la VO
Fichier LDIFLDAP Data Interchange Format
Plateforme de Calcul pour les Sciences du Vivant
2011/04/23
Mode d’emploi
1. Obtenir un certificat personnel– http://igc.services.cnrs.fr/Grid-fr
2. S’enregistrer auprès d’une VO et
2. Accepter les règles d’utilisation du GRID– https://lcg-registrar.cern.ch/cgi-bin/register/account.pl
– Attendre ~= 24 heures pour la propagation des droits
3. Exporter et convertir son certificat – du format PKCS12 au format PEM
– Le mettre en place sur l’UI
4. Générer un proxy
5. La grille est à vous…
Plateforme de Calcul pour les Sciences du Vivant
2111/04/23
Demande de Certificate
CA
VO
user serviceDemande de cert.
http://igc.services.cnrs.fr/Grid-fr/
Une fois par an
Plateforme de Calcul pour les Sciences du Vivant
2211/04/23
Certificat signé
CA
VO
user serviceDemande de cert.
http://igc.services.cnrs.fr/Grid-fr/
Certificat (PKCS12)
Plateforme de Calcul pour les Sciences du Vivant
2311/04/23
Enregistrement, règles d’utilisation
Une fois(Seulement le DN
du cert. est utilisé)
CA
VO
user serviceDemande de cert.
Certificat (PKCS12)
enregistrement
https://lcg-registrar.cern.ch/cgi-bin/register/account.pl
Plateforme de Calcul pour les Sciences du Vivant
2411/04/23
Démarrer une session
CA
VO
user serviceDemande de cert.
Certificat (PKCS12)
usercert.pem (PEM)
userkey.pem
Conversion cert.
grid-proxy-init
Toutes les 12/24 heures
Proxy cert.
Plateforme de Calcul pour les Sciences du Vivant
2511/04/23
Certificat proxy
• openssl x509 –in /tmp/x509up_u`id -u` -text Data: [...]
Issuer: O=Grid, O=CNRS, OU=LPC, CN=Matthieu Reichstadt émetteur est l’utilisateur
Validity
Not Before: Jul 22 09:44:39 2007 GMT Validité réduite: 1 jour
Not After : Jul 22 21:49:39 2008 GMT
Subject: O=Grid, O=CNRS, OU=LPC, CN=Matthieu Reichstadt, CN=proxy
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (512 bit) Nouvelle clé (+courte)
Modulus (512 bit):
00:e9:7c:f4:d0:5d:8a:4c:91:8b:df:a7:16:78:1f: [...]
Exponent: 65537 (0x10001)
X509v3 extensions: [...] Même extensions
Signature Algorithm: md5WithRSAEncryption [...] Signé par l’utilisateur
Champs supplémentaire : proxy
Plateforme de Calcul pour les Sciences du Vivant
2611/04/23
Demande de certificat serveur
CA
VO
user serviceDemande de cert.
Certificat (PKCS12)
usercert.pem (PEM)
userkey.pem
Conversion cert.
grid-proxy-init
Proxy cert.
Demande de cert.
http://igc.services.cnrs.fr/Grid-fr/
Une fois par an
Plateforme de Calcul pour les Sciences du Vivant
2711/04/23
Certificat serveur signé
CA
VO
user serviceDemande de cert.
Certificat (PKCS12)
usercert.pem (PEM)
userkey.pem
Conversion cert.
grid-proxy-init
Proxy cert.
Demande de cert.
http://igc.services.cnrs.fr/Grid-fr/
Certificat (PEM)
Plateforme de Calcul pour les Sciences du Vivant
2811/04/23
Configuration du serveur
CA
VO
user serviceDemande de cert.
Certificat (PKCS12)
usercert.pem (PEM)
userkey.pem
Conversion cert.
grid-proxy-init
Proxy cert.
Demande de cert.
http://igc.services.cnrs.fr/Datagrid-fr/
Certificat (PEM)
Certificat CAs
CRL CAs
Mise à jour automatique
toutes les 24h
Plateforme de Calcul pour les Sciences du Vivant
2911/04/23
Configuration des CAs acceptées
• Le certificat et la clé privée de l’hôte se trouvent :– /etc/grid-security/certificates
hostcert.pem hostkey.pem
• Les CAs reconnues par l’hôte se trouvent :– /etc/grid-security/certificates
Certificats des CAs CRLs des CAs
Plateforme de Calcul pour les Sciences du Vivant
3011/04/23
Autorisation
CA
VO
user serviceDemande de cert.
Certificat (PKCS12)
usercert.pem (PEM)
userkey.pem
Conversion cert.
grid-proxy-init
Proxy cert.
Demande de cert.
Certificat (PEM)
Certificat CAs
CRL CAs
gridmap file
Mise à jour automatique
toutes les 24h
Plateforme de Calcul pour les Sciences du Vivant
3111/04/23
Gridmapfile: configuration
• Installer et configurer le script de mise à jour automatique du gridmapfile (mkgridmap.conf)
– http://marianne.in2p3.fr/datagrid/ca/ca-table.html
• cat /etc/grid-security/mkgridmap.confauth ldap://marianne.in2p3.fr/ou=People,o=testbed,dc=eu-datagrid,dc=org
# EDG Standard Virtual Organizations
group ldap://grid-vo.nikhef.nl/ou=testbed1,o=alice,dc=eu-datagrid,dc=org .alice
group ldap://grid-vo.nikhef.nl/ou=testbed1,o=atlas,dc=eu-datagrid,dc=org .atlas
group ldap://grid-vo.nikhef.nl/ou=tb1users,o=cms,dc=eu-datagrid,dc=org .cms
group ldap://grid-vo.nikhef.nl/ou=tb1users,o=lhcb,dc=eu-datagrid,dc=org .lhcb
group ldap://grid-vo.nikhef.nl/ou=tb1users,o=biomedical,dc=eu-datagrid,dc=org .biome
group ldap://grid-vo.nikhef.nl/ou=tb1users,o=earthob,dc=eu-datagrid,dc=org .eo
group ldap://marianne.in2p3.fr/ou=ITeam,o=testbed,dc=eu-datagrid,dc=org .iteam
group ldap://marianne.in2p3.fr/ou=wp6,o=testbed,dc=eu-datagrid,dc=org .wpsix
Plateforme de Calcul pour les Sciences du Vivant
3211/04/23
Gridmap file
• cat /etc/grid-security/gridmap"/O=Grid/O=Globus/OU=cern.ch/CN=Geza Odor" .atlas
"/O=Grid/O=CERN/OU=cern.ch/CN=Pietro Paolo Martucci" .dteam
"/C=IT/O=INFN/L=Bologna/CN=Franco Semeria/[email protected]" .alice
"/C=IT/O=INFN/L=Bologna/CN=Marisa Luvisetto/[email protected]" .alice
"/O=Grid/O=CERN/OU=cern.ch/CN=Bob Jones" .dteam
"/O=Grid/O=CERN/OU=cern.ch/CN=Brian Tierney" .dteam
"/O=Grid/O=CERN/OU=cern.ch/CN=Tofigh Azemoon" .lhcb
"/C=FR/O=CNRS/OU=LPC/CN=Yannick Legre/[email protected]" .biome
Plateforme de Calcul pour les Sciences du Vivant
3311/04/23
Utilisation
CA
VO
user serviceDemande de cert.
Certificat (PKCS12)
usercert.pem (PEM)
userkey.pem
Conversion cert.
grid-proxy-init
Proxy cert.
Demande de cert.
Certificat (PEM)
Certificat CAs
CRL CAs
gridmap file
Authentification mutuelle + vérification des autorisations
Plateforme de Calcul pour les Sciences du Vivant
3411/04/23
VOMS
VOMS
ServiceService
Authentification mutuelle et autorisation
VOMS
VOMS
CA CA CA
MaJ CRL
occasionnellement
fréquemment
Cert. Serveur(1 an max)
voms-proxy-init
InterfaceUtilisateur
Cert. CA
enregistrement
Cert. Utilisateur(1 an max)
Délégation de cert.(24 h max)
enregistrement
Délégation de cert.(24 h max)
Autorisation = Cert.
Autorisation = Cert.
LCASLCMAPS
edg-java-security
Plateforme de Calcul pour les Sciences du Vivant
3511/04/23
Obtenir des autorisations
Query
Authentication
Request
AuthDB
C=FR/O=CNRS /L=LPC/CN=Matthieu Reichstdat/CN=proxy
VOMSpseudo
-cert
VOMSpseudo-cert
[reichma@clrlcgui01 repeat_install]$ voms-proxy-init --voms auvergrid:/Role=lcgadminYour identity: /O=GRID-FR/C=FR/O=CNRS/OU=LPC/CN=Matthieu ReichstadtEnter GRID pass phrase:Creating temporary proxy ....................................................................................... DoneContacting cclcgvomsli01.in2p3.fr:15002 [/O=GRID-FR/C=FR/O=CNRS/OU=CC-LYON/CN=cclcgvomsli01.in2p3.fr] "auvergrid" DoneCreating proxy ......................................................... DoneYour proxy is valid until Thu Oct 4 01:20:51 2007
[reichma@clrlcgui01 repeat_install]$ voms-proxy-info -allsubject : /O=GRID-FR/C=FR/O=CNRS/OU=LPC/CN=Matthieu Reichstadt/CN=proxyissuer : /O=GRID-FR/C=FR/O=CNRS/OU=LPC/CN=Matthieu Reichstadtidentity : /O=GRID-FR/C=FR/O=CNRS/OU=LPC/CN=Matthieu Reichstadttype : proxystrength : 512 bitspath : /tmp/x509up_u2718timeleft : 11:58:17VO : auvergridsubject : /O=GRID-FR/C=FR/O=CNRS/OU=LPC/CN=Matthieu Reichstadtissuer : /O=GRID-FR/C=FR/O=CNRS/OU=CC-LYON/CN=cclcgvomsli01.in2p3.frattribute : /auvergrid/Role=lcgadmin/Capability=NULLattribute : /auvergrid/Role=NULL/Capability=NULLtimeleft : 11:58:17
Notion de rôle
Plateforme de Calcul pour les Sciences du Vivant
3611/04/23
Rôles
• Les rôles sont les rôles spécifiques qu’un utilisateur peut avoir, ce qui le distingue des autres de son groupe:– Software manager
– VO-Administrator • Différence entre rôles et groups:
– Les rôles n’ont pas de structure hiérarchique – pas de sous-rôle
– Les rôles ne sont pas utilisés pour des ‘opérations normales’ Ils ne sont pas ajoutés par défaut lors d’un voms-proxy-init Mais ils peuvent l’être pour certaines action lors du voms-proxy-init
• Exemple: – L’utilisateur Reuillon a les informations suivantes
VO=auvergrid, Role=SoftwareManager
– Pour une opération normale, son rôle n’est pas pris en compte, càd Reuillon peut travailler comme un utilisateur normal
– Pour des actions particulières il peut obtenir le rôle “Software Manager”
Plateforme de Calcul pour les Sciences du Vivant
3711/04/23
Résumé
37
• Autorisation• L’utilisateur joint une Virtual
Organisation• VO négocie l’accès aux noeuds de
grille et aux ressources • L’Autorisation est testée par la
resource:
UI
CA
VO mgr
annuel
VO database
Mapping pour les droits d’accès
GSI
VO service
Mise à jour
• Authentification• L’utilisateur obtient un certificat par
une CA• Il se connecte à l’UI en ssh
(UI est l’interface utilisateur à la grille)
• Il uploade son certificat sur l’UI• Un seul logon – à l’UI - il crée son
proxy