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 5. Une <strong>architecture</strong> <strong>de</strong> sécurité <strong>de</strong> haut niveau<br />

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

et regroupe toutes les fonctions <strong>de</strong> sécurité nécessaires au bon fonctionnement du mécanisme <strong>de</strong><br />

sécurité.<br />

Il contient plusieurs objets aux fonctions bien distinctes comme :<br />

– le gestionnaire <strong>de</strong>s sessions qui contient les diverses sessions établies avec les autres entités.<br />

Ces sessions contiennent les différents paramètres <strong>de</strong> sécurité nécessaires à la communication<br />

avec <strong>une</strong> entité distante ;<br />

– le serveur <strong>de</strong> politique <strong>de</strong> sécurité sert <strong>de</strong> base <strong>de</strong> donnée contenant les politiques <strong>de</strong> sécurité<br />

<strong>de</strong> l’entité. Ce sont ces politiques qui gouvernent l’établissement <strong>de</strong> sessions vers les autres<br />

entités ;<br />

– le serveur d’i<strong>de</strong>ntité contient les divers éléments permettant d’établir l’i<strong>de</strong>ntité <strong>de</strong> l’entité,<br />

notamment son certificat publique, sa clé privée.<br />

Une session représente <strong>une</strong> connexion établie ou en cours d’établissement entre <strong>de</strong>ux entités.<br />

Une session contient :<br />

– un i<strong>de</strong>ntifiant : un numéro <strong>de</strong> session. Ce numéro sert à i<strong>de</strong>ntifier <strong>une</strong> session existant entre<br />

<strong>de</strong>ux entités ;<br />

– un objet contenant la clé <strong>de</strong> session et ses paramètres d’initialisation ;<br />

– <strong>une</strong> date d’expiration <strong>de</strong> la session ;<br />

– l’i<strong>de</strong>ntité <strong>de</strong> l’entité distante ;<br />

– la politique <strong>de</strong> sécurité négociée entre les <strong>de</strong>ux entités.<br />

Pour <strong>une</strong> communication donnée entre <strong>de</strong>ux entités, l’objet Session existe à la fois chez l’entité<br />

client mais aussi chez l’entité serveur, ces <strong>de</strong>ux sessions comportent le même i<strong>de</strong>ntifiant. Il est<br />

utilisé lors du transfert <strong>de</strong> messages chiffrés afin <strong>de</strong> retrouver la session et donc la clé permettant<br />

le déchiffrement du message.<br />

5.2.3 Les entités sécurisées dans ProActive<br />

L’entité sécurisée est notre élément <strong>de</strong> base sur lequel nous pouvons exprimer <strong>de</strong>s politiques<br />

<strong>de</strong> sécurité. Cependant, la définition d’<strong>une</strong> entité sécurisée est <strong>une</strong> définition générique et il faut<br />

maintenant pouvoir tenir compte <strong>de</strong> la spécificité propre à chaque objet qui va être sécurisé. En<br />

effet, d’un point <strong>de</strong> vue technique, tous les objets partagent au minimum la possibilité <strong>de</strong> recevoir<br />

et d’émettre <strong>de</strong>s appels <strong>de</strong> métho<strong>de</strong>s. Nous allons présenter les divers types d’entités sécurisées<br />

qu’il est possible <strong>de</strong> trouver au sein <strong>de</strong> la bibliothèque et leurs caractéristiques propres.<br />

Les objets actifs sécurisés<br />

Les premiers objets auxquels nous pensons lors <strong>de</strong> la sécurisation d’<strong>une</strong> application sont les<br />

composants <strong>de</strong> cette application : les objets actifs. Un objet actif peut effectuer <strong>de</strong>s appels <strong>de</strong><br />

métho<strong>de</strong> sur d’autres objets actifs ou sur <strong>de</strong>s runtimes ou en recevoir comme tout objet Java normal.<br />

Cependant il possè<strong>de</strong> aussi <strong>de</strong>s comportements propres comme, par exemple, la possibilité<br />

<strong>de</strong> migrer d’un nœud vers un autre. L’entité sécurisée dans son comportement initial n’est plus<br />

suffisante. A la simple interception <strong>de</strong>s requêtes et <strong>de</strong>s réponses, il faut maintenant ajouter la<br />

gestion <strong>de</strong> la mobilité d’un objet actif. Il faut non seulement pouvoir spécifier <strong>de</strong>s règles <strong>de</strong> sécurité<br />

concernant la migration mais aussi introduire un algorithme permettant <strong>de</strong> gérer à la fois la<br />

migration et la sécurisation d’un objet actif. Nous présentons et discutons le modèle retenu dans<br />

la partie 6.3 <strong>de</strong> ce manuscrit.<br />

Les nœuds sécurisés<br />

Initialement les nœuds servent à nommer les divers lieux d’exécution disponibles qu’ils soient<br />

locaux ou distants et à accueillir les objets actifs. Notre approche étend cette fonctionnalité initiale<br />

en lui ajoutant les notions <strong>de</strong> sécurité nécessaires. Ainsi d’un simple conteneur passif d’objets<br />

actifs, le nœud <strong>de</strong>vient un acteur du mécanisme <strong>de</strong> sécurité <strong>de</strong> la bibliothèque. Il est capable<br />

pour chac<strong>une</strong> <strong>de</strong> ses fonctionnalités <strong>de</strong> rechercher au sein <strong>de</strong> sa politique <strong>de</strong> sécurité si l’action<br />

entreprise par l’entité sécurisée tierce peut être autorisée ou non ainsi que les attributs <strong>de</strong> sécurité<br />

à utiliser pour le chiffrement <strong>de</strong>s communications.<br />

70

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

Saved successfully!

Ooh no, something went wrong!