Chapitre 7
Conception et réalisation
7.1 Introduction
Après avoir fixé les bases théoriques de
notre système, il faut pouvoir intégrer le tout dans une
application réelle afin de bien assimiler le principe de fonctionnement
et de démonter la faisabilité de notre approche.
Pour sécuriser les agents mobiles aglets au cours de
leurs communications, nous avons proposé une solution basée sur
le logiciel qui va être appliquée dans le cadre du domaine
médical. Cette solution est le sujet de ce chapitre. En premier lieu
nous avons spécifié les étapes de notre solution, en
deuxième lieu nous avons élaboré une conception de cette
dernière pour finir par sa implémentation.
7.2 Spécification de la solution
7.2.1 Etapes de travail
Les tests des codes simples des aglets qui communiquent
constituent la première étape dans notre travail, suivie de
l'étude des failles de sécurité existantes dans la
plateforme au niveau de la communication. En suite, nous nous sommes
intéressées à faire la conception de la solution
proposée afin de passer à l'étape de
l'implémentation. (Figure 6.1)
Tahiti
Sniffer
Tests de code (Aglet Simple)
Détermination des failles de iti
|
Conception de la solution
Implémentation
NetBeans
UML
Figure 6.1 Etapes de travail.
7.2.2 Description de la solution
La plate-forme Aglets a plusieurs caractéristiques et
vu que l'agent est programmé en Java et que celui ci offre des
possibilités de sécurité, nous avons donc pensé
à intégrer une sorte d'approche de sécurité de cet
agent.
Notre but est alors de sécuriser les aglets pendant
leurs communications dans un système multi agents, pour
transférer ou recevoir des informations médicales par exemple
image d'extension .tiff.
Notre solution consiste à implémenter un
ensemble d'agents coopératifs qui travailleront et manipuleront les
informations en fonction des besoins d'un utilisateur ou du type de
données.
Pour échanger des informations, les agents
coopératifs se comportent comme suite :
Le premier agent, appelé agent utilisateur du fait
qu'il doit être lancé par l'utilisateur, va satisfaire les
désires de l'utilisateur, ce qui lui permettra à son tour de
choisir et de lancer l'exécution d'un autre agent .Dès lors deux
cas se présentent :
1) S'il s'agit d'un fichier qui contient des données
confidentielles (par exemple en teste sur l'existence des codes, des
identifiants, etc.), l'agent utilisateur lancera un autre agent
appelé
agent cryptage qui va crypter les données du fichier
à l'aide d'un algorithme de cryptage asymétriques le RSA (Figure
6.2).
Image.tiff en clair
Cryptage
Décryptage
Image.tiff en clair
Image codée
Figure 6.2 Cryptage/Décryptage.
2) Si l'utilisateur désire contrôler
l'intégrité d'un document, l'agent utilisateur lancera un autre
agent appelé agent hachage. Cet agent va contenir une classe de
vérification développée en java implémentant une
fonction de hachage par l'approche MD5. Dans notre cas nous avons
réalisé nos tests sur un simple message puis sur une image
médicale d'extension .tiff
L'agent hachage va créer un hash (Digest) lors de
l'envoi d'un message et la transmet avec le message afin que le
récepteur puisse recalculer l'hash du message et la comparer à
celui envoyé.
Dans notre solution, l'agent utilisateur est un agent
stationnaire qui s'exécute seulement sur la machine où il est
créé, il permet de lancer d'autres agents mobiles tel que : agent
cryptage, agent hachage qui communiquent entre eux par envoi de messages afin
de réaliser des tâches précises.
Si jamais l'agent utilisateur a besoin d'informations
supplémentaires inexistantes localement, ou d'interagir avec d'autres
agents dans différents systèmes ou encore il arrive que l'on ait
besoin d'exécuter une partie du code de cet agent sur une autre machine
que celle sur laquelle est lancé, alors on aura besoin d'utiliser une
méthode appliquée dans le modèle client serveur qui est le
protocole RPC (Remote Procedure Call).
Chaque agent mobile, lancé par l'agent utilisateur
possède un traitement sur les données (cryptage,
vérification) dans la source. Pour cela il est nécessaire que le
code de chaque agent mobile ait des paramètres et des informations qui
permettront aux agents destination de réaliser le traitement inverse sur
les données pour avoir les données en claire ou pour s'assurer
que les données n'ont pas été altérées.
Nous considérerons les agents mobiles comme étant
des aglets qui contiennent des codes java et qui communiquent entre eux pour
maintenir une sorte de sécurité de leurs données.
L'organigramme suivant explique bien le fonctionnement de notre
solution(Figure 6.3)
Données à envoyer
|
____ ____
|
Agent utilisateur
Agent Cryptage
|
|
|
|
|
Agent hachage
|
|
|
|
Figure 6.3 Diagramme de la solution.
|