13.05.2014 Views

these doctorat une architecture de securité

these doctorat une architecture de securité

these doctorat une architecture de securité

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapitre 6. Implantation dans ProActive : <strong>une</strong> approche transparente<br />

Le composant parallèle (schéma (c) figure 6.13) est construit au-<strong>de</strong>ssus du mécanisme <strong>de</strong><br />

communication <strong>de</strong> groupe. Les composants du composant parallèle sont regroupés au sein d’un<br />

groupe. La communication sécurisée au sein d’un composant parallèle se comporte <strong>de</strong> manière<br />

i<strong>de</strong>ntique à celle d’<strong>une</strong> communication <strong>de</strong> groupe. Selon le fait que le groupe est un groupe simple,<br />

hiérarchique ou actif, le gestionnaire <strong>de</strong> sécurité s’adaptera aux propriétés <strong>de</strong>s communications<br />

sécurisées au sein d’un groupe d’objets actifs telles que présentées dans la section 6.4.<br />

6.8 Sémantique <strong>de</strong>s communications sécurisées<br />

tel-00239252, version 1 - 5 Feb 2008<br />

6.8.1 Communications locales et distantes<br />

Dans la partie 4.3, nous avons présenté la sémantique <strong>de</strong>s communications telle qu’elle existe<br />

au sein <strong>de</strong> la bibliothèque. Nous allons reprendre les points et montrer comment l’introduction<br />

<strong>de</strong> la sécurité s’intègre avec le modèle existant.<br />

Lorsque <strong>de</strong>ux objets actifs se trouvent dans le même espace d’adressage (i.e. dans la même<br />

machine virtuelle), ils doivent pouvoir communiquer directement sans passer par la pile <strong>de</strong>s<br />

protocoles réseaux, tout en conservant <strong>une</strong> sémantique i<strong>de</strong>ntique. Cette optimisation existe dans<br />

ProActive cependant elle maintient la sémantique <strong>de</strong> passage <strong>de</strong> paramètres par copie profon<strong>de</strong>,<br />

garantissant ainsi l’absence d’objets passifs partagés.<br />

Au niveau du protocole <strong>de</strong> sécurité, on peut se <strong>de</strong>man<strong>de</strong>r si, lors d’un appel <strong>de</strong> métho<strong>de</strong> local,<br />

le chiffrement <strong>de</strong> la communication n’est pas superflu vu l’inexistence du risque d’interception <strong>de</strong><br />

la communication par <strong>une</strong> tierce partie. Cependant, nous avons fait le choix <strong>de</strong> chiffrer les communications<br />

même à l’intérieur du même espace adressage. Si, du point <strong>de</strong> vue <strong>de</strong>s performances,<br />

cette solution n’est pas optimale, elle a l’avantage <strong>de</strong> garantir la sémantique du mécanisme <strong>de</strong> sécurité<br />

: toute communication qu’elle soit locale ou distante sera chiffrée si la politique <strong>de</strong> sécurité<br />

l’impose.<br />

6.8.2 Sécurisation <strong>de</strong>s messages<br />

Nous allons présenter ici les techniques mises en œuvre pour appliquer le principe <strong>de</strong> transparence<br />

<strong>de</strong> la sécurité par rapport au co<strong>de</strong> application. Un <strong>de</strong>s effets <strong>de</strong> bord positifs <strong>de</strong> cette<br />

approche est d’étendre la transparence <strong>de</strong> la sécurité bien au <strong>de</strong>là du co<strong>de</strong> applicatif et <strong>de</strong> d’implanter<br />

la transparence dans les méta-objets eux-mêmes.<br />

Pour cela, nous avons étendu l’interface Message qui est l’interface mère <strong>de</strong> tous les messages<br />

échangés entre les diverses entités composant <strong>une</strong> application. La principale modification a fait<br />

en sorte que le message puisse gérer lui-même sa sécurité. En effet, lorsqu’un message va être<br />

envoyé sur le réseau, il doit être sérialisé. Un objet sérialisable est capable <strong>de</strong> gérer lui-même<br />

sa propre sérialisation. À partir <strong>de</strong> ce moment, le message est capable <strong>de</strong> détecter qu’il va être<br />

envoyé sur le réseau. Il va ainsi pouvoir sécuriser les diverses données sensibles qu’il contient en<br />

fonction <strong>de</strong> la politique <strong>de</strong> sécurité qui aura été négociée par le gestionnaire <strong>de</strong> sécurité.<br />

Pour chaque classe implantant l’interface Message, il est nécessaire <strong>de</strong> spécialiser les métho<strong>de</strong>s<br />

gérant la sécurisation du message. Effectivement, selon le type <strong>de</strong> la classe, les données<br />

sensibles ne seront pas les mêmes. Par exemple, la classe RequestImpl contient <strong>une</strong> variable<br />

d’instance correspondant à l’appel <strong>de</strong> métho<strong>de</strong> et à ses paramètres. Cette variable n’existe bien<br />

évi<strong>de</strong>mment pas dans la classe ReplyImpl qui contient <strong>une</strong> autre variable représentant le résultat<br />

d’un précé<strong>de</strong>nt appel <strong>de</strong> métho<strong>de</strong>.<br />

6.8.3 Appel <strong>de</strong> métho<strong>de</strong> sécurisé<br />

La figure 6.14 présente les divers objets et méta-objets traversés lors d’un appel <strong>de</strong> métho<strong>de</strong><br />

sécurisé d’un objet actif sur un autre.<br />

On s’aperçoit en premier lieu que le chemin suivi par l’appel <strong>de</strong> métho<strong>de</strong> sécurisé est ressemble<br />

fortement à celui d’un appel <strong>de</strong> métho<strong>de</strong> non sécurisé. On a rajouté en fait <strong>de</strong>ux indirections<br />

supplémentaires. La première se situe au moment <strong>de</strong> l’envoi du message vers le body<br />

120

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!