thesis

Une architecture de sécurité pour les applications réflexives : application à Java

Defense date:

Jan. 1, 2002

Edit

Institution:

Nice

Disciplines:

Directors:

Abstract EN:

Pas de résumé disponible.

Abstract FR:

En l'espace de vingt ans, les techniques de programmation réflexive sont passées du statut de curiosité de laboratoire à celui d'outil indispensable dans la panoplie du programmeur. Ces techniques sont notamment utilisées dans le but d'adapter de manière transparente le comportement des logiciels à des situations qui n'étaient pas prévues par leurs spécifications d'origine. Dans le même temps, les applications sont devenues plus complexes et les cycles de développement plus courts, ce qui a amené l'émergence d'approches à composants. La généralisation des réseaux de communication a permis d'incorporer dynamiquement lors de l'exécution d'une application des nouveaux composants chargés depuis une machine distante. Les problèmes de sécurité posés par l'apparition de code mobile sont immenses, c'est pourquoi le langage de programmation Java, par exemple, contient une architecture de sécurité destiné à protéger les ressources locales du code chargé à distance. Cette thèse porte sur les problèmes de sécurité posés par l'utilisation de protocoles à métaobjets (MOP) dans le cadre d'application à composants développées dans la langage Java. Les contributions de ce travail se répartissent selon deux axes. Nous avons tout d'abord étudié les problèmes de sécurité soulevés par l'utilisation des différents types de MOP pour Java, et comment l'architecture de sécurité existante permet, ou non, d'y répondre. Nous en avons conclu que le modèle de sécurité de Java doit être étendu afin de pouvoir appliquer des contrôles d'accès aux opérations effectuées par le code de méta niveau sur le code du niveau de base. Nous avons ensuite con\c{c}u et implémenté un MOP à objets d'interception pour Java avec le double objectif d'être non-intrusif et de sécuriser les interactions entre les métaobjets et les objets de base. Après avoir montré comment la présence du méta niveau peut être transparente pour le niveau de base du point de vue de la sécurité, nous avons défini un ensemble de permissions destinées à contrôler les opérations que les métaobjets peuvent faire sur, à la fois, les objets du niveau de base et les éléments de l'exécution du programme de base réifiés. Nous avons enfin implémenté un certain nombre de comportement de niveau méta afin de valider notre MOP et son architecture de sécurité. Ces résultats prouvent que la granularité des permissions choisies est correcte, et que le surcoût introduit par le mécanisme de sécurité intégré au MOP est tout à fait acceptable. Nous terminons en expliquant comment notre architecture de sécurité pourrait être appliquée à d'autre types de MOP pour Java.