EGEE is a project funded by the European Union under contract IST Sécurité sur le GRID Sophie Nicoud (CNRS/UREC) EGEE induction course, Clermont, th March
EGEE Sécurité – Clermont, 22 Mars Plan Un compte utilisateur Architecture Authentification Autorisation Proxy 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 Développements à venir VOMS
EGEE Sécurité – Clermont, 22 Mars Un compte utilisateur Un utilisateur pour utiliser le GRID doit posséder : Un certificat X509 personnel Une entrée dans une Organisation Virtuelle (VO) Un compte sur une Interface Utilisateur (UI)
EGEE Sécurité – Clermont, 22 Mars Authentification/Autorisation Authentification=> Certificat Qui est qui ? Autorisation=>VO Qui a le droit ? Accès au GRID=> UI Audit sécurité QUI fait QUOI QUAND ? Comptabilité COMBIEN de ressources consomme Mr X ou la VO Y ? Facturation possible :-(
EGEE Sécurité – Clermont, 22 Mars Architecture VO Service grid-mapfile Authentification mutuelle + vérification des autorisations Délégation de cert. (24 h max) VO CA MaJ CRL occasionnellement fréquemment Cert. Serveur (1 an max) grid-proxy-init Interface Utilisateur Cert. CA enregistrement Cert. Utilisateur (1 an max)
EGEE Sécurité – Clermont, 22 Mars Authentification Qu’est qu’un certificat X509 ? Un couple de clés indissociables Les clés son générées ensembles Le certificat est accrédité par un tiers de confiance (CA) Le certificat a une période de validité Repose sur l’utilisation des algorithmes asymétriques Impossibilité de retrouver une clé par rapport à l’autre Une clé est dite publique Elle est publiée sur le réseau Cette clé est signée par l’Autorité de Certification émettrice Dans le langage courant, elle est appelée certificat L’autre est dite privée Elle est conservée sur le poste de l’utilisateur Protégée par un mot de passe
EGEE Sécurité – Clermont, 22 Mars Un certificat Informations importantes Le sujet ou DN du certificat Le numéro de série du certificat La période de validité du certificat L’Autorité de Certification émettrice La Liste des Certificats Révoqués (CRL) émise par la CA Certificate: Data: Version: 3 (0x2) Serial Number: 639 (0x27f) Signature Algorithm: md5WithRSAEncryption Issuer: C=FR, O=CNRS, CN=Datagrid-fr Validity Not Before: Mar 1 08:52: GMT Not After : Mar 1 08:52: GMT Subject: C=FR, O=CNRS, OU=UREC, CN=Sophie Nicoud, Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:e6:a2:8b:5c:a3:ed:fe:d5:03:55:b6:7c:cb:44:.... Netscape Comment: Certificat Datagrid-fr. Pour toute information se reporter à X509v3 CRL Distribution Points: URI: Signature Algorithm: md5WithRSAEncryption 9d:d8:19:32:3e:39:f1:55:58:d6:dd:21:7a:40:31:36:f6:07: 96:91:cf:2c
EGEE Sécurité – Clermont, 22 Mars 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 nationales Création d’un groupe des CAs EDG : CACG Projets de GRID en Europe (EGEE, LCG, DEISA, SEE-GRID, … ): EUGridPMA
EGEE Sécurité – Clermont, 22 Mars EUGridPMA Domaine de confiance commun en Europe : EUGridPMA Même règles et pratiques de certification Certificats valident 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) Votre certificat est valable sur l’ensemble des projets de GRID au travers de l’Europe
EGEE Sécurité – Clermont, 22 Mars Autorisation Organisations Virtuelles (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.
EGEE Sécurité – Clermont, 22 Mars VO Organisations Virtuelles 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 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
EGEE Sécurité – Clermont, 22 Mars Globus Grid Security Infrastructure (GSI) de facto un standard pour les softs de Grid Basé sur les certificats X509 et les PKI Implémente : Single sign-on: pas la peine de donner son mot de passe chaque fois Délégation: un service peut-être utilisé au nom d’une autre personne Authentification mutuelle: le destinataire et l’émetteur s’authentifient Introduction des certificats proxy Certificat à durée de vie courte, contenant la clé privée, signé avec le certificat de l’utilisateur
EGEE Sécurité – Clermont, 22 Mars Certificat proxy et délégation Délégation Autorise une autre entité à utiliser mon authentification et mes autorisations Un Proxy peut se déplacer sur le réseau Le sujet du proxy identifie l’utilisateur User subject: /C=FR/O=CNRS/OU=UREC/CN=Paul Dupont Proxy subject: /C=FR/O=CNRS/OU=UREC/CN=Paul Dupont/CN=proxy
EGEE Sécurité – Clermont, 22 Mars GSI variables d’environnement Certificat utilisateur: Certificat:X509_USER_CERT (default: $HOME/.globus/usercert.pem ) Clé privée:X509_USER_KEY (default: $HOME/.globus/userkey.pem ) Proxy:X509_USER_PROXY (default: /tmp/x509up_u ) Certificat machine: Certificat:X509_USER_CERT (default: /etc/grid- security/hostcert.pem ) Clé privée:X509_USER_KEY (default: /etc/grid- security/hostkey.pem ) Autorités de Certification reconnues: X509_CERT_DIR(default: /etc/grid- security/certificates ) Emplacement du grid-mapfile: GRIDMAP(default: /etc/grid-security/grid- mapfile )
EGEE Sécurité – Clermont, 22 Mars Utilisation des commandes de gestion des certificats et des proxy s Obtenir des informations sur le certificat utilisateur grid-cert-info[-help] [-file certfile] [OPTION]... -all tout le certificat -subject | -s sujet -issuer | -I émetteur -startdate | -sd début de validité -enddate | -ed fin de validité Créé un certificat proxy grid-proxy-init Détruire un certificat proxy grid-proxy-destroy Obtenir des informations sur un certificat proxy grid-proxy-info
EGEE Sécurité – Clermont, 22 Mars Proxy “longue vie” Un proxy a une vie limitée (défaut à 12 h) C’est une mauvaise idée de prolonger la vie d’un proxy Cependant, un job peu avoir beson d’une proxy avec une vie plus longue Jobs des applications HEP. Data Challenges sur LCG : jqà 2 jours myproxy serveur: Permet de créer et conserver un proxy à “longue vie”: myproxy-init -s -s spécifie le nom du serveur myproxy myproxy-info Obtenir des informations à propos des proxys “longue vie” myproxy-get-delegation Obtenir un nouveau proxy de la part du serveur MyProxy myproxy-destroy Un service peut renouveller automatiquement un proxy afin de l’utiliser sur le Grid
EGEE Sécurité – Clermont, 22 Mars Mode d’emploi 1. Obtenir un certificat personnel 2. S’enregistrer auprès d’un VO et 2. Accepter les règles d’utilisation du GRID 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 GRID proxy 5. Le GRID est à vous…
EGEE Sécurité – Clermont, 22 Mars Demande de Certificate CA VO user service Demande de cert. Une fois par an
EGEE Sécurité – Clermont, 22 Mars Certificat signé CA VO user service Demande de cert. Certificat (PKCS12)
EGEE Sécurité – Clermont, 22 Mars Enregistrement, règles d’utilisation Une fois (Seulement le DN du cert. est utilisé) CA VO user service Demande de cert. Certificat (PKCS12) enregistrement
EGEE Sécurité – Clermont, 22 Mars Démarrer une session CA VO user service Demande de cert. Certificat (PKCS12) usercert.pem (PEM) userkey.pem Conversion cert. grid-proxy-init Toutes les 12/24 heures Proxy cert.
EGEE Sécurité – Clermont, 22 Mars Demande de certificat serveur CA VO user service Demande de cert. Certificat (PKCS12) usercert.pem (PEM) userkey.pem Conversion cert. grid-proxy-init Proxy cert. Demande de cert. Une fois par an
EGEE Sécurité – Clermont, 22 Mars Certificat serveur signé CA VO user service Demande de cert. Certificat (PKCS12) usercert.pem (PEM) userkey.pem Conversion cert. grid-proxy-init Proxy cert. Demande de cert. Certificat (PEM)
EGEE Sécurité – Clermont, 22 Mars Configuration du serveur CA VO user service Demande de cert. Certificat (PKCS12) usercert.pem (PEM) userkey.pem Conversion cert. grid-proxy-init Proxy cert. Demande de cert. Certificat (PEM) Certificat CA CRL CA Mise à jour automatique toutes les 24h
EGEE Sécurité – Clermont, 22 Mars 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 Installer le script de mise à jour automatique des CRLs Fournit avec les softs LCG et EGEE
EGEE Sécurité – Clermont, 22 Mars Serveur: Certificats ls /etc/grid-security/certificates cf4ba8c8.0 34a509c3.0 6b4ddd18.0 cf4ba8c8.crl_url 34a509c3.crl_url 6b4ddd18.crl_url cf4ba8c8.r0 34a509c3.r0 6b4ddd18.r0 cf4ba8c8.signing_policy 34a509c3.signing_policy 6b4ddd18.signing_policy 12a1d8c2.0 dd4b34ea.0 df312a4e.0 12a1d8c2.crl_url dd4b34ea.crl_url df312a4e.crl_url 12a1d8c2.r0 dd4b34ea.r0 df312a4e.r0 12a1d8c2.signing_policy dd4b34ea.signing_policy df312a4e.signing_policy cat 12a1d8c2.crl_url
EGEE Sécurité – Clermont, 22 Mars Serveur: Certificats cat 12a1d8c2.signing_policy # EACL French CA, CNRS GRID-FR level: GRID-FR access_id_CA X509 '/C=FR/O=CNRS/CN=GRID-FR' pos_rights globus CA:sign cond_subjects globus '"/O=GRID-FR/*"' openssl x509 -in 12a1d8c2.0 –text -noout Issuer: C=FR, O=CNRS, CN=CNRS-Projets[...]Emetteur du certificat Subject: C=FR, O=CNRS, CN=GRID-FR [...] Certificat auto-signé X509v3 extensions: X509v3 Basic Constraints: critical CA:TRUE [...] Ce certificat peut être utilisé pour en signer d’autres X509v3 Key Usage: critical Certificate Sign, CRL SignC’est un certificat de CA
EGEE Sécurité – Clermont, 22 Mars Serveur: CRL openssl crl -in 12a1d8c2.r0 –text -noout Certificate Revocation List (CRL): Version 1 (0x0) Signature Algorithm: sha1WithRSAEncryption Issuer: /C=FR/O=CNRS/CN=GRID-FREmetteur est la CA elle-même Last Update: Mar 20 23:15: GMT Next Update: Apr 19 23:15: GMTProchaine mise à jour Revoked Certificates: Serial Number: 06Numéros de série des certificats révoqués Revocation Date: Mar 10 10:29: GMT Signature Algorithm: sha1WithRSAEncryptionSignature
EGEE Sécurité – Clermont, 22 Mars Autorisation CA VO user service Demande de cert. Certificat (PKCS12) usercert.pem (PEM) userkey.pem Conversion cert. grid-proxy-init Proxy cert. Demande de cert. Certificat (PEM) Certificat CA CRL CA gridmap file Mise à jour automatique toutes les 24h
EGEE Sécurité – Clermont, 22 Mars Utilisation CA VO user service Demande de cert. Certificat (PKCS12) usercert.pem (PEM) userkey.pem Conversion cert. grid-proxy-init Proxy cert. Demande de cert. Certificat (PEM) Certificat CA CRL CA gridmap file Authentification mutuelle + vérification des autorisations
EGEE Sécurité – Clermont, 22 Mars Gridmapfile: configuration Installer et configurer le script de mise à jour automatique du gridmapfile cat /opt/edg/etc/edg-mkgridmap.conf auth ldap://lcg-registrar.cern.ch/ou=users,o=registrar,dc=lcg,dc=org # EDG Standard Virtual Organizations # atlas group ldap://grid-vo.nikhef.nl/ou=lcgadmin,o=atlas,dc=eu-datagrid,dc=org atlassgm group ldap://grid-vo.nikhef.nl/ou=lcg1,o=atlas,dc=eu-datagrid,dc=org.atlas # biomed group ldap://vo-biome.in2p3.fr/ou=lcg1,o=biomedical,dc=lcg,dc=org.biomed # dteam group ldap://lcg-vo.cern.ch/ou=lcgadmin,o=dteam,dc=lcg,dc=org dteamsgm group ldap://lcg-vo.cern.ch/ou=lcg1,o=dteam,dc=lcg,dc=org.dteam # egeode group ldap://vo-egeode.in2p3.fr/ou=lcgadmin,o=egeode,dc=lcg,dc=org egeodesgm group ldap://vo-egeode.in2p3.fr/ou=lcg1,o=egeode,dc=lcg,dc=org.egeode # esr group ldap://grid-vo.sara.nl/ou=lcgadmin,o=esr,dc=eu-egee,dc=org esrsgm group ldap://grid-vo.sara.nl/ou=eobs,o=esr,dc=eu-egee,dc=org.esr
EGEE Sécurité – Clermont, 22 Mars Gridmap file cat /etc/grid-security/gridmap "/C=FR/O=CGG/OU=RDI/CN=Gerald "/C=FR/O=CGG/OU=RDI/CN=Gerard "/C=FR/O=CGG/OU=RDI/CN=Stephane "/C=FR/O=CINES/OU=CS/CN=Nicole "/C=FR/O=CNRS/OU=CC-LYON/CN=David "/C=FR/O=CNRS/OU=CC-LYON/CN=Fabien "/C=FR/O=CNRS/OU=CC-LYON/CN=Fabio "/C=FR/O=CNRS/OU=CC-LYON/CN=Frederic …..
EGEE Sécurité – Clermont, 22 Mars VOMS Service Authentification mutuelle et autorisation VOMS CA MaJ CRL occasionnellement fréquemment Cert. Serveur (1 an max) voms-proxy-init Interface Utilisateur 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. LCAS LCMAPS edg-java-security
EGEE Sécurité – Clermont, 22 Mars Obtenir des autorisations Query Authentication Request Auth DB C=IT/O=INFN /L=CNAF /CN=Pinco Palla /CN=proxy VOMS pseudo- cert davidg]$ edg-voms-proxy-init -voms=wpsix Your identity: /O=dutchgrid/O=users/O=nikhef/CN=David Groep Enter GRID pass phrase for this identity: Creating temporary proxy Done /C=FR/O=CNRS/OU=UREC/CN=vo-iteam.datagrid.cnrs.fr/ =edg- /C=FR/O=CNRS/CN=Datagrid-fr Creating proxy Done davidg]$ edg-voms-proxy-info -all … Type : proxy Bits : 512 Valid From : Jun 2 06:22: GMT Validity left : Jun 2 18:27: GMT VO : wpsix Holder Subject: /O=dutchgrid…/O=nikhef/CN=David Groep … Issuer Subject:/C=FR/O=CNRS/OU=UREC/ CN=vo-iteam.datagrid.cnrs.fr … Valid from : Jun 2 06:26: GMT Valid to : Jun 2 18:26: GMT Attribute : /wpsix/Role=NULL/Capability=NULL Notion de rôle
EGEE Sécurité – Clermont, 22 Mars Interprétation des droits par le serveur … "/O=dutchgrid/O=users/O=sara/CN=Walter de Jong".wpsix "/O=dutchgrid/O=users/O=uva/OU=wins/CN=Robert Belleman".pvier "/VO=iteam/GROUP=/iteam".iteam "/VO=wpsix/GROUP=/wpsix".wpsix Local Centre Authorization Service (LCAS) Prend en charge les demandes d’autorisation Autorisations basées sur les proxys des utilisateurs et la spécification de leurs jobs Supporte le grid-mapfile Local Credential Mapping Service (LCMAPS) Langage simple de configuration des règles Basé sur l’identité de l’utilisateur, sa VOMS et la politique de sécurité du site