Dossier de candidature à un emploi de Maître de Conférences



Documents pareils
Vérification formelle de la plate-forme Java Card

Vérification formelle de la plate-forme Java Card

Curriculum Vitae 1 er février 2008

Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.

Évaluation et implémentation des langages

Formula Negator, Outil de négation de formule.

UFR d Informatique. FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Cours 1 : La compilation

Annexe : La Programmation Informatique

Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P

Calculabilité Cours 3 : Problèmes non-calculables.

Éléments de programmation et introduction à Java

Cécile MAUNIER. Maître de Conférences Sciences de Gestion Responsable pédagogique - Master 1 Marketing, Vente TITRES UNIVERSITAIRES

GECCOO. pour des applications orientées objet

Vulgarisation Java EE Java EE, c est quoi?

Utilisation des tableaux sémantiques dans les logiques de description

La technologie Java Card TM

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Mon métier, mon parcours

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

Sujet de thèse CIFRE RESULIS / LGI2P

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Etudier l informatique

Une méthode d apprentissage pour la composition de services web

Environnements de développement (intégrés)

Département Informatique

DUT. Informatique, orientation Imagerie Numérique. Domaine : Sciences, Technologies, Santé. Mention : Informatique

Le Master Mathématiques et Applications

Entraînement au concours ACM-ICPC

Machines virtuelles Cours 1 : Introduction

Plan de cours ADM 992C Page 1. École des sciences de la gestion Département de management et technologie Université du Québec à Montréal

Master Informatique Aix-Marseille Université

Organisation du parcours M2 IR Les unités d enseignements (UE) affichées dans la partie tronc commun sont toutes obligatoires, ainsi que le stage et

INGENIERIE DES SYSTEMES INFORMATIQUES - PARCOURS : MOBILITE ET CLOUD COMPUTING

Burckel Thomas. Formation. Compétences

Forthcoming Database

PROGRAMME DE BOURSES D EXCELLENCE Bourses de Master 2 ou de Doctorat

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

SUPPLEMENT AU DIPLOME

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Master recherche Histoire des mondes moderne et contemporain

Intelligence Artificielle et Robotique

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Mon métier, mon parcours

Rapport d évaluation du master

CURRICULUM VITAE. Informations Personnelles

MATHEMATIQUES ET SCIENCES POUR L INGENIEUR

Chapitre I Notions de base et outils de travail

Université Libre de Tunis

ANALYSTE PROGRAMMEUR DIPLÔME D ÉTABLISSEMENT

Présentation de la majeure ISN. ESILV - 18 avril 2013

Les formations de remise à niveau(!) l'entrée des licences scientifiques. Patrick Frétigné CIIU

4.2 Unités d enseignement du M1

High Performance by Exploiting Information Locality through Reverse Computing. Mouad Bahi

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Formateur.NET expérimenté Forte expertise dans la conception et le développement d applications.net, associée à une grande pédagogie

Attachée Temporaire d Enseignement et de Recherche Institut d Administration des Entreprises Université de Toulouse 1 Capitole.

UE C avancé cours 1: introduction et révisions

ANNEXES. Evaluation de la formation à Polytech Lille Département GIS. Enseignements les plus utiles. Enseignements à renforcer

Théorie de la Programmation

Parcours en deuxième année

IODAA. de l 1nf0rmation à la Décision par l Analyse et l Apprentissage / 21

GPC Computer Science

Public. Débouchés. Les atouts du Master PIC. Statistiques des débouchés 22 % 16 % 10 % 14 % 38 % Entreprise Start-up Thèse.

THOT - Extraction de données et de schémas d un SGBD

Expert technique J2EE

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

PLM PRODUCT LIFECYCLE MANAGEMENT MASTÈRE SPÉCIALISÉ

Analyse,, Conception des Systèmes Informatiques

Objet : demande d emploi

Environnement Zebra Link-OS version 2.0

SMU MEDITERRANEAN. SOUTH MEDITERRANEAN UNIVERSITY Première Université Anglophone en Tunisie (Depuis 2002)

EN INFORMATIQUE ET GESTION

Ingénierie et gestion des connaissances

PROGRAMME DETAILLE. Parcours en première année en apprentissage. Travail personnel CC + ET réseaux

Analyses croisées de sites Web pour détecter les sites de contrefaçon. Prof. Dr. Olivier Biberstein

Évaluation des logiciels et autres réalisations

Environnements et Outils de Développement Cours 1 Introduction

Proposition de stage

Problématiques de recherche. Figure Research Agenda for service-oriented computing

Profil d études détaillé. Section : Informatique et systèmes Finalité : Technologie de l informatique

Les dossiers de l enseignement scolaire. l Éducation nationale et la formation professionnelle en France

Présentation Société

Le Collège de France crée une chaire pérenne d Informatique, Algorithmes, machines et langages, et nomme le Pr Gérard BERRY titulaire

Paris Bâtiment F, Bureau 101 B

PG208, Projet n 3 : Serveur HTTP évolué

Bologne à l EPFL. Réforme de Bologne Implications pour l EPFL. Prof. Dominique Bonvin, Doyen Bachelor-Master

Demande de transformation de la formation qualifiante TEMIR : Technicien En Maintenance Informatique et Réseaux en diplôme d université (DU)

Statistiques et traitement des données

Intégration de l interface graphique de Ptidej dans Eclipse

Doctorate of Business Administration Programme francophone

Chambre 222, Bâtiment A, village universitaire PESSAC - FRANCE rim.boussaada@u-bordeaux4.fr

Rapport de stage. Développement d un logiciel de vidéoconférence : Enjeux 3. Guillaume DOTT 2009

MASTER ECONOMIE APPLIQUEE

Master Energie spécialité Energie électrique

Transcription:

Dossier de candidature à un emploi de Maître de Conférences présenté par Guillaume DUFAY University of Ottawa 800 King Edward Ave. Ottawa, ON K1N 6N5 CANADA Tél : +1 613 562-5800 ext. 2286 Fax : +1 613 562-5664 gdufay@site.uottawa.ca http://www.site.uottawa.ca/~gdufay Table des matières 1 Curriculum Vitæ 2 1.1 État Civil et Résumé................................ 2 1.2 Cursus Universitaire et Professionnel....................... 3 1.3 Thèse........................................ 4 2 Activités d enseignement 5 3 Activités de recherche 7 3.1 Travaux de recherche................................ 7 3.2 Publications et manuscrits............................. 9 3.3 Présentations.................................... 10 3.4 Responsabilités collectives............................. 11 4 Projets d enseignement 12 5 Projets de recherche 13 CV Page 1 / 15

1 Curriculum Vitæ 1.1 État Civil et Résumé Nom : Guillaume DUFAY Date et lieu de naissance : 7 juillet 1977 à Paris XV e Nationalité : Française Situation de famille : Célibataire Adresse permanente : 6 rue des vizelets, 94130 Nogent sur Marne Situation actuelle : Post-doctorant à l Université d Ottawa Thèse : «Vérification formelle de la plate-forme JavaCard», soutenue le 5 décembre 2003 devant le Jury composé de T. JENSEN, E. POLL (Rapporteurs), C. HANKIN, C. PAULIN (Examinateurs), L. PIERRE (Présidente), G. BARTHE (Directeur). Formation Pré-doctorale : DEA Sémantique, Preuve et Programmation, Université Paris 7, 2000. Publications Représentatives : «Tool-Assisted Framework for Certified Bytecode Verification», FASE 2004 «Tool-Assisted Specification and Verification of the JavaCard Platform», AMAST 2002 «A Formal Executable Semantics of the JavaCard Platform», ESOP 2001 Mots-clés Recherche : Assistants à la preuve, Théorie des Types, Méthodes formelles, Formalisation des mathématiques, Sémantique des langages, Java (Card), Sécurité, Analyse statique, Interprétation abstraite, Fouille de données. Enseignement : 270 heures du DEUG à la Maîtrise. CV Page 2 / 15

1.2 Cursus Universitaire et Professionnel POST-DOCTORAT University of Ottawa 2004-2005 Associé aux groupes de recherche Text Analysis and Machine Learning (TAMALE, dirigé par S. MATWIN) et Software Correctness and Safety (SCAS, dirigé par A. FELTY). Travaux de recherche sur le thème «Formal methods for privacy preserving data-mining» ATTACHÉ TEMPORAIRE D ENSEIGNEMENT ET DE RECHERCHE (ATER) Université de Nice Sophia-Antipolis 2003-2004 Demi-poste au département d informatique de l Université. Collaborateur extérieur de l équipe Everest à l INRIA Sophia-Antipolis. DOCTORAT EN INFORMATIQUE Université de Nice Sophia-Antipolis 2003 Mention Très Honorable Thèse intitulée «Vérification formelle de plate-forme Java Card» et réalisée en 3 ans dans l équipe Lemme à l INRIA Sophia-Antipolis, sous la direction de G. BARTHE. DEA SÉMANTIQUE, PREUVE ET PROGRAMMATION Université Paris 7 Denis Diderot 2000 Mention Bien Stage de DEA de 6 mois intitulé «Formalisation de la plate-forme Java Card» dans l équipe Oasis à l INRIA Sophia-Antipolis, sous la direction de G. BARTHE. MAÎTRISE DE MATHÉMATIQUES FONDAMENTALES Université Paris Sud Orsay 1999 Mention Assez Bien Stage de Maîtrise intitulé «Formalisation du théorème de MATIYASEVICH» dans le Laboratoire de Recherche en Informatique (LRI), sous la direction de C. MARCHÉ. LICENCE DE MATHÉMATIQUES Université de Marne-la-Vallée 1998 Mention Bien DEUG MATHÉMATIQUES INFORMATIQUE APPLICATION AUX SCIENCES Université de Marne-la-Vallée 1997 Mention Bien BACCALAURÉAT SÉRIE S 1995 Mention Bien. J ai par ailleurs suivi durant ma formation doctorale deux écoles d été, me donnant ainsi la possibilité d approfondir mes connaissances dans des domaines différents de ma thèse et de partager mes travaux de recherches avec d autres doctorants. Applied Semantics (APPSEM) Summer School Caminha Portugal septembre 2000 École des Jeunes Chercheurs en Programmation Cargèse Corse juin 2001 CV Page 3 / 15

1.3 Thèse Ma thèse est intitulée «Vérification formelle de la plate-forme JavaCard», et a été soutenue publiquement le 5 décembre 2003 à l École Supérieure en Sciences Informatiques (ESSI) devant le Jury composé de : Mme Laurence PIERRE I3S, Université de Nice Présidente MM. Thomas JENSEN IRISA / CNRS Rapporteurs Erik POLL Université de Nijmegen, Pays-Bas M. Chris HANKIN Imperial College, Royaume-Uni Examinateurs Mme Christine PAULIN Université Paris Sud M. Gilles BARTHE INRIA Sophia-Antipolis Directeur Ces travaux de doctorat se sont déroulés dans l équipe Lemme de l INRIA Sophia-Antipolis. Dans cette thèse, nous présentons une formalisation, réalisée dans l assistant de preuve Coq, de la plate-forme JavaCard. Cet environnement de programmation est destiné aux cartes à puce intelligentes et à leurs impératifs particuliers de sécurité. Nous décrivons dans un premier temps une formalisation complète et exécutable en Coq de la machine virtuelle JavaCard et de son environnement d exécution. Nous proposons ensuite une méthodologie visant à vérifier des propriétés statiques de la plateforme JavaCard et centrée sur la machine virtuelle utilisée réellement lors de l exécution. Nous montrons alors que cette machine virtuelle est aussi sûre que la machine virtuelle effectuant les tests de sécurité, à la condition que le programme exécuté ait passé la phase de vérification de code octet. Cette méthodologie, générique et automatisée par l apport d outils, est illustrée par l application à la sûreté du typage, qui est une des composantes essentielles de la sécurité de la plate-forme JavaCard. Nous décrivons enfin la réalisation en Coq d un vérificateur certifié et générique de code octet. Appliquant les techniques de vérification les plus récentes de ce domaine, il est implémenté de façon modulaire, simplifiant alors les preuves à apporter pour assurer, à partir de la donnée d une machine virtuelle, la correction du vérificateur de code octet construit. CV Page 4 / 15

2 Activités d enseignement Durant les trois années de ma thèse, sous forme de vacations, et à l issue de cette année d ATER (demi-service), j aurai assuré plus de 270 heures équivalent-td d enseignements. Ces enseignements dépendent du département d informatique de l Université de Nice Sophia-Antipolis. Destinés à des étudiants de première année de DEUG jusqu à la Maîtrise, ils ont couvert des thèmes allant de la programmation en Java aux mathématiques pour l informatique. La plupart de ces enseignements, détaillés ci-dessous, nécessitait la préparation des sujets de TD/TP, de partiels, la correction des projets et examens ainsi qu une participation active aux réunions pédagogiques. TP Algorithmique et Structures de Données, O. LECARME, DEUG MI 1, 22 h, 2001. TD Algorithmique et Structures de Données, O. LECARME, DEUG MI 1, 32 h, 2004. Cet enseignement constitue pour les étudiants une initiation à la programmation et à l algorithmique. D un contenu ambitieux pour une première année de DEUG, il traitait de concepts généraux comme les types, les méthodes, l analyse de performances, la récursivité, mais aussi d algorithmes avancés sur les tris, les structures chaînées, arbres, piles et files, graphes. Les travaux dirigés utilisent une notation algorithmique abstraite des langages de programmation là où les travaux pratiques aient pour support (en 2001) le langage Java, sans toutefois utiliser le paradigme objet de ce langage. J ai participé avec les autres intervenants à la rédaction des sujets, écrits dans l optique d illustrer au mieux les concepts du cours, de concentrer les exercices sur les algorithmes et non sur les subtilités d un langage et d obtenir une complémentarité TD/TP. TD Algorithme et Programmation, J.-M. FÉDOU, DEUG MASS 2, 39 h, 2001. Pour ces travaux dirigés, dont un certain nombre se déroulait sur machine, l objectif était de familiariser les étudiants à la programmation, pour cette filière où l informatique n est pas une composante principale de la formation. Java servait de langage support, en édulcorant au maximum ses fonctionnalités, à l illustration des concepts fondamentaux de la programmation que sont les structures de contrôle, les boucles, les tableaux, la récursivité. Les exercices choisis étaient adaptés à des problèmes pouvant être rencontrés en sciences sociales. J ai participé pour ce module à la rédaction et à la correction des partiels. TD Sémantique des Langages de Programmation, Y. BERTOT, Maîtrise d Informatique, 28 h, 2002 et 2003. Ces travaux dirigés portaient sur les notions vues en cours de λ-calcul pur et typé, de sémantiques axiomatique, opérationnelle et dénotationnelle et d inférence de types. Il m a été très instructif du point de vue pédagogique de fournir, dans cette filière déjà spécialisée dans l informatique, un point de vue et des concepts nouveaux pour les étudiants sur cette matière. De plus, je devais porter une attention particulière à la présentation des démonstrations pouvant intervenir dans les exercices pour un public parfois éloigné des problèmes mathématiques. Outre ces travaux dirigés, un mini-projet a consisté à utiliser Scheme pour fournir une sémantique opérationnelle d un langage de programmation. Enfin, j ai aidé à la correction des partiels et examens. CV Page 5 / 15

TD Informatique Théorique, J.-M. FÉDOU, DEUG MASS 2, 28h, 2002 et 2003. TD Informatique Théorique, P. AUDEBAUD, DEUG MASS 2, 28 h, 2004. L objectif du cours et des travaux dirigés était la présentation des bases mathématiques fondamentales de l informatique. Les notions étudiées comptaient les ensembles et relations mathématiques, la récurrence et l induction, le dénombrement, la complexité, les langages rationnels et automates, les grammaires, la logique. Il s agissait d illustrer comment ces concepts, avec lesquels les étudiants étaient pour la plupart déjà familiers, se retrouvaient de manière intrinsèque dans l informatique. Une attention particulière était accordée à la rédaction correcte des exercices et à la rigueur dans les démonstrations demandées aux étudiants, notamment par l intermédiaire d exercices à rendre d une semaine sur l autre. Ayant eu l occasion d assurer ce TD deux années et une troisième dans un programme modifié, j ai pu faire profiter de mon expérience aux nouveaux intervenants et juger ainsi de l utilité du suivi des formations. TD Travaux d étude outils de rédaction, O. LECARME, Licence d Informatique, 6 h, 2003. Ces travaux dirigés sur machine avaient pour but d une part de favoriser l autonomie des étudiants dans la configuration de leur environnement de travail et de leur éditeur (Emacs) et d autre part l apprentissage de L A TEX. La difficulté pédagogique résidait d une part dans la nécessité de devoir faire changer leurs habitudes aux étudiants et d autre part de les convaincre des atouts d un environnement correctement personnalisé pour accroître leur efficacité et de la puissance d un éditeur tel que L A TEX face aux standards Wysiwyg du marché. TD Programmation C et outils, C. FÉDÈLE, Licence d Informatique. 26 h, 2003. Pour ces travaux dirigés de C, l accent était porté non pas sur l algorithmique avec laquelle les étudiants ont déjà été familiarisés avec Java en DEUG, mais aux caractéristiques bas-niveau du langage C que sont les pointeurs, la gestion des structures de données, des fichiers. L explication du fonctionnement interne de l ordinateur permettait durant les TD de comprendre les subtilités du langage. Un deuxième partie de l enseignement était consacrée à la conception structurée d un programme et aux outils du programmeur tels que gdb ou make. Enfin, les étudiants ont dû réaliser un projet (un agenda) en fin de semestre pour lequel j ai participé aux corrections. J ai également eu l occasion de préparer et d assurer, en remplacement, un cours d Informatique Théorique en DEUG MASS 2. J ai encadré un Travail d Étude et de Recherche en Licence d Informatique portant sur JavaCard : Mode de fonctionnement, sécurité, exemples d applets, développement. Par ailleurs, j ai exercé comme vacataire dans l enseignement secondaire (Collège-Lycée Montalembert à Nogent sur Marne). En 1999, j ai effectué des remplacements en Mathématiques (de la cinquième à la première) et durant l année 1999-2000, j ai eu la charge d un cours d Informatique de gestion (en seconde générale). Cette expérience a été très formatrice sur la dynamique et la gestion de groupes. Enfin repassant de l autre côté du bureau, j ai suivi durant mon séjour à l Université d Ottawa un cours intitulé «Teaching in your Second Language» (40 h), formateur non seulement sur les techniques d expression en anglais pour l enseignement, mais aussi sur un plan pédagogique. CV Page 6 / 15

3 Activités de recherche 3.1 Travaux de recherche Mes travaux de recherche ont pour fil conducteur les méthodes formelles (les preuves associées ont été conduites essentiellement dans l assistant de preuve Coq). Pour la sécurité du logiciel, j ai ainsi été amené durant ma thèse à formaliser la sémantique complète d un environnement de programmation (JavaCard), à l étudier à l aide d analyses statiques, à concevoir des modèles réutilisables pour la vérification de certaines propriétés, et à développer des techniques de preuve et les moyens de les automatiser. Ces travaux ont pu être repris par d autres équipes de recherche et évalués favorablement par des industriels. Depuis mon post-doctorat, je m intéresse aux moyens d assurer des propriétés de protection de la vie privée, directement à partir du code source du programme étudié. Cette approche est illustrée sur des algorithmes de fouille de données. Vérification du logiciel. Depuis le début de mon post-doctorat, je m intéresse à l application des méthodes formelles à la vérification du code source de programmes. Ces travaux sont motivés par la dynamique de recherche autour des problèmes de vérification des propriétés de protection de la vie privée lors de l utilisation de programmes de fouille de données [16](data-mining, domaine de recherche auquel je me suis formé et familiarisé). Jusqu à présent, les solutions apportées étaient centrées uniquement sur les données mêmes, par exemple par altération de celles-ci. Néanmoins, il apparaît beaucoup plus efficace de garantir les propriétés de protection de la vie privée au niveau du programme manipulant ces données, par sa formalisation dans un assistant à la preuve [19], ou mieux directement à partir du code source. L approche que je propose est alors d annoter le code source avec des assertions logiques exprimant les propriétés de protection de la vie privée (en utilisant par exemple le langage JML [22]), de traduire le programme avec ses annotations dans un assistant à la preuve à l aide des outils existants (tels que Krakatoa [25] et Why [20] pour Coq [28] ou Loop [34] pour PVS) et de décharger les obligations de preuve générées. Les premiers résultats obtenus conduisent à des preuves plus simples et plus immédiates (par une automatisation plus poussée) que celles obtenues par la formalisation des algorithmes dans l assistant à la preuve. Les programmes vérifiées ont été tirés de la bibliothèque Weka [35] (distribuée en logiciel libre) d algorithmes de fouille de données. D autres analyses plus complexes que celles permises par la logique (du premier ordre) de JML peuvent être envisagées, en particulier sur le flot de données du programme. Parmi celles-ci, la non-interférence [31] (pas de fuite d informations de variables classées sensibles vers les variables publiques du programme) capture des propriétés essentielles de la protection de la vie privée. Suivant les travaux [13,30] permettant de traduire la non-interférence sous la forme d une formule de la logique de Hoare (après transformation du programme), j ai pu annoter certains programmes de fouille de données (dans un premier temps à la main, à titre d exemple) avec des propriétés traduisant la non-interférence. Les obligations de preuve associées ont ensuite été générées et déchargées par les mêmes outils que précédemment (Why, qui reprend le formalisme de la logique de Hoare, et Coq). Ces résultats laissent entrevoir l intégration possible de ce type d analyse aux outils utilisés pour JML. CV Page 7 / 15

Sémantique des langages. Mon stage de DEA [11] et la première partie de ma thèse ont consisté à formaliser en Coq [28] la machine virtuelle Java Card [33] et son environnement d exécution [32]. Ce langage de programmation est destiné à la dernière génération de cartes à puce, dites intelligentes, embarquant un microprocesseur et un système d exploitation. De telles cartes peuvent embarquer par exemple des portes-monnaie électroniques, des applications de gestion de point de fidélité, de données médicales,... Le milieu industriel est particulièrement demandeur de méthodologies permettant d assurer la sécurité de ces cartes. Vu la complexité des systèmes analysés et des propriétés à vérifier, l emploi d un outil de méthodes formelles, tel que Coq, est rendue nécessaire. J ai alors été amené à fournir une sémantique opérationnelle à petit pas à l ensemble du jeu d instructions (185) de la machine virtuelle, complétée par la gestion des fonctionnalités de l environnement d exécution (gestion des exceptions, APIs et dispositifs de sécurité). Les définitions qui en résultent, sous forme fonctionnelle, peuvent alors être utilisée, conjointement à l environnement d exécution, pour l exécution des programmes. Ces travaux [4, 5, 8] ont été réalisés dans le cadre du projet européen IST VerifiCard [17]. Analyse statique. Dans la deuxième partie de ma thèse, je me suis intéressé à la vérification de propriétés de sécurité de la plate-forme JavaCard. La méthodologie proposée pour cette vérification repose sur la donnée d une machine virtuelle dite défensive (vérifiant à l exécution la propriété à assurer) et sur deux machines virtuelles dites offensive et abstraite, obtenues par abstraction, qui serviront respectivement pour l exécution des programmes (pas de vérification à l exécution donc plus efficace) et la construction d un vérificateur de code octet. Ce vérificateur, qui effectue une analyse de flot de données à l aide de l algorithme de KILDALL [23], a pour but d assurer statiquement qu un programme donné vérifie la propriété de sécurité considérée. Nous proposons, grâce à Coq, un vérificateur de ce type, certifié, exprimé de manière modulaire (séparation des différentes notions) et paramétré par différents types d analyses. Ces analyses [24] permettent de choisir le comportement du vérificateur lors de la vérification des sous-routines (appels de méthode sans création de contexte d exécution), point délicat de la vérification et incorrectement traité dans de nombreux vérificateurs (dont certains de Sun). Nous montrons de manière formelle, comme résultat principal, que la machine virtuelle offensive, bien que n effectuant pas les tests de sécurité, est aussi sûre que la machine virtuelle défensive, à condition que le programme exécuté ait passé la phase de vérification de code octet. Nous illustrons enfin cette méthodologie, qui se veut générique, par l application à la sûreté du typage, composante essentielle de la sécurité de la plate-forme JavaCard. Nous assurons ainsi que les valeurs sont utilisées avec le type attendu et qu il ne peut donc y avoir d accès mémoire non autorisés. Automatisation et Support à la preuve. Les abstractions correspondant aux machines virtuelles offensive et abstraites, ainsi que les preuves de leur correction vis-à-vis de la machine virtuelle défensive, ont été dans un premier temps réalisées à la main. Afin de faciliter l application de la méthodologie proposée à d autres propriétés de sécurité, et en raison de la taille importante des CV Page 8 / 15

spécifications de la machine virtuelle JavaCard, nous proposons un support automatisé à l utilisateur. Nous avons ainsi développé un outil générique, appelé Jakarta [2, 6, 7], de transformation de spécifications à partir de la donnée de fonctions d abstraction et de directives à suivre dans les cas où ces fonctions suffiraient pas pour diriger l abstraction. Nous avons également cherché à automatiser la preuve de correction de ces abstractions par la génération des énoncés de correction et des tactiques de résolutions adaptées (raisonnement par cas, réécriture, résolution équationnelle). Formalisation des mathématiques. Durant mon stage de Maîtrise, je me suis intéressé à la formalisation des mathématiques dans l assistant de preuves Coq. J ai cherché à formaliser la réponse apportée par Y. MATIYASEVICH [26] au dixième problème de HILBERT [27] sur l existence d un algorithme déterminant si une équation (à coefficients rationnels et avec un nombre quelconque d indéterminées) est résoluble en coefficients entiers. La démonstration de l impossibilité d un tel algorithme se base sur : le théorème de représentation de GÖDEL qui affirme que tout ensemble récursivement énumérable de prédicat d appartenance R(b 1,...,b m ) peut se représenter par une formule de la forme : y z < y x 1,..., x n P (b 1,...,b m,y,z,x 1,...,x n ) = 0. (1) le théorème de MATIYASEVICH qui étend le résultat précédent et montre que le prédicat R(b 1,...,b m ) peut se représenter sous une forme diophantienne : x 1,..., x n P (b 1,...,b m,x 1,...,x n ) = 0 (2) la contradiction avec la possibilité de déterminer par un algorithme, résolvant ici l équation diophantienne (2), l appartenance à un ensemble récursivement énumérable. Mon travail de stage [10] a consisté à formaliser les notions de formules telles qu en (1) et (2) et à établir les étapes de transformation nécessaires pour obtenir une représentation diophantienne à partir de (1). 3.2 Publications et manuscrits Mes travaux de thèse ont donné lieu à plusieurs publications. Toutes ces publications apparaissent dans des actes de conférence d audience internationale avec comité de lecture. [1] G. BARTHE et G. DUFAY. «Tool-Assisted Framework for Certified Bytecode Verification». Dans T. MARGARIA et M. WERMELINGER, éditeurs, Proceedings of FASE 04, volume 2984 de Lecture Notes in Computer Science, pages 99 113. Springer-Verlag, 2004. [2] G. BARTHE, G. DUFAY, M. HUISMAN, et S. MELO DE SOUSA. «Jakarta: a toolset to reason about the JavaCard platform». Dans I. ATTALI et T. JENSEN, éditeurs, Proceedings of e-smart 01, volume 2140 de Lecture Notes in Computer Science, pages 2 18. Springer-Verlag, 2001. CV Page 9 / 15

[3] G. BARTHE, G. DUFAY, L. JAKUBIEC, et S. MELO DE SOUSA. «A formal correspondence between offensive and defensive JavaCard virtual machines». Dans A. CORTESI, éditeur, Proceedings of VMCAI 02, volume 2294 de Lecture Notes in Computer Science, pages 32 45. Springer-Verlag, 2002. [4] G. BARTHE, G. DUFAY, L. JAKUBIEC, B. SERPETTE, et S. MELO DE SOUSA. «A Formal Executable Semantics of the JavaCard Platform». Dans D. SANDS, éditeur, Proceedings of ESOP 01, volume 2028 de Lecture Notes in Computer Science, pages 302 319. Springer-Verlag, 2001. [5] G. BARTHE, G. DUFAY, L. JAKUBIEC, B. SERPETTE, S. MELO DE SOUSA, et S.-W. YU. «Formalisation of the Java Card Virtual Machine in Coq». Dans S. DROSSOPOULOU, S. EISEN- BACH, B. JACOBS, G. T. LEAVENS, P. MÜLLER, et A. POETZSCH-HEFFTER, éditeurs, Proceedings of FTfJP 00 ECOOP Workshop on Formal Techniques for Java Programs, 2000. Parmi mes autres manuscrits, et en dehors des rapports universitaires, deux articles de journaux sont en cours. [6] a été soumis à Journal of Automated Reasoning, accepté sous réserve de corrections (réorganisation partielle du document et points particuliers à préciser) et vient d être retransmis après avoir apportés les modifications demandées par les relecteurs. [8] est en phase de relecture finale avant soumission. [7] a été publié comme article invité dans une revue à audience internationale. Enfin, [9], sur mes travaux de post-doctorat, a été soumis comme article pour une conférence d audience internationale avec comité de lecture. [6] G. BARTHE, P. COURTIEU, G. DUFAY, et S. MELO DE SOUSA. «Tool-Assisted Specification and Verification of Typed Low-Level Languages». Version journal de [7]. [7] G. BARTHE, P. COURTIEU, G. DUFAY, et S. MELO DE SOUSA. «Tool-Assisted Specification and Verification of the JavaCard Platform». Dans H. KIRCHNER et C. RINGESSEIN, éditeurs, Proceedings of AMAST 02, volume 2422 de Lecture Notes in Computer Science, pages 41 59. Springer-Verlag, 2002. Article invité. [8] G. BARTHE, G. DUFAY, et S. MELO DE SOUSA. «Certicartes: A Formal Executable Semantics of the JavaCard Platform». Manuscrit. En cours de soumission à un journal. [9] G. DUFAY, A. FELTY, et S. MATWIN. «Privacy-Sensitive Information Flow with JML». Submitted to 20th International Conference on Automated Deduction. [10] Guillaume DUFAY. «Preuve du théorème de Matiyasevich dans le système Coq». Mémoire de Maîtrise, Université de Paris-Sud Orsay, juin 1999. [11] Guillaume DUFAY. «Formalisation de la machine virtuelle JavaCard». Mémoire de DEA, Université de Paris 7 Jussieu, septembre 2000. [12] Guillaume DUFAY. «Vérification formelle de la plate-forme JavaCard». Thèse de doctorat, Université de Nice Sophia-Antipolis, décembre 2003. 3.3 Présentations Tout au long de ma thèse, j ai eu l occasion de présenter mes travaux de recherche, à l occasion de conférences internationales, d ateliers, ou de séminaires. La liste suivante n est pas exhaustive : CV Page 10 / 15

FASE 2004, Barcelone Espagne, mars 2004 Java Verification Workshop, Portland États-Unis, janvier 2002 Verificard 2002, Marseille-Luminy France, janvier 2002 ESOP 2001, Genova Italie, avril 2001 TYPES 2000, Durham Angleterre, décembre 2000 Workshop on Security, Middleware and Languages, Stockholm Suède, juin 2000 3.4 Responsabilités collectives En dehors des tâches collectives liées à l enseignement, j ai été relecteur pour les journaux «Journal of Concurrency and Computation», «Journal of Logic and Algebraic Programming» et pour les conférences POPL, ESOP, TPHOLs et STACS. J ai également participé à un projet européen (IST Verificard), des réseaux thématiques (Types, AppSem Applied Semantics). J ai aidé à l organisation des écoles d été AppSem 2000 et WSSA 2003 (International Winter School on Semantics and Applications). Enfin, durant ma thèse, j ai eu la charge de services informatiques internes à l équipe de recherche en rapport avec le travail collaboratif : gestion des pages web et des listes de diffusion associées à l équipe ; gestion du serveur CVS (système de contrôle des versions pour les logiciels et les articles) ; gestion des séminaires (annonces, réservation des salles,...) ; développement d un système de gestion dynamique et en ligne des publications de l équipe ; développement de pages web et de formulaires dynamiques pour la gestion des inscriptions à des conférence organisées par l équipe. Par ailleurs, durant quatre ans, j ai été responsable et représentant de l association des doctorants (au nombre de 150) de l INRIA Antipolis. J ai ainsi servi d intermédiaire entre les doctorants et la direction (participation aux comités paritaires de l Institut, information des doctorants, gestions des conflits) et cherché à dynamiser le rôle et les activités de l association (création d une association loi 1901, aides à la recherche d emploi, organisation d activités sportives). CV Page 11 / 15

4 Projets d enseignement Avec un début de cursus universitaire plutôt orienté vers les mathématiques, j ai pourtant pu développer très tôt un large spectre de connaissances informatiques, ceci grâce aux cours intégrés tout le long de ma formation (depuis le collège), grâce au développement de logiciels libres (dont le plus important fait plus de deux cents mille lignes de code) et également grâce à un important investissement personnel doublé d une grande curiosité pour le domaine. Ces connaissances ont pu encore être développées ensuite par mes travaux de recherche et d enseignement. Ainsi, et bien que je n aie pas enseigné dans tous les domaines énumérés ci-dessous, je me sens entièrement disposé à préparer des enseignements dans les domaines suivants : Fondements de la programmation : Algorithmes et structures de données, Informatique théorique, Systèmes réactifs et répartis, Programmation système, Compilation ; Programmation et outils associés : Ocaml, Java, C, C++, Pascal, Scheme, Prolog, Esterel, sh, lex, yacc, make, CVS,... ; Systèmes d exploitation : Unix (Linux, BSD, Solaris), Mac OS et Windows toutes versions ; Assistants à la preuve et calcul formel : Coq, PVS, Atelier B, Maple, Mathematica ; Publication : L A TEX, HTML, XML, PHP, Office ; Bases de données : SQL et dérivés ; Réseaux : TCP/IP, Token Ring, AppleTalk. Évidemment, la liste précédente n est pas limitative et l expérience acquise dans ces domaines m offre la souplesse nécessaire pour pouvoir approfondir et enseigner d autres thèmes. Enfin, ayant eu les opportunités, avec beaucoup de plaisir, de faire partager mes connaissances depuis le DEUG jusqu en maîtrise (mais aussi en collège et lycée), je me sens prêt à intervenir à tout niveau de formation : du premier cycle, où la passion transmise pendant l enseignement peut influer sur l orientation des étudiants, au niveau pré-doctoral, où l évolution très rapide de l informatique requiert un suivi constant des nouveaux outils et techniques. Outre l intégration avec les équipes pédagogiques pour la réflexion sur le contenu des cours, des travaux dirigés ou pratiques, j exprimerai également un vif intérêt pour les questions relatives aux refontes actuelles du parcours universitaire. CV Page 12 / 15

5 Projets de recherche Note : Cette section présente quelques axes possibles de recherche. Elle sera à préciser et développer suivant le poste ciblé. L utilisation des méthodes formelles pour la sécurité des logiciels constitue une source de nombreux problèmes, théoriques ou pratiques mais aussi un enjeu majeur dans le secteur industriel. Le développement et la dissémination des outils associés apparaissent donc essentiels pour envisager leur utilisation régulière par l ingénieur informaticien. Le milieu académique est ainsi le plus apte à proposer un cadre de spécification accessible et suffisamment expressif, établir des méthodologies pour la vérification des systèmes et chercher les moyens d automatiser au maximum la réalisation des preuves rencontrées. Nous illustrerons ces différents points à travers trois exemples types de l utilisation des méthodes formelles pour accroître la sécurité des systèmes informatiques. Certification de logiciels. Cette première approche est centrée sur le code source du programme à certifier. Ce code source est annoté par des indications logiques, en utilisant par exemple le langage JML [22] pour les programmes écrits en Java, décrivant le comportement du programme en termes de pré et de post-conditions (logique de Hoare). Les annotations sont alors traduites, avec le programme, vers un assistant de preuve pour y être vérifiées. De nombreux outils proposent cette traduction tels que Esc/Java [18], Loop [34] pour PVS, Krakatoa [25] pour Coq, Jack pour l Atelier B,... Cette diversité d outils fait apparaître qu ils n ont pas atteint encore une maturité suffisante. De nombreux travaux restent à faire pour faire gagner en automatisation des preuves, dans le support de JML, dans la prise en compte des fonctionnalités avancées des langages (comme la concurrence) et, de manière plus pratique, dans l intégration à des environnements de programmation (tels qu Eclipse). Validation de spécifications. Il s agit ici de prouver des propriétés structurelles, et non comportementales comme dans le cas de la certification de logiciels, de systèmes complexes. La sûreté du typage pour la plate-forme JavaCard, comme illustrée dans ma thèse, en est un exemple. Cependant, le principe est extensible à d autres propriétés : pour Java ou JavaCard il peut s agir de la non-interférence (pas de perte d informations de valeurs sensibles vers des valeurs publiques), du contrôle des ressources (disponibilité de l unité et de la mémoire) ; pour les compilateurs, de la correspondance entre les sémantiques du code source et du code compilé ; pour le data-mining, de la protection de la vie privée, etc. Le modèle servant de support à la validation, non nécessairement exécutable, est exprimé directement dans l assistant de preuves (Coq, PVS, Isabelle) voire est généré par raffinements à partir des spécifications (Atelier B). Le raisonnement sur ce modèle repose ensuite souvent sur des techniques d interprétation abstraite pour réduire l espace de valeurs à considérer. Les outils (tels que Jakarta [6]) permettant d automatiser la réalisation de ces abstractions constituent un chaînon important dans le processus de validation. L intégration des outils de réécriture (comme Elan [14]) aux systèmes de preuves [29] permettrait également de simplifier de manière considérable les preuves de corrections intervenant dans ce processus. CV Page 13 / 15

Vérification d algorithmes. Si la plupart des outils cités jusqu ici sont relativement bien adaptés à la vérification de programmes ou de spécifications, d importantes lacunes apparaissent lorsque des calculs mathématiques interviennent, comme dans le cas de vérification d algorithmes cryptographiques. Les notions mathématiques incluses avec ces outils restent basiques ou lorsque des développements importants sont réalisés (tels que le théorème fondamental de l arithmétique [21]), ils requièrent un niveau d expertise bien supérieur à celui des seules preuves mathématiques impliquées. L interaction avec un outil de calcul formel (Mathematica, Maple, Axiom, Magma) permettrait de combler ces lacunes et de répondre à une attente forte des utilisateurs. Des travaux ont déjà été effectués dans cette direction [15] pour un problème spécifique, mais il reste à construire un système plus général, capable de construire une preuve à partir des calculs effectués par l outil de calcul formel. Ces thèmes de recherche rejoignent entièrement ceux de l équipe DEMONS du LRI avec laquelle l intégration serait naturelle. Références [13] G. BARTHE, P. D ARGENIO, et T. REZK. «Secure Information Flow by Self-Composition». Dans R. FOCCARDI, éditeur, Proceedings of the 17th IEEE Computer Security Foundations Workshop (CSFW 04), pages 100 114. IEEE Computer Society, 2004. [14] P. BOROVANSKÝ, H. CIRSTEA, H. DUBOIS, C. KIRCHNER, H. KIRCHNER, P.-E. MOREAU, C. RINGEISSEN, et M. VITTEK. «The Elan V3.4. Manual», 2000. [15] Jacques CALMET et Karsten HOMANN. «Classification of Communication and Cooperation Mechanisms for Logical and Symbolic Computation Systems». Dans F. BAADER et K. U. SCHULZ, éditeurs, Frontiers of Combining Systems: Proceedings of the 1st International Workshop, Munich (Germany), pages 221 234. Kluwer Academic Publishers, 1996. [16] Chris CLIFTON et Don MARKS. «Security and Privacy Implications of Data Mining». Dans Workshop on Data Mining and Knowledge Discovery, pages 15 19. University of British Columbia Department of Computer Science, février 1996. [17] EUROPEAN IST PROJECT VERIFICARD. http://www.verificard.org. [18] EXTENDED STATIC CHECKING FOR JAVA. http://research.compaq.com/src/esc/. [19] Amy FELTY et Stan MATWIN. «Privacy-Oriented Data Mining by Proof Checking». Dans T. ELOMAA, H. MANNILA, et H. TOIVONEN, éditeurs, Proceedings of the Sixth European Conference on Principles of Data Mining and Knowledge Discovery, volume 2431 de Lecture Notes in Computer Science. Springer-Verlag, août 2002. [20] J.-C. FILLIÂTRE. «Why: a multi-language multi-prover verification tool». Research Report 1366, LRI, Université Paris Sud, mars 2003. [21] H. GEUVERS, F. WIEDIJK, J. ZWANENBURG, R. POLLACK, et H. BARENDREGT. «The Fundamental Theorem of Algebra in Coq». http://coq.inria.fr/contribs/fta.html. [22] JML SPECIFICATION LANGUAGE. http://www.jmlspecs.org. [23] G. KILDALL. «A unified approach to global program optimization». Dans Proceedings of the ACM Symposium on Principles of Programming Languages (POPL), pages 194 206. ACM Press, janvier 1973. CV Page 14 / 15

[24] Xavier LEROY. «Java Bytecode Verification: Algorithms and Formalizations». Journal of Automated Reasoning, 30(3 4):235 269, 2003. Special Issue on Java Bytecode Verification. [25] C. MARCHÉ, C. PAULIN-MOHRING, et X. URBAIN. «The Krakatoa Tool for Certification of Java/JavaCard Programs annotated in JML». Journal of Logic and Algebraic Programming, 58(1 2):86 106, 2004. [26] Y. MATIYASEVICH. «Enumerable sets are Diophantine». Soviet Math. Doklady, 1970. [27] Y. MATIYASEVICH. Hilbert Tenth s problem. The MIT Press, 1993. [28] COQ DEVELOPMENT TEAM. «The Coq Proof Assistant Reference Manual Version 7.4». http://coq.inria.fr/doc/. À paraître, 2003. [29] Q.-H. NGUYEN, C. KIRCHNER, et H. KIRCHNER. «External rewriting for skeptical proof assistants». Journal of Automated Reasoning, 29(3 4):309 336, 2002. [30] Peter W. O HEARN, Hongseok YANG, et John C. REYNOLDS. «Separation and information hiding». Dans M. ABADI, éditeur, Proceedings of the 24th ACM Symposium on Principles of Programming Languages (POPL), pages 268 280. ACM Press, janvier 2004. [31] A. SABELFELD et A. C. MYERS. «Language-Based Information-Flow Security». IEEE J. Selected Areas in Communications, 21(1):5 19, janvier 2003. [32] Sun Microsystems, Inc., Palo Alto/CA, USA. «Java Card 2.2 Runtime Environment (JCRE) Specification», 2002. [33] Sun Microsystems, Inc., Palo Alto/CA, USA. «Java Card 2.2 Virtual Machine (JCVM) Specification», 2002. [34] THE LOOP PROJECT. http://www.cs.kun.nl/sos/research/loop/. [35] I.H. WITTEN et E. FRANK. Data Mining. Morgan Kaufmann, 2000. CV Page 15 / 15