Plateforme de Calcul pour les Sciences du Vivant Notions de sécurité sur la grille.

37
Plateforme de Calcul pour les Sciences du Vivant tp://clrpcsv.in2p3.fr Notions de sécurité sur la grille

Transcript of Plateforme de Calcul pour les Sciences du Vivant Notions de sécurité sur la grille.

Page 1: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

Plateforme de Calcul pour les Sciences du Vivant

http://clrpcsv.in2p3.fr

Notions de sécurité sur la grille

Page 2: Plateforme de Calcul pour les Sciences du Vivant  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

Page 3: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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)

Page 4: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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:’-(

Page 5: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 6: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 7: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 8: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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”.

Page 9: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 10: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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é

Page 11: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 12: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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)

.......

Page 13: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

Plateforme de Calcul pour les Sciences du Vivant

1311/04/23

Comment obtenir un certificat

Page 14: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 15: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 16: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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.

Page 17: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 18: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

Plateforme de Calcul pour les Sciences du Vivant

1811/04/23

Organisations Virtuelles (2/3)

Administrateur

Anonyme

Page 19: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 20: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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…

Page 21: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 22: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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)

Page 23: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 24: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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.

Page 25: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 26: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 27: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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)

Page 28: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 29: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 30: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 31: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 32: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 33: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 34: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 35: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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

Page 36: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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”

Page 37: Plateforme de Calcul pour les Sciences du Vivant  Notions de sécurité sur la grille.

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