Thèse soutenue

Automatisation de la Spécification et de la Vérification d'applications Java Card

FR  |  
EN
Auteur / Autrice : Nicolas Rousset
Direction : Claude Marché
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance en 2008
Etablissement(s) : Paris 11
Partenaire(s) de recherche : autre partenaire : Université de Paris-Sud. Faculté des sciences d'Orsay (Essonne)

Résumé

FR  |  
EN

Ce travail concerne la vérification statique de programmes Java Card annotés formellement, par des méthodes déductives. Il contribue à rendre cette approche praticable dans un contexte industriel. Ce travail a donné lieu à des implantations au sein du prototype Krakatoa, et des expérimentations sur des applets industrielles. La première partie concerne le renforcement du degré d'automatisation de l'étape de vérification. La première contribution est l'interprétation fine de traits de la sémantique du langage Java Card: transactions et arrachage de la carte. La deuxième contribution propose une politique de références non-null par défaut qui permet de vérifier la validité des accès mémoire par typage statique. La troisième contribution est une analyse inter-procédurale d'inférence d'annotations par interprétation abstraite, qui permet d'obtenir des invariants de boucle, ainsi que des préconditions et des postconditions de méthodes. La seconde partie concerne la phase amont c'est-à-dire la conception des spécifications. La première contribution propose des liens entre les annotations à la JML et des spécifications abstraites. Des propriétés fonctionnelles sont exprimées à l'aide de spécifications algébriques, dont le lien avec un programme annoté est défini par une relation de raffinement. La deuxième contribution propose une utilisation structurée de diagrammes UML permettant d'engendrer des annotations, pour vérifier des propriétés de sûreté spécifiques (e. G. Invariants de structure, utilisation de protocoles). Enfin, une perspective est ouverte sur la définition et la propagation automatique d'annotations pour aider à l'audit de sécurité des applets Java Card.