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.

5.8 Exemple du journal intime<br />

Chapitre 5. Une <strong>architecture</strong> <strong>de</strong> sécurité <strong>de</strong> haut niveau<br />

Cette section reprend l’application "Journal Intime" présentée lors <strong>de</strong> l’état <strong>de</strong> l’art et présente<br />

son implantation en utilisant notre modèle <strong>de</strong> sécurité. L’application se décompose en <strong>de</strong>ux<br />

parties, le serveur et le client. Le serveur est un objet actif, positionné sur un nœud appartenant<br />

au nœud virtuel VN_Serveur. Jusqu’à présent, nous avons supposé que le déploiement <strong>de</strong> l’application<br />

était orchestré d’un seul endroit, dans la métho<strong>de</strong> principale (main) du programme. Dans<br />

cet exemple, nous avons choisi <strong>de</strong> déployer dans un premier temps le serveur avec sa politique<br />

<strong>de</strong> sécurité propre, puis le client lui aussi avec <strong>une</strong> politique <strong>de</strong> sécurité propre. De plus, le client<br />

ne sera pas explicitement créé comme un objet actif : sa sécurité reposera sur les mécanismes <strong>de</strong><br />

sécurité du HalfBody qui entrent en jeu lors d’<strong>une</strong> telle situation.<br />

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

La classe DiaryImpl représente l’implantation du co<strong>de</strong> du serveur. La métho<strong>de</strong> exposée<br />

addEntry est celle qui permet <strong>de</strong> d’ajouter <strong>de</strong>s messages dans le journal.<br />

public class DiaryImpl implements Diary, Serializable {<br />

/*... */<br />

public void addEntry(String entry) {<br />

entries.add(entry);<br />

}<br />

La métho<strong>de</strong> main présente le co<strong>de</strong> <strong>de</strong> lancement du serveur. Ce <strong>de</strong>rnier est positionné sur un<br />

nœud dépendant du nœud virtuel VN_Serveur, le serveur est enregistré sur l’adresse "//localhostMyDiary".<br />

public static void main(String[] args) {<br />

Diary diary = null;<br />

try {<br />

// activation du <strong>de</strong>scripteur <strong>de</strong> <strong>de</strong>ploiement<br />

ProActiveDescriptor pad = ProActive.getProactiveDescriptor(args[0]);<br />

pad.activateMappings();<br />

}<br />

// creation <strong>de</strong> l’objet actif jouant le role du serveur<br />

diary = (Diary) ProActive.newActive("org.objectweb.proactive.examples.mydiary<br />

.DiaryImpl", new Object[] { }, pad.getVirtualNo<strong>de</strong>("VN_Serveur").getNo<strong>de</strong>()<br />

);<br />

// enregistrement <strong>de</strong> l’URL du serveur<br />

ProActive.register(diary, "//localhost/MyDiary");<br />

} catch (Exception e) {<br />

e.printStackTrace();<br />

}<br />

Le <strong>de</strong>scripteur <strong>de</strong> sécurité associé au <strong>de</strong>scripteur <strong>de</strong> déploiement spécifie la politique <strong>de</strong> sécurité<br />

à appliquer aux échanges sécurisés entre le nœud virtuel contenant le serveur (VN_Serveur)<br />

et celui contenant le client (VN_Client). Le fait que le ou les nœuds appartenant au nœud virtuel<br />

VN_Client ne soient pas connues lors du déploiement ne pose aucun problème <strong>de</strong> configuration.<br />

Ces nœuds seront créés ultérieurement par la partie cliente <strong>de</strong> l’application qui <strong>de</strong>vra, bien<br />

évi<strong>de</strong>mment, possé<strong>de</strong>r le même certificat d’application que celui qui a été utilisé pour la partie<br />

serveur <strong>de</strong> l’application.<br />

<br />

<br />

JournalIntime<br />

ji.pkcs12<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

96

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

Saved successfully!

Ooh no, something went wrong!