confiance, sûreté et sécurité
Transcription
confiance, sûreté et sécurité
Programmation répartie : confiance, sûreté et sécurité Pierre-Malo Deniélou Candidature CR2 - INRIA Équipe MOSCOVA [email protected] http://www.doc.ic.ac.uk/˜malo/ university-logo Pierre-Malo Deniélou (Candidature INRIA) Confiance, sûreté et sécurité Audition du 20 Avril 2011 1 / 15 Contexte Alice Système distribué Bob Programmes indépendants qui effectuent une tâche globale au moyen d’interaction par le réseau university-logo Charlie Pierre-Malo Deniélou (Candidature INRIA) Confiance, sûreté et sécurité Audition du 20 Avril 2011 2 / 15 Contexte Alice Système distribué Bob Programmes indépendants qui effectuent une tâche globale au moyen d’interaction par le réseau Se mettre d’accord sur la sémantique des données Erreur (contenu) university-logo Charlie Pierre-Malo Deniélou (Candidature INRIA) Confiance, sûreté et sécurité Audition du 20 Avril 2011 2 / 15 Contexte Alice Système distribué Bob Programmes indépendants qui effectuent une tâche globale au moyen d’interaction par le réseau Se mettre d’accord sur la sémantique des données Erreur (contenu) sur les protocoles Erreur (communication) Pierre-Malo Deniélou (Candidature INRIA) university-logo Charlie Confiance, sûreté et sécurité Audition du 20 Avril 2011 2 / 15 Contexte Al... Capone Système distribué Bob Programmes indépendants qui effectuent une tâche globale au moyen d’interaction par le réseau Se mettre d’accord Peut-on faire confiance ? sur la sémantique des données Erreur (contenu) sur les protocoles Erreur (communication) Pierre-Malo Deniélou (Candidature INRIA) university-logo Charlie Confiance, sûreté et sécurité Audition du 20 Avril 2011 2 / 15 Contexte Al... Capone Système distribué Bob Programmes indépendants qui effectuent une tâche globale au moyen d’interaction par le réseau Se mettre d’accord Peut-on faire confiance ? sur la sémantique des données Erreur (contenu) sur les protocoles Erreur (communication) Pierre-Malo Deniélou (Candidature INRIA) Erreurs (sûreté) Typage, moniteur university-logo Charlie Confiance, sûreté et sécurité Audition du 20 Avril 2011 2 / 15 Contexte Al... Capone Système distribué Bob Programmes indépendants qui effectuent une tâche globale au moyen d’interaction par le réseau Se mettre d’accord Peut-on faire confiance ? sur la sémantique des données Erreur (contenu) sur les protocoles Erreur (communication) Pierre-Malo Deniélou (Candidature INRIA) Erreurs (sûreté) Typage, moniteur Corruption (sécurité) Protocoles cryptographiquesuniversity-logo Charlie Confiance, sûreté et sécurité Audition du 20 Avril 2011 2 / 15 Programmation distribuée Différent de la programmation séquentielle Des programmes indépendants doivent coopérer : sûreté. Des logiciels interactifs complexes : plus facile de generer/prouver que de programmer/deboguer/tester. Peu de contrôle sur l’environnement d’exécution (pairs, réseau) : sécurité. Les outils existants ne sont en général pas adaptés Les compilateurs et systèmes de typage sont locaux. Les bibliothèques de sécurité ou de réseau sont de bas-niveau et binaires. Mes principaux travaux I Sessions sécurisées : protéger une exécution distribuée contre des pairs compromis II Types de sessions : assurer statiquement le respect de protocoles university-logo Pierre-Malo Deniélou (Candidature INRIA) Confiance, sûreté et sécurité Audition du 20 Avril 2011 3 / 15 I. Sessions sécurisées : Architecture Problème D’une déclaration de protocole, comment en déduire automatiquement un protocole cryptographique et son implémentation qui protège son exécution à la fois du réseau mais aussi d’éventuels participants corrompus ? university-logo Pierre-Malo Deniélou (Candidature INRIA) Confiance, sûreté et sécurité Audition du 20 Avril 2011 4 / 15 I. Sessions sécurisées : Architecture Problème D’une déclaration de protocole, comment en déduire automatiquement un protocole cryptographique et son implémentation qui protège son exécution à la fois du réseau mais aussi d’éventuels participants corrompus ? S2ml, A secure session compiler Networking & Cryptography Session declarations Session implementation ML Application code ML Application code Concrete ML compiler An extension F+S of ML with sessions Pierre-Malo Deniélou (Candidature INRIA) Concrete Model Executable university-logo Confiance, sûreté et sécurité Audition du 20 Avril 2011 4 / 15 I. Sessions sécurisées : Architecture Problème D’une déclaration de protocole, comment en déduire automatiquement un protocole cryptographique et son implémentation qui protège son exécution à la fois du réseau mais aussi d’éventuels participants corrompus ? S2ml, A secure session compiler Networking & Cryptography Session declarations Session implementation ML Application code ML Application code Symbolic formally verified code Symbolic Model ML compiler An extension F+S of ML with sessions Pierre-Malo Deniélou (Candidature INRIA) university-logo Confiance, sûreté et sécurité Audition du 20 Avril 2011 4 / 15 I. Sessions sécurisées : Architecture Problème D’une déclaration de protocole, comment en déduire automatiquement un protocole cryptographique et son implémentation qui protège son exécution à la fois du réseau mais aussi d’éventuels participants corrompus ? S2ml, A secure session compiler Networking & Cryptography Session declarations Session implementation ML Application code ML Application code Symbolic formally verified code Symbolic Model ML compiler An extension F+S of ML with sessions Pierre-Malo Deniélou (Candidature INRIA) Concrete Concrete Model Executable university-logo Confiance, sûreté et sécurité Audition du 20 Avril 2011 4 / 15 I. Sessions sécurisées : API c Request w Reply c File Rpc.mli (* Function for role w *) type result_w = unit type msg3 = { hRequest : (prins * string → msg4)} and msg4 = Reply of (int * result_w) val w : principal → msg3 → result_w [...] Arbitrary ML code can be used to run the session and produce the message content. Sample user file to play w’s role Rpc.w "Bob" {hRequest = function (_,x) → match x with "Cheese" → Reply(24,()) | "Wine" → Reply(53,())} university-logo Pierre-Malo Deniélou (Candidature INRIA) Confiance, sûreté et sécurité Audition du 20 Avril 2011 5 / 15 I. Sessions sécurisées : Protocole Principes de génération 1 Chaque message de haut-niveau est implémenté par un unique message. 2 Tous les états du protocoles sont pré-calculés pour un traitement efficace. Contre les attaques par rejeu (replay attacks) entre exécutions de session : nonces de session entre tours de boucle : horloge logique lors de l’initialisation : système de cache local c Request p Forward w Reply c Contre les attaques de flot Signatures du sous-ensemble minimal de messages (visibilité) avec K. Bhargavan, R. Corin, C. Fournet et J. Leifer, [CSF’07] [TGC’07] [JCS’08] [CSF’09]... Pierre-Malo Deniélou (Candidature INRIA) Confiance, sûreté et sécurité university-logo Audition du 20 Avril 2011 6 / 15 I. Sessions sécurisées : Evaluation Performance de la génération du code Session S Single Rpc Forward Auth Ws Wsn Wsne Shopping Conf Loi Rôles 2 2 3 4 2 2 2 3 3 6 Fichier .session (loc) 5 7 10 15 7 15 19 29 48 101 Application (loc) 21 25 33 45 33 44 45 70 86 189 Graphe (loc) 8 10 12 16 12 13 15 21 37 57 Graphes Locaux (loc) 12 18 25 38 24 42 48 85 181 310 S.mli (loc) 19 23 34 49 25 29 31 49 78 141 S.ml (loc) 247 377 632 1070 481 782 881 1780 3451 7267 Compilation (s) 1.26 1.35 1.66 1.86 1.36 1.50 1.90 2.43 3.32 6.29 Performance du code généré (10000 messages) Authentification avec Temps d’exécution total sans vérification sans cryptographie messages nus signatures MACs 93.92 s 1.77 s 90.80 s 1.66 s 1.43 s 1.31 s Le code source de s2ml possède 4493 lignes de code, tandis que chaque version des university-logo bibliothèques fait environ 700 lignes. Pierre-Malo Deniélou (Candidature INRIA) Confiance, sûreté et sécurité Audition du 20 Avril 2011 7 / 15 II. Types de sessions multipartites Principe des sessions multipartites G < <<< Projection << << < HIJK ONML HIJK ONML ONML HIJK Talice Tbob Tcarol Type checking Palice Pbob Global type G = alice→bobhnati; bob→carolhnati; end Local types Tbob = ?halice, nati. ! hcarol, nati.end Pcarol Processes Pbob = ?halicei(x). ! hcarol, x + 1i.0 Propriétés de sûreté Abstraction de programmation Progrès, sûreté des communications parallèle, objet, fonctionnelle, . . . etc. Ref. : [Carbone,Honda,Yoshida,POPL’08] [Bettini et al.,CONCUR’08] Pierre-Malo Deniélou (Candidature INRIA) Confiance, sûreté et sécurité university-logo Audition du 20 Avril 2011 8 / 15 II. Types de sessions multipartites : travaux récents Topologies de communication complexes avec Nobuko Yoshida, Andi Bejleri et Raymond Hu [FOSSACS’10] Analyse de causalité dans les sessions multipartites avec Nobuko Yoshida [CONCUR’10] Validation de session avec contrats par moniteurs avec Tzu-chun Chen, Laura Bocchi, Kohei Honda, Nobuko Yoshida [soumis à CONCUR’11] Principal 4 Global Queue s Principal 5 s [Instrument] Monitor Process P5 Monitor Process P4 Principal 3 s [Agent] Transport s Monitor Principal 1 Process P1 Process P3 Principal 2 s [User] s [Register] Monitor Monitor Process P2 (Local) Queues s [User] s [Register] s [Agent] s [Instrument] Shared Channels Definitions new a1 : (GIC new a2 : (GIC new a3 : (GIC (Principal 4) new a4 : (GIC (Principal 5) new a5 : (GIC (Principal 1) (Principal 2) (Principal 3) � User) in P1 � Register) in P2 � Agent) in P3 � Instrument) in P4 � Instrument) in P5 Sessions avec ensembles dynamiques de participants avec Nobuko Yoshida [POPL’11] university-logo Pierre-Malo Deniélou (Candidature INRIA) Confiance, sûreté et sécurité Audition du 20 Avril 2011 9 / 15 II. Types de sessions multipartites : POPL’11 Mapoo7 client OOReduce O Global type OO' ooo / .. / server serverO OOO . oo7 o O' o o client BC @A _ _ _ _ o_ _ _ _ G = µx. ∀x : client.{server→xhMapi; x→serverhReducei}; x Notion de roles pour abstraire les ensembles de participants Quantification universelle ∀x : r .G pour la programmation et le typage Des propriétés de sûreté fortes statiquement garanties alors que les participants peuvent rejoindre et quitter dynamiquement une session en cours Topologies dynamiques client / client / client / ··· Collaboration / client Les roles ont des topologies (relations) foreach(x < y : client){x→y hMsgi} Pierre-Malo Deniélou (Candidature INRIA) Ocean Observatory Initiative, Red Hat, RabbitMQ. Cyberinfrastructure de nouvelle génération pour la recherche scientifique océanographique (aux USA) university-logo Confiance, sûreté et sécurité Audition du 20 Avril 2011 10 / 15 Domaine de recherche Systèmes distribués Programmation Applications, sûreté Concurrence Ressources, interaction Sémantique, types Sécurité Protocoles, preuves Objectifs Développer des outils : primitives, des systèmes de typage, des compilateurs, des bibliothèques, des protocoles, . . . etc pour écrire plus facilement des programmes distribués robustes, sûrs et sécurisés avec des garanties expérimentales et formelles sur le code obtenu. university-logo Pierre-Malo Deniélou (Candidature INRIA) Confiance, sûreté et sécurité Audition du 20 Avril 2011 11 / 15 Projet de recherche Contexte Développement des applications distribuées (services, cloud, mobiles) Développement des architectures many-core, GPGPU Développement des méthodes formelles Enjeux Programmation par passage de messages (API) Propriétés globales de sûreté Propriétés globales de sécurité Future équipe “MOSCOVA” Karthik Bhargavan, Bruno Blanchet, ... Preuves de propriétés globales (notamment de sécurité) s’appliquant au “vrai” code. university-logo Pierre-Malo Deniélou (Candidature INRIA) Confiance, sûreté et sécurité Audition du 20 Avril 2011 12 / 15 Projet de recherche Deux axes immédiats Sûreté statique d’applications dynamiques Explorer les propriétés de sûreté et l’expressivité des sessions Sécurité constructive et propriétés globales Développer la génération et la preuve d’implémentation de protocoles Deux objectifs à long terme Abstractions pour la programmation répartie et la sécurité Au-delà de RPC et Map-Reduce Composants certifiés d’infrastructure Middleware de confiance university-logo Pierre-Malo Deniélou (Candidature INRIA) Confiance, sûreté et sécurité Audition du 20 Avril 2011 13 / 15 Cursus S ITUATION ACTUELLE Avril 2009-présent Postdoc EPSRC avec Nobuko Yoshida, Imperial College London É DUCATION 2005 - Mars 2009 Doctorat avec Jean-Jacques Lévy et James Leifer, MOSCOVA (Rocquencourt), Microsoft Research-INRIA (Saclay). Soutenue le 25 Janvier 2010. 2004-2005 Master Parisien de Recherche en Informatique – MPRI (rang : 2ème sur 44, moyenne : 18/20, mention TB). 2002-2004 Élève normalien à l’ENS Cachan (Prof. Hubert Comon). 1999-2002 Classes préparatoires aux grandes écoles (MPSI,MP*) Lycée du Parc à Lyon. 1999 Baccalauréat scientifique (TB) Lycée Gabriel Faure de Tournon-sur-Rhône (Ardèche). university-logo Pierre-Malo Deniélou (Candidature INRIA) Confiance, sûreté et sécurité Audition du 20 Avril 2011 14 / 15 Résumé Projet : Confiance dans les systèmes distribués 1 Modèle de programmation répartie de haut-niveau 2 Preuves directes de propriétés globales de sûreté et de sécurité Publications Journaux JCS Conférences POPL, CSF (x2), FOSSACS, CONCUR, TGC, ICFP Workshop PLACES Soumis CONCUR, LMCS En cours (seront soumis) POPL (x2) Collaborations Cédric Fournet (MSR), Nobuko Yoshida (Imperial), Kohei Honda (Queen Mary), Laura Bocchi (Leicester), Giuseppe Castagna (PPS) Industrie : OOI, Red Hat, RabbitMQ Pierre-Malo Deniélou (Candidature INRIA) Confiance, sûreté et sécurité university-logo Audition du 20 Avril 2011 15 / 15