Title: Une architecture de scurit hirarchique, adaptable et dynamique pour la grille
1Une architecture de sécurité hiérarchique,
adaptable et dynamique pour la grille
2Sommaire
- Contexte et objectifs
- Modèle de sécurité
- Intégration avec ProActive
- Conclusions et perspectives
- Contexte et objectifs
- Modèle de sécurité
- Intégration avec ProActive
- Conclusions et perspectives
3Architecture dune application
Runtime Service offert par un fournisseur Nud
Espace dexécution propre à une application
4Déploiement sur grille de calcul
5Analyse de solutions de sécurité
6Objectifs
- Faciliter lutilisation des mécanismes de
sécurité par une intégration implicite au code
métier de lapplication - Modèle de sécurité
- Fonctionnalités de sécurité de base
(Authentification, Intégrité, Confidentialité) - Prise en compte des politiques de tous les
acteurs, notions de hiérarchie machines,
administration (virtuelle) - Configurable par lutilisateur
- Adaptable en fonction du déploiement
7Sommaire
- Contexte et objectifs
- Modèle de sécurité
- Intégration avec ProActive
- Conclusions et perspectives
8Problème initial
- Contrôle daccès
- Diverses entités à sécuriser
- Entités appartenant à divers acteurs
- Nécessité didentifier ces entités
- Exprimer des politiques de sécurité
9Entités sécurisées
- Définition générique
- Objet protégé gestionnaire de sécurité
- Pas de supposition faite sur lobjet protégé
- Architecture hiérarchique
- Sécurité non intrusive
- Pas de modification de lobjet protégé
- Interception des communications par objet
dinterposition
10Entité sécurisée
Objet protégé
- Sessions (connexions aux autres entités)
Communications en clair
11Authentification
- Architecture à clé publique de type SPKI
- Une entité sécurisée un certificat SPKI
- Clé publique/privée identifiant
- Certificats égaux, peuvent générer des
certificats - Création de chaînes de certificats
12Certificat dapplication
Identifier les objets appartenant à la même
application
Approche simple
Approche avec certificat dapplication
- Création dun contexte de sécurité par
application - Espace de nommage local à lapplication
13Domaines de sécurité
- Imposer une même politique de sécurité à un
- ensemble de runtimes
- Exemple regrouper tous les ordinateurs dune
même grappe de calcul sous une même politique - Un domaine est une entité sécurisée
- Organisation hiérarchique des domaines
14Taxonomie des politiques
Dn
Politique des domaines
D0
Politique de lapplication
Runtime
Noeud
Politiquede sécurité
Objet
Politique du fournisseur de ressources
15Langage déclaratif 1/2
Entités sources
Entités cibles
-gt Interactions Attributs
- Attributs
- Authentification A
- Integrité I
- Confidentialité C
- Chaque attribut
- Requis
- Optionel ?
- Refusé -
- Interactions
- Requête
- Réponse
- Création Runtime
- Création Noeud
- Création dobjet
- Entité
- Domaine
- Runtime
- Certificat dapplication
- Noeud
- Objet
- Certificat
16Langage déclaratif 2/2
- Pour les interactions intra-domaine A, pas besoin
de sécurité - DomaineA-gtDomaineArequête, réponse,
migration, création noeud, création objet
?A,?I,?C - Authentification requise des appels de méthodes
pour les objets se trouvant dans le domaine A
vers le domaine B - DomaineA-gtDomaineBrequête,
réponseA,?I,?C - Localisation précise
- NoeudN1 -gt DomaineArequête,
réponseA,I,C - RuntimeR1,NoeudN1 -gt DomaineA
- requête,
réponseA,?I,?C
17Politiques de sécurité
- Plusieurs niveaux de politiques
- Plusieurs politiques pour une situation donnée
- Calcul dune politique résultante
- Sélection des politiques adéquates
- Composition de ces politiques
18Composition de politiques
- Support de linteropération
- La politique résultante préserve les attributs de
chaque politique - Si incompatibilité, interdiction de linteraction
Appelé
Requis ()
Optionnel (?)
Refusé (-)
Appelant
Requis ()
invalide
Optionnel (?)
?
-
Refusé (-)
invalide
-
-
19Négociation dynamique
Sécurisation transparente des interactions entre
les entités
Domaine Inria
ltPsessiongt
Id objet A
Id objet B
1. Récupérer la localisation des entités source
(A) et cible (B)
2. Calcul de la politique en fonction des entités
en présence
3. Validation par lappelé de la politique
ltPsessiongt proposée par lappelant
4. Création de lobjet session contenant la
politique entre A et B
20Propagation dynamique du contexte de sécurité
- Support de la dynamicité des applications
- Automatiser la création des entités sécurisées
- Conserver le contexte de sécurité de
lapplication - Nouvelle entité sécurisée
- Utilisation du certificat dapplication pour
créer le certificat de lentité - Copie de la politique de sécurité de lapplication
21Sécurité induite par le déploiement
Communication normale
Communication sécurisée
22Sommaire
- Contexte et objectifs
- Modèle de sécurité
- Intégration avec ProActive
- Conclusions et perspectives
23ProActive
- Bibliothèque Java pour le calcul distribué
- Modèle à objet actifs
- Objet racine (activité) graphe dobjets passifs
- Pas de partage dobjets passifs
- Communication
- Invocation de méthode à distance
- Asynchrone avec rendez-vous
- Protocole à méta objets
- Interception transparente des communications
- Sémantique insensible au déploiement
- Modèle de déploiement abstrait
24Modèle de déploiement abstrait
- Repose sur la notion de nuds virtuels (VN)
- Nud projection dun VN sur un runtime
Déploiement Descripteur XML
Développement Code source
Objets ? VN VN ? Runtimes ? Hosts
25Entités sécurisées et interactions
- Entités sécurisées
- Objet actif,
- Nud (nud virtuel),
- Runtime
- Interactions
- Requêtes / réponses
- Migration
- Création dobjet actif
- Création de nuds
26Communications sécurisées
- Pendant la phase de rendez-vous
- Initialisation de la session (si nécessaire)
- Transmission du message sécurisé
- Si autorisée, conserve la garantie de la
délivrance du message - Expéditeur peut être informé de léchec de la
communication et agir en conséquence
27Exemple
- Une grille composée de deux grappes
- Domaine GrappeA -gt Domaine GrappeA Q,P,M
?A,?I,?C - Domaine GrappeB -gt Domaine GrappeB Q,P,M
?A,?I,?C - Domaine GrappeA -gt Domaine GrappeB Q,P,M
A,I,C - Domaine GrappeB -gt Domaine GrappeA Q,P,M
A,I,C - Application
- 2 nuds virtuels (vn1,vn2)
- 2 objects actifs
28 Descripteurs déploiement et sécurité
- Nuds virtuels vn1, vn2
- Projections
- vn1 --gt OrdinateursGrappeA, OrdinateursGrappeB
- vn2 --gt OrdinateursGrappeA
-
- Sécurité
- VN vn1 -gt VN vn2 Q,P A,?I,?C
- VN vn1 -gt VN vn1 M A,?I,?C
29Code standard, pas de sécurité
proActiveDescriptor.activateMappings() vn1
proActiveDescriptor.getVirtualNode("vm1") vn2
proActiveDescriptor.getVirtualNode("vm2") Flowe
r rose (Flower) ProActive.newActive(Flower.class
,new Object Rose ,
vn1.getNode() Flower daliah (Flower)
ProActive.newActive(Flower.class,new
Object Daliah ,
vn2.getNode() / migration vers le même
nud virtuel, même domaine / rose.migrateTo(vn1)
/ communication dans le même domaine
/ rose.sayHelloTo(daliah) / migration
vers le même nud virtuel, autre domaine
/ rose.migrateTo(vn1) / communication
entre les deux domaines / rose.sayHelloTo(daliah)
30Exemple
Domaine GrappeA
Domaine GrappeB
VN1
Politiques de sécurité
Runtime
VN2
31Exemple
Domaine GrappeA
Domaine GrappeB
Politiques de sécurité
VN1
Runtime
VN2
32Exemple
Domaine GrappeA
Domaine GrappeB
Politiques de sécurité
VN1
Runtime
VN2
33Exemple
Domaine GrappeA
Domaine GrappeB
Migration - même VN - même domaine
Politique de lapplication VN1 -gt VN1
migration A,?I,?C Politique du domaine
GrappeA -gt GrappeA ?A,?I,?C Politique
résultante Migration A,?I,?C
Politiques de sécurité
VN1
Runtime
VN2
34Exemple
Domaine GrappeA
Domaine GrappeB
Appel de meth. - même domaine
Politique de lapplication VN1 -gt VN2 requête
A,?I,?C Politique du domaine GrappeA -gt
GrappeA ?A,?I,?C Politique résultante
communication sécurisée A,?I,?C
Politiques de sécurité
VN1
Runtime
VN2
35Exemple
Domaine GrappeA
Domaine GrappeB
Migration - même VN - autre domaine
Politique de lapplication VN1 -gt VN1
migration A,?I,?C Politique du domaine
GrappeA -gt GrappeB A,I,C Politique
résultante migration sécurisée A,I,C
Politiques de sécurité
VN1
Runtime
VN2
36Exemple
Domaine GrappeA
Domaine GrappeB
Appel de meth. - même VN - autre domaine
Politique de lapplication VN1 -gt VN2 requête
A,?I,?C Politique du domaine GrappeB -gt
GrappeA A,I,C Politique résultante
communication sécurisée A,I,C
Politiques de sécurité
VN1
Runtime
VN2
37Performances
- Création objet actif
- Sans sécurité 80 ms
- Avec sécurité (clé RSA 1024bits) 540 ms
- Dont temps de génération de clé 460 ms
- Génération dune clé de session AES
- 192 bits 0.8 ms
Test réalisés sur des pentium IV_at_3GHz, 1Go RAM,
linux kernel 2.4.22, JVM Sun 1.5.0, bibliothèque
bouncycastle 1.20
38Performances (A,I,C)
Pire cas possible, pas de calcul, pas de
recouvrement
Test réalisés sur des pentium IV_at_3GHz, 1Go RAM,
linux kernel 2.4.22, JVM Sun 1.5.0, bibliothèque
bouncycastle 1.20
39Les iterations de Jacobi
- Diagonalisation de matrice
40Durée dune itération
- 8 ordinateurs (PIV_at_3.2GHz, 1Go ram, Ethernet
1Gb/s) / 16 objets actifs - Coût de la sécurité de 120 à 18
- Version distribuée plus rapide que séquentiel
pour matrice gt 8 M doubles - Distribuée et sécurisée rapide gt 22M doubles
41Sommaire
- Contexte et objectifs
- Modèle de sécurité
- Intégration avec ProActive
- Conclusions et perspectives
42Conclusions
- Modèle de sécurité
- Concept générique entités sécurisées
- Sécurité
- Transparente au code métier des applications
(développeurs) - Configurable selon le déploiement (utilisateurs)
- Gestion de plusieurs niveaux de politiques de
sécurité - Calcul dynamique de la politique
- Propagation dynamique du contexte de sécurité
- Langage de sécurité déclaratif
- Politiques composables supportant linteropération
43Perspectives
- Support du contrôle de flux
- Reconfiguration dynamique des entités sécurisées
- Mise à jour de la politique de sécurité
- Changement didentité
- Preuve formelle du modèle
- Utilisation pratique projet Européen Provenance
44Questions ?
Merci de votre attention