• Aucun résultat trouvé

Agent de négociation

Ce module traite les échanges de négociation en terme d’événements. C’est un pro- cessus parallèle au protocole d’échange. Nous abordons ici les classes principales inté- grées à ce module.

8.6.1 Processus de négociation

Cette classe (AgentNegotiation.java) gère tout au long de son déroulement le pro- cessus de négociation. L’Agent réalise les traitements suivants :

– À chaque étape, il prend comme paramêtre l’événement, transformé à partir du message échangé, pour effectuer la négociation de l’étape courante, en créant un nouvel objet de la classe Étape de négociation

– Le processus continue ainsi jusqu’à ce qu’il ait reçu un événement, ou qu’il propose un événement, qui corresponde à un message de type conclusion, ce qui indique la fin de la négociation.

Le détail de la classe se trouve dans l’annexe B.

8.6.2 Étape de négociation

Cette classe traite la négociation à chaque étape du processus. Quand l’entité reçoit un événement spécifiant une proposition du partenaire, elle a besoin de l’analyser pour donner une proposition, une négociation, un rejet ou une conclusion correspondant. Les opérations suivantes sont traitées dans la classe.

– Calculer EC, l’ensemble des événements candidats à partir de la structure d’évé- nements. Ce traitement appellera la procédure de vérification de la politique, les classes du module de Vérification.

– Envoyer l’événement à la classe « Protocole et Interface » pour construire les mes- sages à échanger.

Le squelette général de cette classe est donné dans l’annexe B.

8.6.3 Stratégie de négociation

À chaque étape de la négociation, quand l’entité a un ensemble d’événements candi- dats EC avec lesquels elle peut réagir, elle applique sa stratégie pour choisir le meilleur événement. Le fonctionnement de cette classe est basé sur l’algorithme StrategieNego- ciation que nous avons présenté dans le chapitre 6. L’algorithme utilise le poids de la causalité des événements candidats, l’événement ayant un poids le plus faible est choisi.

8.6.4 Historique

L’historique des transactions est important pour la négociation. C’est un ensemble de configurations où chacune d’elle contient l’ensemble des événements correspondant à une session (une transaction). Nous avons besoin de stocker l’historique de chaque session pour que l’entité puisse s’en servir lors des négociations qu’elle effectuera ultérieurement. En terme de structure et de données manipulées pour représenter l’historique, nous choisissons dans notre implémentation le format XML pour les stocker. Un description de ce format XML est donné dans l’annexe A.

8.7

Synthèse

Dans ce chapitre, nous avons présenté la structure de l’implémentation de notre prototype de négociation, en utilisant le modèle de négociation présenté au chapitre 6. Le prototype actuel est en cours de réécriture pour obtenir une version complète.

Chapitre 9

Conclusion

Le travail que nous avons présenté dans cette thèse aborde un problème significatif de la recherche en sécurité informatique : le problème de gestion de la confiance. Lors de l’utilisation d’applications Internet (commerce électronique, chat, . . . ), une question se pose toujours : lorsque nous prenons contact avec un acteur (une personne ou un uti- lisateur virtuel) que nous ne connaissons pas, comment pouvons-nous lui faire confiance pour réaliser une transaction ? Avec le développement très rapide des applications Inter- net et leur utilisation pour la réalisation de transactions commerciales de plus en plus importantes (en quantités et en montants), disposer de solutions à ce problème s’avère un point crucial.

La solution proposée est un système de gestion de la confiance qui permet à une entité d’évaluer la confiance qu’elle peut accorder à une autre entité du système.

Le système se base sur un modèle de confiance dans lequel toutes les sources d’infor- mations disponibles peuvent être utilisées pour la décision de la confiance. De plus, le système apporte un mécanisme qui permet d’établir une confiance mutuelle entre deux acteurs tout au long de leur transaction. La confiance est acquise par la négociation.

Ce problème a été abordé de plusieurs manières dans la littérature. Dans cette thèse, nous avons procédé dans l’ordre suivant.

– Nous avons tout d’abord présenté l’état de l’art du problème (chapitre 1). Pour cela, nous avons analysé les notions de base concernant le problème de la confiance. Ensuite, nous avons présenté les systèmes de gestion de la confiance existant per- mettant une résolution du problème. Nous avons également analysé les avantages et les limites de ces systèmes. Cette discussion a fait l’objet des chapitres 2, 3 et 4. – Dans une seconde étape, nous avons donné une description globale de notre sys- tème de gestion de la confiance. Ensuite, nous avons développé les différents com- posants de notre système tels que la prise de décision, le modèle de négociation ou le modèle du risque. Cette description est réalisée dans les chapitres 5, 6, 7 et 8.

Dans les sections suivantes, nous effectuons un résumé de notre contribution à une solution de ce problème de recherche. Ensuite, nous donnons quelques perspectives pour la continuation des développements réalisés dans le cadre de cette thèse.

9.1

Apports

Dans le cadre de ce travail de thèse, nous avons proposé quelques contributions pour un système de gestion de la confiance.

– Un modèle de la confiance : notre approche pour un modèle de la confiance est une approche hybride. Dans cette approche, nous utilisons toutes les sources d’informations disponibles tels que les qualifications, les recommandations, la ré- putation ou le risque, pour prendre une décision sur le fait de faire confiance ou non à une entité. Le modèle proposé utilise une formalisation du système avec la structure d’événements. Dans cette formalisation, toutes les actions, les données échangées (qualification, réputation, recommandation, risque) sont considérées comme des événements. La structure d’événements est une base pour construire les politiques de gestion de la confiance de chaque entité, en utilisant une logique spécifique, la logique PP-LTL. La politique de gestion de la confiance est exprimée comme une formule utilisant cette logique, notée ψ. L’historique H garde toutes les données des événements observés lors de transactions antérieures. La prise de décision sur le fait d’accorder sa confiance ou non à une entité consiste en une vérification de la satisfaisabilité de la politique avec l’historique de cette entité : H |= ψ.

– Un modèle de négociation : ce modèle est également formalisé par la structure d’événements proposée pour le système. Le modèle formalise la négociation entre deux parties en vue d’établir une confiance mutuelle. Dans ce modèle, chaque en- tité a sa propre politique de confiance, présentée par la logique LTL et une base de l’historique des interactions avec les autres entités. La négociation entre les deux parties a lieu en plusieurs étapes avec l’aide de composants différents : le proto- cole de négociation, la stratégie de négociation et la vérification de la politique. Dans ce travail de thèse, ce modèle de négociation est concrétisé par un scénario d’application : une transaction en ligne (vente/achat).

– Un modèle de risque : le risque est également un facteur important dans notre système de gestion de la confiance, il est utilisé pour la prise de décision de la confiance. Nous avons proposé un modèle de risque en formalisant le système en structure d’événements. Ce modèle de risque est un modèle qualitatif qui évalue le risque basé sur le calcul coût/bénéfice de chaque action. Chaque action peut avoir plusieurs conséquences liées à une probabilité. La valeur du risque est évaluée en combinant toutes ces conséquences et leurs probabilités.

– Une expérimentation du modèle de négociation : nous donnons dans cette thèse un prototype de négociation de la confiance. C’est la première expérimen- tation de notre modèle de négociation. Le prototype implémente le scénario d’ap- plication d’une transaction en ligne. Il est développé en Java et la politique de gestion de la confiance est décrite dans un document au format XML. Nous uti- lisons la technique de programmation réseaux avec des sockets pour le protocole de négociation.

Perspectives 139

9.2

Perspectives

Dans cette thèse, nous avons présenté notre système de gestion de la confiance qui permet d’établir la confiance mutuelle entre les entités dans le système en utilisant toutes les sources d’informations disponibles : les qualifications, les recommandations, la réputation, le risque. . . Le but de la thèse est atteint mais nous donnons quelques perspectives pour améliorer notre système et la recherche dans ce domaine.

– Proposer un algorithme plus efficace pour la stratégie de la négociation.

– Pour la mise en œuvre, nous pouvons suggérer deux nouveaux composants : un module de stratégie de négociation et une interface pratique pour les utilisateurs. Il serait également intéressant d’améliorer le module de vérification de la politique avec un algorithme plus optimisé.

– Le langage permettant d’exprimer la politique dans notre système utilise la lo- gique PP-LTL qui peut être compliquée à appréhender. Nous pouvons imaginer de développer un langage de description de politique basé sur ce principe et qui peut être utilisé plus facilement dans les applications.

Annexe A

Spécification de la politique

Nous proposons dans cette annexe des extraits de la description complète des poli- tiques décrites dans cette thèse. Le formalisme utilisé est DSD 2.0 [69], assez similaire à XSchema, mais moins lourd à mettre en œuvre.

A.1

Schéma DSD

– Déclaration de la politique <if> <element name="p:policy"/> <declare> <contents> <repeat> <sequence> <element name="p:actions"/> <element name="p:behaviour"/> </sequence> </repeat> <normalize whitespace="trim"/> </contents> </declare> </if>

– Déclaration des actions <if> <element name="p:actions"/> <declare> <contents> <repeat min="1"> <contenttype ref="p:negopermission"/> </repeat> </contents> </declare> </if>

– Déclaration des événements

<if><element name="p:event"/> <declare> <contents> <contenttype ref="p:negopermission"/> <normalize whitespace="trim"/> </contents> </declare> </if>

– Déclaration des formules

<contenttype id="p:formula"> <union> <string value="True"/> <string value="False"/> <element name="p:event"/> <element name="p:possible"/> <element name="p:and"/> <element name="p:not"/> <element name="p:last"/> <element name="p:since"/> <element name="p:sometime"/> <element name="p:always"/> <element name="p:or"/> <element name="p:implication"/> </union> </contenttype>

– Déclaration le quantificateur ET. <if> <element name="p:and"/> <declare> <contents> <contenttype ref="p:formula"/> <normalize whitespace="trim"/> </contents> </declare> </if>

– Déclaration l’opérateur d’implication. <if> <element name="p:implication"/> <declare> <contents> <sequence> <element name="p:premise"/> <element name="p:conclusion"/> </sequence> <normalize whitespace="trim"/> </contents> </declare>

La politique du client 143

</if>

– les événements concernant le client <contenttype id="p:action"> <union> <string value="object_request"/> <string value="object_received"/> <string value="time_out"/> <string value="payement_request"/> <string value="pay_direct"/> <string value="ignore"/> <string value="pay_confirm"/> <string value="pay_cancel"/> </union> </contenttype>

– les événements concernant le vendeur <contenttype id="p:action"> <union> <string value="object_order"/> <string value="object_send"/> <string value="ignore"/> <string value="ask_payement"/> <string value="payement_received"/> <string value="pay_TTP_notified"/> <string value="payement_time_out"/> <string value="payement_received"/> <string value="payement_time_out"/> </union> </contenttype>