Projet : LANDE

previous up next contents
Précédent : Action TWO Remonter : Contrats industriels (nationaux, européens et Suivant : Actions régionales, nationales et internationales


   
Action Java-Sécurité

 

Participants : Pascal Fradet, Thomas Jensen, Daniel Le Métayer, Tommy Thorn.

Mots clés : Téléchargement, Vérification, Analyse, Sécurité, Sûreté, Chargement dynamique, Visibilité, Typage, Java .

Résumé :

Dans le cadre de l'action VIP du GIE Dyade, nous avons proposé une formalisation de la sémantique de certains aspects du langage Java. Nous nous sommes focalisés sur les règles de visibilité (des classes et de leurs membres) et leur évolution lors du chargement dynamique de classes. Nous avons ensuite proposé un cadre pour spécifier des politiques de sécurité basé sur une logique temporelle linéaire à deux niveaux. Nous avons conçu une méthode pour vérifier qu'un programme Java, réprésenté comme un système de transition, satisfait une politique exprimée dans ce cadre. La méthode répose sur un résultat qui permet de limiter la taille du système en fonction de la propriété à vérifier.

Nous participons à l'action VIP du GIE Bull-Inria Dyade. Le thème de cette collaboration est la formalisation de certains aspects de la sémantique de Java et la preuve de propriétés de sécurité de programmes (cf. module 6.1.3). L'étude des problèmes de sécurité (au sens de confidentialité et d'intégrité notamment) dans le contexte du langage Java représente un défi de première importance pour plusieurs raisons:

Nous nous sommes attaqués à cette formalisation en nous focalisant sur les règles de visibilité (des classes et de leurs membres) et leur évolution lors du chargement dynamique de classes [[32]]. Il s'agit en effet de caractéristiques particulières de Java qui ont un impact direct sur la sécurité et dont les définitions informelles ne sont pas exemptes d'ambiguïtés ou d'insuffisances. Cette formalisation en terme de systèmes d'inférence nous a permis de décrire de manière rigoureuse l'origine d'une erreur de sécurité qui avait été découverte empiriquement par des chercheurs d' ATT.

Nous avons ensuite proposé un cadre pour spécifier des politiques de sécurité basé sur une logique temporelle linéaire à deux niveaux. Nous avons conçu une méthode pour vérifier qu'un programme Java, réprésenté comme un système de transition, satisfait une politique exprimée dans ce cadre. La méthode répose sur un résultat qui permet de limiter la taille du système en fonction de la propriété à vérifier. Notre objectif actuel est d'étudier l'effet d'une politique (c'est à dire les exigences qu'elle impose) sur les composants d'une application Java (comme le chargeur de classes).

Notre effort de formalisation des différents aspects de Java et de sa mise en oeuvre se concrétise également à travers une collaboration entamée avec le fabricant de cartes à puces Bull-CP8 sur la vérification d'optimisations pour Java Card. Ce projet (ref. Inria: 1 98 C 144), commencé en février 1998, doit durer une année.



previous up next contents
Précédent : Action TWO Remonter : Contrats industriels (nationaux, européens et Suivant : Actions régionales, nationales et internationales